Ubuntu 16.04 LTS에서 Lnav 로그 뷰어를 설치하고 사용하는 방법
이 페이지에서
- 요구 사항\n
- Lnav 설치
- Lnav 작업
- Lnav에서 핫키 사용\n
- 결론
측면 탐색이라고도 하는 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를 사용하여 문제를 쉽게 식별할 수 있기를 바랍니다. 자세한 내용은 공식 사이트를 참조하십시오. 궁금한 점이 있으면 언제든지 의견을 말해주세요.