top для nginx или apache2
После того, как сервер nginx установлен и под ним запущены сайты часто возникает необходимость отслеживать активность nginx в реальном масштабе времени. В принципе это можно сделать и при помощи широко распространенных систем мониторинга типа Nagios, Zabbix, Munin, но не всегда есть возможность и необходимость устанавливать эти системы.
Существует небольшая программа ngxtop которая позволяет осуществлять мониторинг быстро и изящно, в стиле широко известной программы тор. Она на самом деле очень похожа на top.
ngxtop осуществляет парсинг лог-файлов через заданный интервал времени и высвечивает настраиваемые результаты активности nginx в удобочитаемом виде. Если указать путь до access log файла apache — то будет мониторить и его.
Установка ngxtop в Ubuntu
Так как ngxtop написана на Python, то необходимо установить pip:
$ sudo apt-get install python-pip
Затем устанавливаем ngxtop:
$ sudo pip install ngxtop
Использование ngxtop
Формат команды ngxtop:
ngxtop [options] ngxtop [options] (print|top|avg|sum) <var> ngxtop info
Некоторые, наиболее часто используемые опции
- -l <file>: полный путь до log файла (Nginx или Apache2). Лог файл nginx хватается по умолчанию.
- -t <seconds>: интервал обновления в секундах
- -n <number>: количество выводимых строк.
- -o <var>: сортировка (по умолчанию: count)
- -a <exp> …, —a <exp> …: add exp (must be aggregation exp: sum, avg, min, max, etc.) into output
- -v: verbose output
- -i <filter-expression>: только записи совпадающие с фильтром
Набор отображаемых переменных:
- body_bytes_send
- http_referer
- http_user_agent
- remote_addr
- remote_user
- request
- status
- time_local
Мониторинг Nginx с помощью ngxtop
По умолчанию, ngxtop будет определять путь до access log из файла конфигурации (/etc/nginx/nginx.conf), так что можно запустить просто:
$ ngxtop
По умолчанию будут высвечиваться 10 строк активности Nginx, отсортированных в порядке поступления.
Для отображения top-20 наиболее частых запросов:
$ ngxtop -n 20
Для получения информации об Nginx:
$ ngxtop info
Можно настраивать переменные для отображения. Для этого используется команда «print» и перечень переменных для отображения
$ ngxtop print request http_user_agent remote_addr
Для отображения top IP адресов клиентов:
$ ngxtop top remote_addr
Для отображения запросов, чей статус 404:
$ ngxtop -i 'status == 404' print request status
Man-а нет, но есть достаточно подробный —help. Программка достаточно удобная, чтобы посмотреть, что твориться на сервере nginx или apache2.