보통 로그파일 실시간으로 보고싶을때 tail 명령어를 사용한다. 하지만 여러 로그를 보고싶을때는 tmux등 화면 분할을 해서 봐야하는데 이 방법은 귀찮다. 이럴때 multitail을 사용하면 간단하게 여러 로그를 모니터링할수 있다.

설치

apt install multitail을 입력하여 간단하게 설치한다. 맥 유저라면 brew install multitai을 쓴다.

사용법

  • 1개의 파일 모니터링
    multitail [filename]

  • 2개의 파일 모니터링 (가로로 분할)
    multitail [filename] [filename]

  • 2개의 파일 모니터링 (세로로 분할)
    multitail -s 2 [filename] [filename]

colorscheme 설정

multitail은 자체 config파일을 통해 로그파일 highlighting을 지원한다.

/usr/local/etc/ 경로에 기본 파일이 있고, 기본적으로 syslog, apache등의 여러가지 colorscheme들이 있다.

기본 명령어에 -cS 옵션을 추가하여 사용하면 된다.

multitail -cS [colorscheme] [logfile]

공식문서에 따르면 /etc/multitail.conf에 파일이 있다면 적용이 된다고 하는데, 계속 -cS 옵션을 줘도 colorscheme을 찾을수 없다고 하면서 오류가 났다

구글링을 해보니까 .multitailrc 라는 파일을 홈 경로에 만들어주면 된다고 해서 해봤더니 바로 적용이 되었다. 대신 multitail.conf을 참고하여 사용할 colorscheme만 복사해서 사용해야 한다.
 

  • mutitailrc 예시
colorscheme:syslog:kernel and unsorted messages
# segfaults
cs_re_s:red,,bold:kernel: ([^:]*): segfault at [^ ]* rip [^ ]* rsp [^ ]* error
cs_re:yellow:kernel: .*: segfault at [^ ]* rip [^ ]* rsp [^ ]* error
# misc
cs_re:red,,inverse/underline:kernel
cs_re:green:Detected.*$
cs_re:green:\[
cs_re:green:\]
cs_re:cyan::
cs_re:blue|blue,,bold:^... .. ..:..:..
cs_re_s:,,bold:^... .. ..:..:.. [^ ]* ([A-z0-9]*)
cs_re:red:scanlogd.*
cs_re:yellow:Did.not

또한 정규표현식을 지원하므로 자신만의 custom colorscheme을 만들수도 있다.

예를들어 info, debug, warning등 로그에 사용되는 특정필터들에 색깔을 입혀보고 싶다면, 다음과 같이 설명하면 된다.

# test
colorscheme:test
# date
cs_re:magenta,,bold: *[a-z]*[0-9]+[a-z]*
# filter
cs_re:cyan,,bold:<trace>
cs_re:green,,bold:<info>
cs_re:magenta,,bold:<debug>
cs_re:yellow,,bold:<warning>
cs_re:red:\[
cs_re:red:\]

multitial -cS test file.log -l "ping 8.8.8.8"를 입력한 결과