웹사이트 검색

Ubuntu 16.04 LTS에서 Lnav 로그 뷰어를 설치하고 사용하는 방법


이 페이지에서

  1. 요구 사항\n
  2. Lnav 설치
  3. Lnav 작업
  4. Lnav에서 핫키 사용\n
  5. 결론

측면 탐색이라고도 하는 LNAV는 타임스탬프 및 로그 수준과 함께 보고 있는 파일의 정보를 찾는 데 사용할 수 있는 무료 오픈 소스 고급 로그 파일 뷰어입니다. LNAV는 소규모 솔루션용으로 구축된 명령줄 로그 파일 뷰어입니다. 간단하고 사용하기 쉽고 사용자 정의가 가능합니다. LNAV는 Linux 및 Mac 운영 체제에서 실행되는 완전 프리웨어 응용 프로그램입니다. 이를 통해 사용자는 단일 창에 여러 파일의 로그를 표시할 수 있으며 이러한 로그에 대한 실시간 업데이트도 볼 수 있습니다.

LNAV에는 많은 기능이 포함되어 있으며 그 중 일부는 다음과 같습니다.

  • SQL을 통해 로그를 쿼리할 수 있습니다.\n
  • 여러 로그 형식에서 로그를 감지하고 읽을 수 있습니다.\n
  • 정보, 경고 및 오류 간의 차이점을 사용자가 쉽게 식별할 수 있도록 도와주는 컬러링 라이트닝 기능이 있습니다.\n
  • gzip 및 bzip2와 같은 압축 파일에서 자동으로 데이터를 추출합니다.\n
  • 입력과 동시에 로그를 검색하는 기능. 새 로그 라인이 추가되면 자동으로 로드되고 검색됩니다.

이 튜토리얼에서는 Ubuntu 16.04 서버에 lnav를 설치하고 사용하는 방법을 설명합니다.

요구 사항

  • Ubuntu 16.04를 실행하는 서버.\n
  • sudo 권한이 있는 루트가 아닌 사용자.\n

Lnav 설치

기본적으로 lnav는 Ubuntu 16.04 기본 리포지토리에서 사용할 수 있습니다. 따라서 다음 명령을 실행하여 설치할 수 있습니다.

sudo apt-get install lnav -y

lnav를 설치한 후 다음 명령을 실행하여 lnav의 버전을 볼 수 있습니다.

lnav -V

다음 출력이 표시되어야 합니다.

lnav 0.6.2

Lnav 작업

다음 명령을 사용하여 lnav의 모든 옵션을 볼 수 있습니다.

lnav -h

다음 출력이 표시되어야 합니다.

usage: lnav [-hVsar] [logfile1 logfile2 ...]

A curses-based log file viewer that indexes log messages by type
and time to make it easier to navigate through files quickly.

Key bindings:
  ?     View/leave the online help text.
  q     Quit the program.

Options:
  -h         Print this message, then exit.
  -C         Check configuration and then exit.
  -d file    Write debug messages to the given file.
  -V         Print version information.
  -s         Load the most recent syslog messages file.
  -a         Load all of the most recent log file types.
  -r         Load older rotated log files as well.
  -t         Prepend timestamps to the lines of data being read in
             on the standard input.
  -w file    Write the contents of the standard input to this file.

Optional arguments:
  logfile1          The log files or directories to view.  If a
                    directory is given, all of the files in the
                    directory will be loaded.

Examples:
  To load and follow the syslog file:
    $ lnav -s

  To load all of the files in /var/log:
    $ lnav /var/log

  To watch the output of make with timestamps prepended:
    $ make 2>&1 | lnav -t

Version: lnav 0.6.2

이제 lnav 명령을 실행하여 모든 로그 파일의 가장 최근 타임스탬프를 기반으로 실시간 정보를 볼 수 있습니다. 이 명령은 /var/log 디렉토리 내의 모든 파일에서 로그를 수집합니다.

sudo lnav

다음 출력이 표시되어야 합니다.

Jan 28 16:56:01 icingaclient wpa_supplicant[926]: wlan0: CTRL-EVENT-SCAN-STARTED
Jan 28 16:59:46 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 16:59:46 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 16:59:46 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 273 seconds.
Jan 28 16:59:46 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed reboot -> renew
Jan 28 16:59:46 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 16:59:46 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 16:59:46 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 16:59:46 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 16:59:46 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 16:59:46 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 16:59:46 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 28 17:04:19 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 17:04:19 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds.
Jan 28 17:04:20 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:04:20 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:04:20 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:04:20 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:04:20 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:04:20 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds.
Jan 28 17:08:06 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:08:06 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:08:06 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:08:06 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:08:06 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:08:06 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

/var/log/apache2 디렉토리에서 로그를 보려면 다음 명령을 실행하십시오.

sudo lnav /var/log/apache2

경우에 따라 최신 정보가 최신 파일에서 제공되지 않을 수 있습니다. 따라서 -r 옵션을 사용하여 이전 로그 파일의 정보를 표시할 수 있습니다.

sudo lnav -r

다음 출력이 표시되어야 합니다.

Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds.
Jan 28 17:04:20 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:04:20 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:04:20 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:04:20 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:04:20 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:04:20 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds.
Jan 28 17:08:06 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:08:06 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:08:06 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:08:06 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:08:06 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:08:06 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query
Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds.

-t 옵션을 사용하여 타임스탬프 옵션이 있는 로그 파일을 볼 수도 있습니다.

sudo lnav -t

다음 출력이 표시되어야 합니다.

Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds.
Jan 28 17:08:06 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:08:06 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:08:06 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:08:06 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:08:06 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:08:06 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query
Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e)
Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1
Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds.
Jan 28 17:13:03 icingaclient NetworkManager[865]:  (wlan0): DHCPv4 state changed renew -> renew
Jan 28 17:13:03 icingaclient NetworkManager[865]:    address 192.168.137.101
Jan 28 17:13:03 icingaclient NetworkManager[865]:    prefix 24 (255.255.255.0)
Jan 28 17:13:03 icingaclient NetworkManager[865]:    gateway 192.168.137.1
Jan 28 17:13:03 icingaclient NetworkManager[865]:    nameserver '192.168.137.1'
Jan 28 17:13:03 icingaclient NetworkManager[865]:    domain name 'mshome.net'
Jan 28 17:13:03 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 28 17:13:03 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

최신 로그 파일 유형을 모두 로드하려면 다음 명령을 실행하십시오.

sudo lnav -a

Lnav에서 핫키 사용

다양한 핫키 옵션을 사용하여 lnav 명령의 출력을 탐색할 수도 있습니다.

먼저 lnav 명령을 실행합니다.

sudo lnav

다음 출력이 표시되어야 합니다.

이제 키보드에서 i 키를 사용하여 아래와 같이 lnav 출력을 히스토그램 보기로 전환합니다.

다음으로 p 키를 사용하여 아래와 같이 로그 파서 결과를 봅니다.

다음으로 m 키를 사용하여 아래와 같이 최상위 로그 파일을 표시합니다.

결론

이제 lnav를 사용하여 문제를 쉽게 식별할 수 있기를 바랍니다. 자세한 내용은 공식 사이트를 참조하십시오. 궁금한 점이 있으면 언제든지 의견을 말해주세요.