본문 바로가기
개발/정리

[log.io] 웹으로 간단하게 로그 확인하기

by parkkingcar 2023. 7. 4.

 

 

log.io

 

log.io - Real-time log monitoring in your browser

How does it work? Inputs watch log files for changes, send new log messages to the server, which broadcasts to web clients. Log messages are tagged with stream and source information based on user configuration. log.io has no persistence layer. File inputs

logio.org

 

 

log.io는 Typescript 기반의 로그 관리를 위한 오픈 소스 도구입니다. log.io는 실시간으로 서버 및 애플리케이션의 로그 데이터를 모니터링하고 시각적으로 표시할 수 있는 기능을 제공합니다. 이를 통해 개발자나 시스템 관리자는 중요한 로그 정보를 신속하게 파악하고 문제를 해결할 수 있습니다. log.io는 사용하기 쉽고 직관적인 인터페이스를 제공하여 로그 분석을 간편하게 수행할 수 있습니다.

 

 

Narrative Science에서 개발하였는데, 현재는 개발을 중지하고 지원하지 않습니다. 하지만 실시간으로 웹상에서 간단히 로그를 확인하기에 좋은 오픈소스입니다.

 

 

추가적으로 공식 문서는 존재하지 않습니다. 아래는 깃허브 저장소입니다.

 

 

GitHub - NarrativeScience-old/log.io: Real-time log monitoring in your browser

Real-time log monitoring in your browser. Contribute to NarrativeScience-old/log.io development by creating an account on GitHub.

github.com

 

 

 

 

 

 

 

log.io를 구축하면 아래와 같이 localhost:6688에 접속하여, 지정한 로그파일에 추가되는 로그를 실시간으로 읽을 수 있습니다.

 

좌측 탭에서 특정 로그만 필터해서 확인할 수 있습니다.

 

 

 

 

 

 

구축하기

 

아래 구축방법은 ubuntu 20.04에 구축하는 방법을 기준으로 합니다.

 

확인하고자 하는 로그파일이 이미 존재한다면, 아래 파이썬코드 작성과 크론탭 설정 부분은 생략하시면 됩니다.

 

 

 


파이썬 코드 작성과 크론탭 설정

 

먼저 로그데이터를 임의로 생성하기 위해 크론탭과 파이썬을 사용합니다.

 

아래와 같이 파이썬 코드를 작성합니다.

 

cron.py 코드

import datetime
nowTime = datetime.datetime.now()
print(nowTime)

파이썬을 실행하면 현재 시간을 출력합니다.

 

 

 

다음은 로그를 생성하는 것 처럼 30초에 한번씩 현재시간을 출력하여 로그파일에 작성합니다.

 

$ crontab -e 명령을 입력하여 크론탭 설정에 들어갑니다.

 

 

크론탭 맨 아래줄에 아래 두줄을 추가하고 저장합니다. 30초에 한번 현재시간이 test.log 파일에 추가됩니다. 아래 경로(/home/otadmin)은 cron.py가 있는 디렉토리와 test.log 파일을 저장할 곳을 입력하면 됩니다.

* * * * * python3 /home/otadmin/cron.py >> /home/otadmin/test.log
* * * * * sleep 30; python3 /home/otadmin/cron.py >> /home/otadmin/test.log

 

 

Install log.io

다음으로 log.io를 구축합니다. 공식 홈페이지를 확인하면 아래와 같이 설명하고 있습니다.

 

 

1. Install server via npm

    $ npm install -g log.io

2. Launch server

    $ log.io-server

3. Install file input via npm

    $ npm install -g log.io-file-input

4. Configure file input

    $ nano ~/.log.io/inputs/file.json

5. Start file input

    $ log.io-file-input

6. Browse to http://localhost:6688

 

 

 

 

Install Node.js

npm 명령을 사용하기 위해서 node.jsnpm이 설치되어 있어야 합니다.

 

설치되어있지 않다면 아래 글을 참고하여 설치합니다.

 

우분투 Node.js 설치및 npm 환경구축

우분투 20.04에 Node.js 를 설치하는 세 가지 방법, npm 환경 구축과 REPL 을 이용한 실행

velog.io

 

 

글에서 아래 부분을 진행하면 됩니다.

1. Apt 패키지 매니저 이용

apt 패키지 매니저를 사용해 우분투 패키지 저장소에 기본으로 들어가 있는 Node.js 를 다운받는다.

$ sudo apt update

노드js 다운로드

$ sudo apt install nodejs

설치가 완료되었는지 확인

$ nodejs -v 

노드 패키지 매니저 npm 다운로드

$ sudo apt install npm

 

 

 

 

1. 이제 $ npm install -g log.io 명령으로 log.io를 전역으로 설치합니다.

 

 

2. $ log.io-server & 명령으로 백그라운드에서 log.io를 실행합니다. 이후 브라우저에 localhost:6688를 입력하여 접속합니다. 

 

3. $ npm install -g log.io-file-input 명령으로 log.io-file-input 수집기를 전역으로 설치합니다.

 

 

4. $ vi ~/.log.io/inputs/file.json 명령으로 설정파일을 구성합니다. 

 

 

만약 아래와 같이 E212: Can't open file 에러가 발생하면, 아래 명령을 순서대로 입력하고 권한을 부여해 해결합니다.

mkdir -p ~/.log.io/inputs
touch ~/.log.io/inputs/file.json
chmod 777 ~/.log.io/inputs/file.json

 

 

권한을 부여한 후, file.json 파일을 아래와 같이 작성합니다. 이때 path는 확인하고자 하는 로그파일 경로를 설정해줍니다.

 

아래 사진은 위에서 크론탭을 이용해 작성하는 test.log 파일을 사용합니다. 여러 로그파일을 수집하는 file.json 예시는 공식홈페이지에서 확인 가능합니다.

 

file.json

 

file.json 예시

{
  "messageServer": {
    "host": "127.0.0.1",
    "port": 6689
  },
  "inputs": [
    {
      "source": "test_log1",
      "stream": "server",
      "config": {
        "path": "/var/logs/app1-server1.log"
      }
    },
    {
      "source": "test_log2",
      "stream": "server",
      "config": {
        "path": "/var/logs/app1-server2.log"
      }
    },
    {
      "source": "test_log3",
      "stream": "server",
      "config": {
        "path": "/var/logs/app1-server3.log"
      }
    }
  ]
}

 

 

 

 

5. $ log.io-file-input & 명령으로 백그라운드에서 수집기를 실행합니다.

 

 

 

그러면 localhost:6688에서 실시간으로 새로운 로그를 확인할 수 있습니다.

 

 

 

 

댓글