Zabbix Documentation 3.2
Sidebar
Table of Contents
6 Мониторинг файлов журналов
Обзор
Zabbix можно использовать для централизованного мониторинга и анализа файлов журналов с/без поддержки ротации журналов.
Можно использовать оповещения для предупреждения пользователей, когда файл журнала содержит конкретные строки или шаблоны строк.
Для наблюдения за файлом журнала у вас должно быть:
Настройка
Проверка параметров агента
Настройка элемента данных
Настройте элемент данных для мониторинга журнала:
Специально для элементов данных наблюдения за журналами вы должны указать:
Тип | Здесь выберите Zabbix агент (активный). |
Ключ | Используйте один из представленных ключей элементов данных: log[] или logrt[] Эти два ключа элементов данных позволяют мониторить файлы журналов и фильтровать их содержимое в соответствии с регулярным выражением, если задано. Например: log[/var/log/syslog,error] . Убедитесь, что этот файл имеет права на чтения для ‘zabbix’ пользователя, в противном случае статус элемента данных будет изменён на ‘неподдерживается’. log.count[] или logrt.count[]: Эти два ключа элементов данных позволяют возвращать только количество совпадающих строк. Для получения более подробных сведений по этим ключам элементов данных и их параметрам смотрите раздел Zabbix агент элемента данных. |
Тип информации | Выберите: Для элементов данных log[] и logrt[] — Журнал (лог) ; Для элементов данных log.count[] и logrt.count[] — Числовой (целое положительное) . Если используется опциональный параметр вывод , вы можете выбрать подходящий тип информации, отличный от Журнал (лог) . Обратите внимание, что выбор не журнального типа информации приведет к потере локального штампа времени. |
Интервал обновления (в сек) | Этот параметр задает как часто Zabbix агент будет проверять наличие любых изменений в файле журнала. Указав этот параметр равным 1 секунде, вы можете быть уверенными, что получите новые записи как можно скорее. |
Формат времени журнала | В этом поле вы можете опционально задать шаблон для анализа штампа времени строки журнала. Если оставить пустым, штамп времени не будет анализироваться. Поддерживаемые значения: * y: Год (0001-9999) * M: Месяц (01-12) * d: День (01-31) * h: Час (00-23) * m: Минута (00-59) * s: Секунда (00-59) Например, рассмотрим следующую строку из файла журнала Zabbix агента: “ 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).” Она начинается шестью символами обозначающими PID, далее следует дата, время, и остальная часть строки. Форматом времени журнала для этой строки является “pppppp:yyyyMMdd:hhmmss”. Обратите внимание, что символы “p” и “:” являются лишь заменителями и могут быть чем угодно, за исключением “yMdhms”. |
Важные замечания
Извлечение совпадающей части регулярного выражения
Иногда мы можем захотеть извлечь только интересующие значения из требуемого файла вместо того, чтобы получать всю строку, в случае когда найдено совпадение с регулярным выражением.
Начиная с Zabbix 2.2.0, элементы данных файлов журналов расширены возможностью получения извлечения требуемых значений из строк файла. Добавился дополнительный параметр вывод у элементов данных log и logrt .
Использование параметра ‘вывод’ позволяет обозначить подгруппу совпадения в которой мы можем быть заинтересованы.
должно позволить получить количество записей со следующего содержания:
Причина, почему Zabbix вернет только одно число, потому что параметр ‘вывод’ здесь определен как \1 ссылка только на первую интересующую подгруппу: (6+)
Вместе с возможностью извлечения и получения числа, значение можно использовать в определениях триггеров.
Использование параметра максзадержка
Параметр ‘максзадержка’ в элементах данных журналов позволяет игнорировать более старые строки с целью получения наиболее новых строк проанализированных в течении “максзадержка” секунд.
По умолчанию элементы данных мониторинга журналов забирают все новые строки появляющиеся в файлах журналов. Однако, имеются приложения, которые в некоторых ситуациях начинают записывать огромное количество сообщений в свои файлы журналов. Например, если база данных или DNS сервер недоступны, то такие приложения могут флудить файлы журналов тысячами практически идентичных сообщений об ошибке до тех пор пока не восстановится нормальный режим работы. По умолчанию, все эти сообщения добросовестно анализируются и совпадающие строки оправляются на сервер, как настроено в элементах данных log и logrt .
Встроенная защита от перегрузов состоит из настраиваемого параметра ‘макс. кол-во строк’ (защищающий сервер от слишком большого количества приходящих совпадающих строк в журнале) и ограничения в 4*’макс. кол-во строк’ (защищает CPU и I/O хоста от перегрузки агентам одной проверкой). Тем не менее имеется 2 проблемы со встроенным механизмом защиты. Первая, на сервер будет отправлено большое количество потенциально не так информативных сообщений, которые займут место в базе данных. Вторая, по причине ограниченного количества строк анализируемых в секунду агент может отставать на часы от самых новых записей в журнале. Вполне вероятно, что вы захотите как можно быстрее быть информированным о текущей ситуации в файлах журналов вместо ковыряния часами старых записей.
Решение этих двух проблем является использование параметра ‘максзадержка’. Если параметр ‘maxdelay’ > 0, во время каждой проверки измеряются количество обработанных байт, количество оставшихся байт и время обработки. Отталкиваясь от этих значений, агент вычисляет оценочную задержку — как много секунд может потребоваться, чтобы проанализировать все оставшиеся записи в файле журнала.
Если задержка не превышает ‘максзадержка’, тогда агент поступает с анализом файла журнала как обычно.
Если задержка больше чем ‘максзадержка’, тогда агент игнорирует часть файла журнала, “перепрыгивая” эту часть к новой оценочной позиции таким образом, чтобы оставшиеся строки можно было проанализировать за ‘максзадержка’ секунд.
Обратите внимание, что агент даже не читает проигнорированные строки в буфер, но вычисляет приблизительную позицию для прыжка в файле.
Сам факт пропуска строк в файле журнала записывается в файл журнала агента, примерно следующим образом:
Количество “to byte” является оценочным, потому что после “прыжка” агент скорректирует позицию в файл к началу строки в журнале, которая может быть в файле чуть дальше или раньше.
В зависимости от того как скорость роста соотносится к скорости анализа файла журнала, вы можете не увидеть “прыжков”, а можете увидеть редкие или частые “прыжки”, большие или маленькие “прыжки”, или даже маленькие “прыжки” каждую проверку. Колебания загрузки системы и сетевые задержки также влияют на вычисления задержки и, следовательно, “прыжки” вперед чтобы не отставать от параметра “максзадержка”.
Не рекомендуется указывать ‘максзадержка’ log[] и logrt[] и результат проверки каждого элемента данных log.count[] и logrt.count[] требует свободный слот в выделенной 50% области буфера отправки в агенте. Элементы буфера регулярно отправляются серверу (или прокси) и слоты буфера становятся снова пустыми.
Пока имеются свободные слоты в выделенной области для журналов в буфере отправки в агенте и связь между агентом и сервером (или прокси) нарушена, результаты мониторинга журналов накапливаются в буфере отправки. Такое поведение позволяет смягчить кратковременные нарушения связи.
Во время длительных нарушений свящи все слоты журналов становятся занятыми и выполняются следующие действия:
Zabbix — монитор событий журнала в Windows
Zabbix — монитор событий журнала в Windows
Хотите узнать, как использовать Zabbix для мониторинга журнала событий в Windows? В этом руководстве мы покажем вам, как настроить Zabbix для мониторинга файла журнала на компьютере под управлением Windows.
• Zabbix версия: 4.2.6
• Версия для Windows: 2012 R2
Список оборудования:
В следующем разделе представлен список оборудования, использованного для создания этого учебника Zabbix.
Каждое оборудование, перечисленное выше, можно найти на сайте Amazon.
Zabbix Playlist:
На этой странице мы предлагаем быстрый доступ к списку видео, связанных с установкой Zabbix.
Не забудьте подписаться на наш канал на YouTube FKIT.
Zabbix Связанное руководство:
На этой странице мы предлагаем быстрый доступ к списку учебных пособий, связанных с установкой Zabbix.
Требуется настройка агента Zabbix
Во-первых, агент Zabbix, установленный на компьютере Windows, должен быть настроен в активном режиме.
Вот пример файла конфигурации агента Zabbix в пассивном режиме: zabbix_agentd.conf
Вот пример файла конфигурации агента Zabbix в активном режиме: zabbix_agentd.conf
Вы завершили необходимую часть конфигурации.
Учебник — Zabbix монитор Файл журнала Windows
Теперь нам нужно получить доступ к панели инструментов Zabbix-сервера и добавить компьютер с Windows в качестве хоста.
Откройте браузер и введите IP-адрес вашего веб-сервера плюс / zabbix.
В нашем примере в браузере был введен следующий URL:
На экране входа в систему используйте имя пользователя по умолчанию и пароль по умолчанию.
• Имя пользователя по умолчанию: Admin
• Пароль по умолчанию: zabbix
После успешного входа вы будете отправлены на Zabbix Dashboard.
На экране панели инструментов откройте меню «Конфигурация» и выберите опцию «Хост».
В правом верхнем углу экрана нажмите кнопку «Создать хост».
На экране конфигурации хоста вам нужно будет ввести следующую информацию:
• Имя хоста — введите имя хоста для мониторинга.
• Видимое имя хоста — повторите имя хоста.
• Новая группа — введите имя для идентификации группы похожих устройств.
• Интерфейс агента — введите IP-адрес имени хоста.
Вот оригинальное изображение, перед нашей конфигурацией.
Вот новое изображение с нашей конфигурацией.
Нажмите кнопку Добавить, чтобы включить этот хост в базу данных Zabbix.
На экране панели инструментов откройте меню «Конфигурация» и выберите опцию «Хост».
Найдите и нажмите на имя хоста, который вы создали ранее.
В нашем примере мы выбрали имя хоста: WINDOWS-SERVER-01
На экране свойств хоста перейдите на вкладку Приложения.
В верхней правой части экрана нажмите кнопку «Создать приложение».
На экране приложений хоста создайте новое приложение с именем: LOG
После завершения создания приложения перейдите на вкладку «Элементы».
В верхней правой части экрана нажмите кнопку «Создать элемент».
На экране «Создание элемента» необходимо настроить следующие элементы:
• Имя: введите идентификацию, например: системный журнал Windows
• Тип: Zabbix агент (активный)
• Key: eventlog [System . skip]
• Тип информации: журнал
• Интервал обновления: 1 секунда
Нажмите на кнопку Добавить, чтобы завершить создание элемента и подождите 5 минут.
Чтобы протестировать свою конфигурацию, войдите в меню «Мониторинг» и выберите опцию «Последние данные».
Используйте конфигурацию фильтра для выбора нужного имени хоста и нажмите кнопку «Применить».
В нашем примере мы выбрали имя хоста WINDOWS-SERVER-01.
Вы должны быть в состоянии видеть результаты мониторинга вашего файла журнала Windows, используя Zabbix.
Нажмите на опцию Журнал, чтобы увидеть больше подробностей журнала событий Windows.
В нашем примере мы отслеживаем журнал системных событий Windows.
Поздравляем! Вы настроили функцию мониторинга журнала событий Zabbix в Windows.
Мониторинг событий информационной безопасности с помощью ZABBIX
Некоторое время поработав с Zabbix, я подумал, почему бы не попробовать использовать его в качестве решения для мониторинга событий информационной безопасности. Как известно, в ИТ инфраструктуре предприятия множество самых разных систем, генерирующих такой поток событий информационной безопасности, что просмотреть их все просто невозможно. Сейчас в нашей корпоративной системе мониторинга сотни сервисов, которые мы наблюдаем с большой степенью детализации. В данной статье, я рассматриваю особенности использования Zabbix в качестве решения по мониторингу событий ИБ.
Что же позволяет Zabbix для решения нашей задачи? Примерно следующее:
- Максимальная автоматизация процессов инвентаризации ресурсов, управления уязвимостями, контроля соответствия политикам безопасности и изменений.
- Постоянная защита корпоративных ресурсов с помощью автоматического мониторинга информационной безопасности.
- Возможность получать максимально достоверную картину защищенности сети.
- Анализ широкого спектра сложных систем: сетевое оборудование, такое как Cisco, Juniper, платформы Windows, Linux, Unix, СУБД MSQL, Oracle, MySQL и т.д., сетевые приложения и веб-службы.
- Минимизация затрат на аудит и контроль защищенности.
В статье я не буду рассматривать всё выше перечисленное, затронем только наиболее распространённые и простые вопросы.
Подготовка
Итак, для начала я установил сервер мониторинга Zabbix. В качестве платформы мы будем использовать ОС FreeBSD. Думаю, что рассказывать в деталях о процессе установки и настройки нет необходимости, довольно подробная документация на русском языке есть на сайте разработчика, начиная от процесса установки до описания всех возможностей системы.
Мы будем считать что сервер установлен, настроен, а так же настроен web-frontend для работы с ним. На момент написания статьи система работает под управлением ОС FreeBSD 9.1, Zabbix 2.2.1.
Мониторинг событий безопасности MS Windows Server
С помощью системы мониторинга Zabbix можно собирать любую имеющуюся информацию из системных журналов Windows с произвольной степенью детализации. Это означает, что если Windows записывает какое-либо событие в журнал, Zabbix «видит» его, например по Event ID, текстовой, либо бинарной маске. Кроме того, используя Zabbix, мы можем видеть и собирать колоссальное количество интересных для мониторинга безопасности событий, например: запущенные процессы, открытые соединения, загруженные в ядро драйверы, используемые dll, залогиненных через консоль или удалённый доступ пользователей и многое другое.
Всё, что остаётся – определить события возникающие при реализации ожидаемых нами угроз.
Устанавливая решение по мониторингу событий ИБ в ИТ инфраструктуре следует учитывать необходимость выбора баланса между желанием отслеживать всё подряд, и возможностями по обработке огромного количества информации по событиям ИБ. Здесь Zabbix открывает большие возможности для выбора. Ключевые модули Zabbix написаны на C/C++, скорость записи из сети и обработки отслеживаемых событий составляет 10 тысяч новых значений в секунду на более менее обычном сервере с правильно настроенной СУБД.
Всё это даёт нам возможность отслеживать наиболее важные события безопасности на наблюдаемом узле сети под управлением ОС Windows.
Итак, для начала рассмотрим таблицу с Event ID, которые, на мой взгляд, очевидно, можно использовать для мониторинга событий ИБ:
События ИБ MS Windows Server Security Log
Описание EventID | 2008 Server | 2003 Server |
Очистка журнала аудита | 1102 | 517 |
Вход с учётной записью выполнен успешно | 4624 | 528, 540 |
Учётной записи не удалось выполнить вход в систему | 4625 | 529-535, 539 |
Создана учётная запись пользователя | 4720 | 624 |
Попытка сбросить пароль учётной записи | 4724 | 628 |
Отключена учётная запись пользователя | 4725 | 629 |
Удалена учётная запись пользователя | 4726 | 630 |
Создана защищённая локальная группа безопасности | 4731 | 635 |
Добавлен участник в защищённую локальную группу | 4732 | 636 |
Удален участник из защищённой локальной группы | 4733 | 637 |
Удалена защищённая локальная группа безопасности | 4734 | 638 |
Изменена защищённая локальная группа безопасности | 4735 | 639 |
Изменена учётная запись пользователя | 4738 | 642 |
Заблокирована учётная запись пользователя | 4740 | 644 |
Имя учётной записи было изменено | 4781 | 685 |
Я уделяю внимание локальным группам безопасности, но в более сложных схемах AD необходимо учитывать так же общие и глобальные группы.
Дабы не дублировать информацию, подробнее о критически важных событиях можно почитать в статье:
http://habrahabr.ru/company/netwrix/blog/148501/
Способы мониторинга событий ИБ MS Windows Server
Рассмотрим практическое применение данной задачи.
Для сбора данных необходимо создать новый элемент данных:
При желании для каждого Event ID можно создать по отдельному элементу данных, но я использую в одном ключе сразу несколько Event ID, чтобы хранить все полученные записи в одном месте, что позволяет быстрее производить поиск необходимой информации, не переключаясь между разными элементами данных.
Хочу заметить что в данном ключе в качестве имени мы используем журнал событий Security.
Теперь, когда элемент данных мы получили, следует настроить триггер. Триггер – это механизм Zabbix, позволяющий сигнализировать о том, что наступило какое-либо из отслеживаемых событий. В нашем случае – это событие из журнала сервера или рабочей станции MS Windows.
Теперь все что будет фиксировать журнал аудита с указанными Event ID будет передано на сервер мониторинга. Указание конкретных Event ID полезно тем, что мы получаем только необходимую информацию, и ничего лишнего.
Вот одно из выражений триггера:
Данное выражение позволит отображать на Dashboard информацию о том что «Вход с учётной записью выполнен успешно», что соответствует Event ID 4624 для MS Windows Server 2008. Событие исчезнет спустя 5 минут, если в течение этого времени не был произведен повторный вход.
Если же необходимо отслеживать определенного пользователя, например “Администратор”, можно добавить к выражению триггера проверку по regexp:
Тогда триггер сработает только в том случае если будет осуществлён вход в систему именно под учетной записью с именем “Администратор”.
Мы рассматривали простейший пример, но так же можно использовать более сложные конструкции. Например с использованием типов входа в систему, кодов ошибок, регулярных выражений и других параметров.
Таким образом тонны сообщений, генерируемых системами Windows будет проверять Zabbix, а не наши глаза. Нам остаётся только смотреть на панель Zabbix Dashboard.
Дополнительно, у меня настроена отправка уведомлений на e-mail. Это позволяет оперативно реагировать на события, и не пропустить события произошедшие например в нерабочее время.
Мониторинг событий безопасности Unix систем
Система мониторинга Zabbix так же позволяет собирать информацию из лог-файлов ОС семейства Unix.
События ИБ в Unix системах, подходящие для всех
Такими проблемами безопасности систем семейства Unix являются всё те же попытки подбора паролей к учётным записям, а так же поиск уязвимостей в средствах аутентификации, например, таких как SSH, FTP и прочих.
Некоторые критически важные события в Unix системах
Исходя из вышеуказанного следует, что нам необходимо отслеживать действия, связанные с добавлением, изменением и удалением учётных записей пользователей в системе.
Так же немаловажным фактом будет отслеживание попыток входа в систему. Изменения ключевых файлов типа sudoers, passwd, etc/rc.conf, содержимое каталогов /usr/local/etc/rc.d наличие запущенных процессов и т.п.
Способы мониторинга ИБ в Unix системах
Рассмотрим следующий пример. Нужно отслеживать входы в систему, неудачные попытки входа, попытки подбора паролей в системе FreeBSD по протоколу SSH.
Вся информация об этом, содержится в лог-файле /var/log/auth.log.
По умолчанию права на данный файл — 600, и его можно просматривать только с привилегиями root. Придется немного пожертвовать локальной политикой безопасности, и разрешить читать данный файл группе пользователей zabbix:
Меняем права на файл:
Нам понадобится новый элемент данных со следующим ключом:
Все строки в файле /var/log/auth.log содержащие слово ”sshd” будут переданы агентом на сервер мониторинга.
Далее можно настроить триггер со следующим выражением:
Это выражение определяется как проблема, когда в лог-файле появляются записи, отобранные по регулярному выражению “error:”. Открыв историю полученных данных, мы увидим ошибки, которые возникали при авторизации по протоколу SSH.
Вот пример последнего значения элемента данных, по которому срабатывает данный триггер:
Рассмотрим ещё один пример мониторинга безопасности в ОС FreeBSD:
С помощью агента Zabbix мы можем осуществлять проверку контрольной суммы файла /etc/passwd.
Ключ в данном случае будет следующий:
Это позволяет контролировать изменения учётных записей, включая смену пароля, добавление или удаление пользователей. В данном случае мы не узнаем, какая конкретная операция была произведена, но если к серверу кроме Вас доступ никто не имеет, то это повод для быстрого реагирования. Если необходимо более детально вести политику то можно использовать другие ключи, например пользовательские параметры.
Например, если мы хотим получать список пользователей, которые на данный момент заведены в системе, можно использовать такой пользовательский параметр:
И, например, настроить триггер на изменение в получаемом списке.
Или же можно использовать такой простой параметр:
Так мы увидим на Dashboard, кто на данный момент находится в системе:
Мониторинг событий ИБ на сетевых устройствах
С помощью Zabbix можно так же очень эффективно отслеживать события ИБ на сетевых устройствах Cisco и Juniper, используя протокол SNMP. Передача данных с устройств осуществляется с помощью так называемых трапов (SNMP Trap).
С точки зрения ИБ можно выделить следующие события, которые необходимо отслеживать — изменения конфигураций оборудования, выполнение команд на коммутаторе/маршрутизаторе, успешную авторизацию, неудачные попытки входа и многое другое.
Способы мониторинга
Рассмотрим опять же пример с авторизацией:
В качестве стенда я буду использовать эмулятор GNS3 с маршрутизатором Cisco 3745. Думаю многим знакома данная схема.
Для начала нам необходимо настроить отправку SNMP трапов с маршрутизатора на сервер мониторинга. В моём случае это будет выглядеть так:
Будем отправлять события из Syslog и трапы аутентификации. Замечу, что удачные и неудачные попытки авторизации пишутся именно в Syslog.
Далее необходимо настроить прием нужных нам SNMP трапов на сервере мониторинга.
Добавляем следующие строки в snmptt.conf:
В нашем примере будем ловить трапы Syslog.
Теперь необходимо настроить элемент данных для сбора статистики со следующим ключом:
Если трап не настроен на сервере мониторинга, то в логе сервера будут примерно такие записи:
В результате в полученном логе будет отражаться информация о попытках входа с детализированной информацией (user, source, localport и reason в случае неудачи):
Ну и можно настроить триггер для отображения события на Dashboard:
В сочетании с предыдущим пунктом у нас на Dashboard будет информация вот такого плана:
Аналогично вышеописанному примеру можно осуществлять мониторинг большого количества событий, происходящих на маршрутизаторах Cisco, для описания которых одной статьей явно не обойтись.
Хочу заметить что приведённый пример не будет работать на продуктах Cisco ASA и PIX, так как там несколько иначе организована работа с логированием авторизации.
Juniper и Syslog
Ещё одним примером мы разберем мониторинг авторизации в JunOS 12.1 для устройств Juniper.
Тут мы не сможем воспользоваться трапами SNMP, потому как нет поддержки отправки трапов из Syslog сообщений. Нам понадобится Syslog сервер на базе Unix, в нашем случае им будет тот же сервер мониторинга.
На маршрутизаторе нам необходимо настроить отправку Syslog на сервер хранения:
Теперь все сообщения об авторизации будут отправляться на Syslog сервер, можно конечно отправлять все сообщения (any any), но переизбыток информации нам не нужен, отправляем только необходимое.
Далее переходим к Syslog серверу
Смотрим tcpdump, приходят ли сообщения:
По умолчанию в настройках syslog.conf все что приходит с auth.info должно записываться в /var/log/auth.log. Далее делаем все аналогично примеру с мониторингом входов в Unix.
Вот пример строки из лога:
Остается только настроить триггер на данное событие так же как это было рассмотрено в примере с авторизацией на Unix сервере.
Таким способом можно отслеживать множество событий, среди которых такие как: сохранение конфигурации устройства (commit), вход и выход из режима редактирования конфигурации (edit).
Так же хочу заметить, что аналогичным способом можно осуществлять мониторинг и на устройствах Cisco, но способ с SNMP трапами мне кажется более быстрым и удобным, и исключается необходимость в промежуточном Syslog сервере.