Интеграция с системами мониторинга

SNMP-агент Dr.Web может выступать поставщиком данных для любой системы мониторинга, использующей протокол SNMP версии 2c или 3. Перечень данных, доступных для контроля и их структура описаны в файле описания MIB Dr.Web DRWEB-SNMPD-MIB.txt, поставляемом совместно с Dr.Web для почтовых серверов UNIX. Этот файл находится в каталоге <opt_dir>/share/drweb-snmpd/mibs.

Для удобства настройки, совместно с компонентом поставляются необходимые шаблоны настроек для популярных систем мониторинга:

Munin

Nagios

Zabbix

Шаблоны настроек для систем мониторинга находятся в каталоге <opt_dir>/share/drweb-snmpd/connectors.

Интеграция с системой мониторинга Munin

Система мониторинга Munin состоит из централизованного сервера (мастера) munin, собирающего статистику от клиентов munin-node, располагающихся локально на узлах, подлежащих наблюдению. Каждый клиент мониторинга по запросу от сервера собирает данные о работе наблюдаемого узла, запуская подключаемые модули (plug-ins), предоставляющие данные для передачи на сервер.

Для подключения Dr.Web SNMPD к системе мониторинга Munin в каталоге <opt_dir>/share/drweb-snmpd/connectors/munin/plugins поставляются готовые подключаемые модули сбора данных Dr.Web, используемые munin-node. Эти модули собирают данные для построения следующих графиков:

Количество обнаруженных угроз.

Статистика проверки файлов.

Статистика проверки почтовых сообщений (получить статистику проверки почтовых сообщений можно только с помощью компонента Dr.Web MailD.).

Указанные модули поддерживают использование протокола SNMP версий 1, 2c и 3. На основе этих шаблонных модулей можно создать любые подключаемые модули, опрашивающие состояние Dr.Web для почтовых серверов UNIX через Dr.Web SNMPD.

В каталоге <opt_dir>/share/drweb-snmpd/connectors/munin поставляются следующие файлы.

Файл

Описание

plugins/snmp__drweb_malware

Подключаемый модуль munin-node для опроса Dr.Web SNMPD через SNMP с целью получения количества угроз, обнаруженных Dr.Web для почтовых серверов UNIX на узле.

plugins/snmp__drweb_filecheck

Подключаемый модуль munin-node для опроса Dr.Web SNMPD через SNMP с целью получения статистики проверки файлов Dr.Web для почтовых серверов UNIX на узле.

plugins/snmp__drweb_maild_multi

Подключаемый модуль munin-node для опроса Dr.Web SNMPD через SNMP с целью получения статистики проверки сообщений электронной почты Dr.Web для почтовых серверов UNIX на узле.

Обратите внимание, что данный модуль использует multigraph — особенность, реализованная в Munin версий, вышедших после 1.4.

plugin-conf.d/drweb.cfg

Пример конфигурации в munin-node значений переменных среды исполнения подключаемых модулей Dr.Web.

Подключение узла к Munin

В данной инструкции предполагается, что система мониторинга Munin уже корректно развернута на сервере мониторинга, а на наблюдаемом узле установлены и корректно функционируют Dr.Web SNMPD (возможно, в режиме прокси совместно с snmpd) и munin-node.

1.Настройка на наблюдаемом узле

Скопируйте файлы snmp__drweb_* в каталог библиотек подключаемых модулей munin-node (этот путь зависит от используемой ОС. Например, в Debian/Ubuntu это путь /usr/share/munin/plugins).

Сконфигурируйте munin-node, подключив к нему поставляемые подключаемые модули Dr.Web. Для этого используйте утилиту munin-node-configure, которая поставляется совместно с munin-node.

Например, команда:

$ munin-node-configure --shell --snmp localhost

выведет на экран терминала список команд для создания необходимых символических ссылок на подключаемые модули. Скопируйте и выполните их в командной строке. Обратите внимание, что указанная команда предполагает, что:

1)munin-node установлена на том же узле в сети, что и Dr.Web SNMPD. Если это не так, то следует указать вместо localhost правильный FQDN или IP-адрес наблюдаемого узла;

2)Dr.Web SNMPD использует протокол SNMP версии 2c. Если это не так, то следует указать правильную версию протокола SNMP в вызове команды munin-node-configure. Эта команда имеет набор ключей, которые позволяют гибко настроить подключаемые модули, в том числе указать используемую версию протокола SNMP, порт, используемый SNMP-агентом на наблюдаемом узле, строку community string и т. п. При необходимости воспользуйтесь справкой по команде munin-node-configure.

При необходимости определите (или переопределите) значения параметров среды, в которой должны исполняться установленные подключаемые модули Dr.Web для munin-node. В качестве параметров среды используется значение community string, используемый SNMP-агентом порт и так далее. Эти параметры необходимо определить в файле /etc/munin/plugin-conf.d/drweb (создайте его при необходимости). В качестве примера данного файла используйте поставляемый файл drweb.cfg.

В файле конфигурации munin-node (munin-node.conf) укажите регулярное выражение, которому должны соответствовать IP-адреса узлов сети, с которых серверам (мастерам) munin разрешено подключаться к munin-node на данном узле для получения значений контролируемых параметров, например:

allow ^10\.20\.30\.40$

В данном случае регулярное выражение разрешает получение параметров этого узла только узлу с IP-адресом 10.20.30.40.

Перезапустите munin-node, например командой:

# service munin-node restart

2.Настройка на сервере (мастере) Munin

В конфигурационный файл мастера Munin munin.conf, который по умолчанию хранится в каталоге /etc (в системах Debian/Ubuntu — /etc/munin/munin.conf), добавьте запись с адресом и идентификатором наблюдаемого узла:

[<ID>;<hostname>.<domain>]
address <host IP address>
use_node_name yes

где <ID> — отображаемый идентификатор узла; <hostname> — имя узла; <domain> — имя домена; <host IP address> — IP-адрес узла.

С официальной документацией по настройке системы мониторинга Munin вы можете ознакомиться по ссылке http://guide.munin-monitoring.org/en/latest.

Интеграция с системой мониторинга Zabbix

Для подключения Dr.Web SNMPD к системе мониторинга Zabbix в каталоге <opt_dir>/share/drweb-snmpd/connectors/zabbix поставляются следующие файлы шаблонов.

Файл

Описание

zbx_drweb.xml

Шаблон описания наблюдаемого узла с установленным Dr.Web для почтовых серверов UNIX

snmptt.drweb.zabbix.conf

Настройки утилиты snmptt — приемника уведомлений SNMP trap

Шаблон описания наблюдаемого узла содержит:

набор описаний счетчиков («items», в терминологии Zabbix). По умолчанию шаблон настроен на использование протокола SNMP v2;

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

Подключение узла к Zabbix

В данной инструкции предполагается, что система мониторинга Zabbix уже корректно развернута на сервере мониторинга, а на наблюдаемом установлен и корректно функционирует Dr.Web SNMPD (возможно, в режиме прокси совместно с snmpd). Кроме того, если планируется получать с наблюдаемого узла оповещения SNMP trap (в частности об обнаружении Dr.Web для почтовых серверов UNIX угроз на защищаемом сервере), на сервере мониторинга также должен быть установлен пакет net-snmp (используются стандартные утилиты snmptt и snmptrapd).

1.В веб-интерфейсе Zabbix, на вкладке Configuration → Templates, импортируйте шаблон наблюдаемого узла из файла <opt_dir>/share/drweb-snmpd/connectors/zabbix/zbx_drweb.xml.

2.Добавьте наблюдаемый узел в список узлов (используйте ссылку Hosts → Create host). Укажите параметры узла и корректные настройки SNMP-интерфейса (должны соответствовать настройкам drweb-snmpd и snmpd на узле):

Вкладка Host:

Host name: drweb-host

Visible name: DRWEB_HOST

Groups: выберите Linux servers

Snmp interfaces: нажмите Add и укажите IP-адрес и порт, используемый Dr.Web SNMPD (по умолчанию предполагается, что Dr.Web SNMPD работает на локальном узле, поэтому здесь указан адрес 127.0.0.1, а в качестве порта указан стандартный порт 161).

Вкладка Templates:

Нажмите Add, отметьте DRWEB, нажмите Select.

Вкладка Macros:

Macro: {$SNMP_COMMUNITY}

Value: укажите «read community» для SNMP V2c (по умолчанию public).

Нажмите Save.

Примечание: Макрос {$SNMP_COMMUNITY} можно указать непосредственно в шаблоне узла.

По умолчанию импортированный шаблон DRWEB настроен на использование версии SNMP v2. Если требуется использовать другую версию SNMP, его необходимо отредактировать на соответствующей странице редактирования шаблона.

3.После привязки шаблона к наблюдаемому узлу, если настройки SNMP корректны, система мониторинга Zabbix начнет сбор данных для счетчиков (items), содержащихся в шаблоне, на вкладках веб-интерфейса Monitoring → Latest Data и Monitoring → Graphs будут отображаться собранные данные счетчиков.

4.Специальный элемент (item) drweb-traps служит для сбора уведомлений SNMP trap от Dr.Web SNMPD. Журнал полученных оповещений SNMP trap доступен на странице Monitoring → Latest Data → drweb-traps → history. Для сбора оповещений Zabbix использует стандартные утилиты snmptt и snmptrapd из пакета net-snmp. О их настройке для получения уведомлений SNMP trap от Dr.Web SNMPD см. ниже.

5.В случае необходимости, вы можете настроить для добавленного наблюдаемого узла триггер, изменяющий свое состояние при получении уведомлений SNMP trap от Dr.Web SNMPD. Изменение состояния этого триггера можно использовать как источник событий для формировать соответствующих нотификаций. Триггер для наблюдаемого узла добавляется стандартным способом, ниже показан пример выражения, указываемого в поле trigger expression для описанного триггера.

Для Zabbix версии 2.x:

({TRIGGER.VALUE}=0 & {DRWEB:snmptrap[.*\.1\.3\.6\.1\.4\.1\.29690\..*].nodata(60)}=1 )|({TRIGGER.VALUE}=1 & {DRWEB:snmptrap[.*\.1\.3\.6\.1\.4\.1\.29690\..*].nodata(60)}=0)

Для Zabbix версии 3.x:

({TRIGGER.VALUE}=0 and {drweb-host:snmptrap[".29690."].nodata(60)}=1 ) or
({TRIGGER.VALUE}=1 and {drweb-host:snmptrap[".29690."].nodata(60)}=0 )

Данный триггер срабатывает (устанавливается в значение 1), если журнал уведомлений SNMP trap, поступающих от Dr.Web SNMPD был обновлен в течение минуты. Если же журнал в течение минуты не обновлялся, то триггер выключается (меняет состояние на 0).

В поле Severity для этого триггера рекомендуется устанавливать вид уведомления, отличный от Not classified, например Warning.

Настройка приема уведомлений SNMP trap для Zabbix

1.На наблюдаемом узле в настройках Dr.Web SNMPD (параметр TrapReceiver) указывается адрес, который прослушивается snmptrapd на узле с Zabbix, например:

SNMPD.TrapReceiver = 10.20.30.40:162

2.В конфигурационном файле snmptrapd (snmptrapd.conf) указывается тот же адрес, а также приложение, которое будет обрабатывать полученные уведомления SNMP trap (в данном случае snmptthandler, компонент snmptt):

snmpTrapdAddr 10.20.30.40:162
traphandle default /usr/sbin/snmptthandler

Чтобы snmptt не отклонял, как неизвестные, уведомления SNMP trap, отправленные Dr.Web SNMPD, добавьте в этот файл также строку:

outputOption n

3.Компонент snmptthandler сохраняет принимаемые уведомления SNMP trap в файл на диске в соответствии с указанным форматом, который должен соответствовать регулярному выражению, заданному в шаблоне узла для Zabbix (элемент (item) drweb-traps). Формат сохраняемого сообщения о поступлении уведомления SNMP trap поставляется в файле <opt_dir>/share/drweb-snmpd/connectors/zabbix/snmptt.drweb.zabbix.conf, который необходимо скопировать в каталог /etc/snmp.

4.Кроме этого, путь к файлам формата необходимо указать в конфигурационном файле snmptt.ini:

[TrapFiles]
# A list of snmptt.conf files (this is NOT the snmptrapd.conf file).
# The COMPLETE path and filename. Ex: '/etc/snmp/snmptt.conf'
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
/etc/snmp/snmptt.drweb.zabbix.conf
END

После этого, если snmptt запущен в режиме демона, то его надо перезапустить.

5.В конфигурационном файле сервера Zabbix (zabbix-server.conf) необходимо задать (или проверить наличие) следующих настроек:

SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1

где /var/log/snmptt/snmptt.log — это файл журнала, в который snmptt записывает информацию о поступивших уведомлениях SNMP trap.

Подробнее с официальной документацией по Zabbix вы можете ознакомиться по ссылке https://www.zabbix.com/documentation/current/en.

Интеграция с системой мониторинга Nagios

Для подключения Dr.Web SNMPD к системе мониторинга Nagios в каталоге <opt_dir>/share/drweb-snmpd/connectors/nagios поставляются следующие файлы примеров конфигурации Nagios.

Файл

Описание

nagiosgraph/rrdopts.conf-sample

Пример конфигурационного файла RRD

objects/drweb.cfg

Конфигурационный файл, описывающий объекты drweb

objects/nagiosgraph.cfg

Конфигурационный файл компонента построения графиков Nagiosgraph, используемого Nagios

plugins/check_drweb

Скрипт для сбора данных от узла с Dr.Web для почтовых серверов UNIX

plugins/eventhandlers/submit_check_result

Скрипт для обработки уведомлений SNMP trap

snmp/snmptt.drweb.nagios.conf

Настройки утилиты snmptt — приемника уведомлений SNMP trap

Подключение узла к Nagios

В данной инструкции предполагается, что система мониторинга Nagios уже корректно развернута на сервере мониторинга, включая настройку веб-сервера и графического средства Nagiosgraph, а на наблюдаемом установлен и корректно функционирует Dr.Web SNMPD (возможно, в режиме прокси совместно с snmpd). Кроме того, если планируется получать с наблюдаемого узла уведомления SNMP trap (в частности об обнаружении Dr.Web для почтовых серверов UNIX угроз на защищаемом сервере), на сервере мониторинга также должен быть установлен пакет net-snmp (используются стандартные утилиты snmptt и snmptrapd).

В данном руководстве по подключению используются следующие соглашения о путях (реальные пути зависят от ОС и установки Nagios):

<NAGIOS_PLUGINS_DIR> — каталог плагинов Nagios, например: /usr/lib64/nagios/plugins.

<NAGIOS_ETC_DIR> — каталог настроек Nagios, например: /etc/nagios.

<NAGIOS_OBJECTS_DIR> — каталог объектов Nagios, например: /etc/nagios/objects.

<NAGIOSGRAPH_DIR> — каталог Nagiosgraph, например: /usr/local/nagiosgraph.

<NAGIOS_PERFDATA_LOG> — файл, в который Nagios записывает результаты выполнения команд проверки сервисов (должен совпадать с файлом perflog из <NAGIOSGRAPH_DIR>/etc/nagiosgraph.conf). Записи из этого файла считываются скриптом <NAGIOSGRAPH_DIR>/bin/insert.pl и записываются в соответствующие RRA-архивы RRD Tool.

Настройка Nagios:

1.Скопируйте файл check_drweb в каталог <NAGIOS_PLUGINS_DIR>, а файл drweb.cfg — в каталог <NAGIOS_OBJECTS_DIR>.

2.Добавьте в группу drweb узлы с установленным Dr.Web для почтовых серверов UNIX, подлежащие наблюдению (на них должен быть запущен Dr.Web SNMPD), по умолчанию в данную группу включен только локальный узел localhost.

3.Отредактируйте (при необходимости) команду check_drweb, в которой указывается обращение к Dr.Web SNMPD на узлах drweb через утилиту snmplwalk:

snmpwalk -c public -v 2c $HOSTADDRESS$:161

укажите правильную версию протокола SNMP и параметры (такие, как "community string" или параметры аутентификации), а также порт. Переменную $HOSTADDRESS$ необходимо оставить в команде (она автоматически заменяется Nagios на правильный адрес узла при вызове команды). OID в команде указывать не требуется. Рекомендуется также указать команду вместе с полным путем к исполняемому файлу (обычно — /usr/local/bin/snmpwalk).

4.Подключите объекты DrWeb в конфигурационном файле <NAGIOS_ETC_DIR>/nagios.cfg, добавив в него строку:

cfg_file= <NAGIOS_OBJECTS_DIR>/drweb.cfg

5.Добавьте настройки RRD Tool для графиков DrWeb из файла rrdopts.conf-sample в файл <NAGIOSGRAPH_DIR>/etc/rrdopts.conf.

6.Если компонент Nagiosgraph еще не настроен, то выполните его настройку:

Скопируйте файл nagiosgraph.cfg в каталог <NAGIOS_OBJECTS_DIR> и исправьте путь к файлу скрипта insert.pl в команде process-service-perfdata-for-nagiosgraph, например так:

$ awk '$1 == "command_line" { $2 = "<NAGIOSGRAPH_DIR>/bin/insert.pl" }{ print }' ./objects/nagiosgraph.cfg > <NAGIOS_OBJECTS_DIR>/nagiosgraph.cfg

Подключите этот файл в конфигурационном файле <NAGIOS_ETC_DIR>/nagios.cfg, добавив в него строку:

cfg_file=<NAGIOS_OBJECTS_DIR>/nagiosgraph.cfg

7.Проверьте значения переменных конфигурации Nagios в конфигурационном файле <NAGIOS_ETC_DIR>/nagios.cfg:

check_external_commands=1
execute_host_checks=1
accept_passive_host_checks=1
enable_notifications=1
enable_event_handlers=1
 
process_performance_data=1
service_perfdata_file=/usr/nagiosgraph/var/rrd/perfdata.log
service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph
 
check_service_freshness=1
enable_flap_detection=1
enable_embedded_perl=1
enable_environment_macros=1

Настройка приема уведомлений SNMP trap для Nagios

1.На наблюдаемом узле в настройках Dr.Web SNMPD (параметр TrapReceiver) укажите адрес, который прослушивается snmptrapd на узле с Nagios, например:

SNMPD.TrapReceiver = 10.20.30.40:162

2.Проверьте наличие файла скрипта <NAGIOS_PLUGINS_DIR>/eventhandlers/submit_check_result, который будет вызываться при получении уведомлений SNMP trap. Если этого файла нет, то следует скопировать в это место файл submit_check_result из каталога <opt_dir>/share/drweb-snmpd/connectors/nagios/plugins/eventhandlers/. Необходимо в этом файле исправить путь, указанный в параметре CommandFile. Он должен иметь такое же значение, что и параметр command_file в файле <NAGIOS_ETC_DIR>/nagios.cfg.

3.Скопируйте файл snmptt.drweb.nagios.conf в каталог /etc/snmp/snmp/. В этом файле измените путь к файлу скрипта submit_check_result, например, используя следующую команду:

$ awk '$1 == "EXEC" { $2 = <NAGIOS_PLUGINS_DIR>/eventhandlers/submit_check_result }{ print}' ./snmp/snmptt.drweb.nagios.conf > /etc/snmp/snmp/snmptt.drweb.nagios.conf

4.Добавьте в файл /etc/snmp/snmptt.ini строку «/etc/snmp/snmptt.drweb.nagios.conf». После этого, если snmptt запущен в режиме демона, то его надо перезапустить.

После того как все требуемые файлы конфигурации Nagios были добавлены и отредактированы, необходимо запустить Nagios в режиме отладки командой:

# nagios -v <NAGIOS_ETC_DIR>/nagios.cfg

В этом случае Nagios проверит наличие ошибок конфигурации. Если при проверке ошибки не найдены, перезапустите Nagios стандартным способом (например, командой ОС service nagios restart).

Подробнее с официальной документацией по Nagios вы можете ознакомиться по ссылке https://www.nagios.org/documentation.