Заметки: HTTP-ошибки в логах IIS

HTTP-ошибки в логах IIS 01
http://www.zabbix.com/

Чтобы отслеживать HTTP-ошибки в логах IIS более всего подойдет стек ELK, ведь этот набор инструментов специально заточен для задачи парсинга логов. Тем не менее, если есть потребность в подсчете количества появления только одной определенной ошибки (например 404 или др.), а поднимать ELK нет никакого желания и возможности, можно использовать всем знакомый Zabbix.


Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье – Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.


HTTP-ошибки в логах IIS

Чтобы было более понятно, приведу пример одной строчки лога IIS:

Цифра 401 в самом конце и есть код ответа веб-сервера, он мне и нужен.

Подготовка

Скачать шаблон вместе со скриптом вы можете из моего репозитория на Github (каталог windows_iis_log_checker). Как это сделать, смотрите в официальной документации 1.

Скрипт написан на Python, поэтому нужно его установить (качайте с официального сайта).

Особенности работы

Особенности работы скрипта:

  1. Поддерживается ротация логов, но не чаще, чем 1 раз в промежутке между запусками скрипта;
  2. Хранится имя текущего лог-файла и номер последней проанализированной строки внутри него;
  3. Если скрипт запускается в первый раз, он не анализирует ничего, а только запоминает номер последней строчки в самом свежем лог-файле. При следующем запуске он проанализирует только добавившийся объем данных.

На момент написания статьи скрипт находится в бета-версии, поэтому о поддержке расширенного функционала речь пока не идет.

Установка

Задачи по установке нужно выполнить как на целевом хосте, так и на сервере Zabbix. На стороне хоста выполняем:

  1. Копируем iis_log_checker.py в удобную для вас папку и запоминаем полный путь;
  2. В самый конец конфигурационного файла агента добавляем пользовательские параметры (одна ошибка IIS – один параметр), либо закидываем файл iis_log_checker.conf (не забудьте изменить пути и номера ошибок) в каталог, который определен в параметре Include= конфигурации вашего агента Zabbix;
  3. Перезапускаем агента.

Заходим на Zabbix Server:

  1. Импортируем шаблон iis_log_checker.xml;
  2. Подключаем шаблон к нужным хостам.

Установка завершена.

Пример

Для каждой отслеживаемой ошибки IIS в каталоге с iis_log_checker.py создаются файлы, которые хранят имя текущего лог-файла и позицию внутри него:

HTTP-ошибки в логах IIS 01

График Zabbix отображает количество новых строчек в логе с нужной вам ошибкой с момента предпоследнего запуска скрипта:

HTTP-ошибки в логах IIS 02

Решайте сами что можно сделать с этими ошибками. Например по количеству кодов возврата 200 можно определять интенсивность обращений к сайту. Ещё раз повторюсь, что шаблон решает очень узкую задачу в условиях заранее ограниченной по масштабу инфраструктуре.

Яндекс.Метрика