Установка ntail для просмотра log-ов

Установка ntail для просмотра log-ов

ntail — это аналог утилиты tail для просмотра log файлов который поддерживает фильтрацию и парсинг. Данная утилита имеет подсвечивание для различных ошибок от ответа веб-сервера. В своей статье «Установка ntail для просмотра log-ов» я расскажу как установить и использовать ntail для просмотра log-ов.

Для начала, нужно установить вспомогательные пакеты.

Для CentOS/Fedora/RedHat:

# yum install ruby rubygems -y

Для Debian/Ubuntu:

# apt-get install ruby-full rubygems

Для MacOS:

Дополнительных пакетов устанавливать не нужно. Просто нужно выполнить установку ntail.

Для всех остальных, можно скачать через GIT:

# cd /usr/local/src && wget https://github.com/pvdb/ntail.git

Установка ntail для просмотра log-ов

И собственно после установления пакетов с ruby, выполняем установку ntail:

# gem install ntail

После этого вы должны иметь исполняемый файл в /usr/bin/ntail или /usr/local/bin/ntail. Для правильной работы ntail необходимо убедиться что установлен относительный путь к утилите в переменной окружения $ PATH.

Использование ntail для просмотра log-ов в Unix/Linux

Сейчас, я расскажу как можно использовать ntail в ОС Unix/Linux.

Основы использования Ntail

Обработать весь log-файл  веб-сервера nginx и вывести разобранную и отформатированную строку в STDOUT:

# ntail /var/log/nginx/access.log

Обработать весь log-файл  веб-сервера nginx и передать через пайп (трубу) розпарсенную и отформатированную строку в браузере (в зависимости от дополнительного bcat gem):

# ntail /var/log/nginx/access.log | bcat

Запустить tail  и отображать лог-файл на экран в режиме реального времени передаваемый через пайп ntal-у и выводит (для остановки используйте комбинацию клавиш ctrl + C):

# tail -f /var/log/nginx/access.linux-notes.org.log | ntail

Запустить tail  и отображать лог-файл на экран в режиме реального времени передаваемый через пайп ntal-у розпарсенную и отформатированную строку в браузере (для остановки используйте комбинацию клавиш ctrl + C):

# tail -f /var/log/nginx/access.linux-notes.org.log | ntail | bcat

Расширенный Примеры

Считать из стандартного ввода информацию и вывести каждую строку  на STDOUT ( остановка ^D):

$ ntail

Считать из стандартного ввода информацию и вывести длину каждой строки (для иллюстрации служит опция «-e»):

$ ntail -e 'puts size'

Считать из стандартного ввода информацию и вывести только не пустые строки (для иллюстрации служит опция «-f»):

$ ntail -f 'size != 0'

Следующие вызовы команд работают так же (чтобы проиллюстрировать нужны опции «-e» и «-f»):

$ ntail
$ ntail -f 'true' -e 'puts self'

Вывести все HTTP запросы, которые приходят из конкретного IP-адреса:

$ ntail -f 'remote_address == "66.66.66.66"' /var/log/nginx/access.linux-notes.org.log

Найти все HTTP запросы, которые вызвали ошибки в «5xx» Ошибка HTTP/код состояния (например, Rails 500 errors):

$ gunzip -S .gz -c access.log-20150804.gz | ntail -f 'server_error_status?'

Генерировать сводный отчет кодов состояния HTTP для всех не-HTTP запросов с кодом 200 (ОК):

$ ntail -f 'status != "200"' -e 'puts status' access.linux-notes.org.log | sort | uniq -c

Показать местоположение для каждого запроса HTTP  с использованием GeoIP (зависит от дополнительного Geoip gem)

$ ntail -e 'puts [to_country_s, to_city_s].join("\t")' /var/log/nginx/access.linux-notes.org.log

PS: для использования geoIP, необходимо установить его.

# gem install geoip  geoip-c

Вывести список IP-адресов с именами хостов для каждого запроса HTTP (замедляет из-за вызова NSlookup):

$ ntail -e 'puts [remote_address, to_host_s].join("\t")' /var/log/nginx/access.linux-notes.org.log

Разобрать лог-файл через визуализатора gltail  в реальном времени:

$ ntail -v --raw --sleep 0.1 /var/log/nginx/access.linux-notes.org.log > parsed-access.linux-notes.org.log

Вот и все. Данная утилита очень мне понравилась и я советую ее использовать. Данная тема «Установка ntail для просмотра log-ов» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.