7 Обучение
Этот раздел содержит пошаговые инструкции для наиболее обобщенных задач.
1 Расширение Zabbix агентов
В этом руководстве приведены пошаговые инструкции как расширить функциональность Zabbix агента.
Шаг 1
Напишите скрипт или составьте командную строку для получения необходимого параметра.
Например, мы можем написать следующую команду, чтобы получить общее количество запросов, выполненных сервером MySQL:
mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
После выполнения, команда возвращает общее количество SQL запросов.
Шаг 2
Добавим эту команду в конфигурационный файл агента.
Добавьте в zabbix_agentd.conf команду:
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
mysql.questions это уникальный идентификатор. Здесь может быть любая строка, например, queries.
Протестируем этот параметр, используя утилиту zabbix_get.
Шаг 3
Перезапустите Zabbix агента.
Агент заново загрузит конфигурационный файл.
Шаг 4
Добавим новый элемент данных для мониторинга.
Добавьте новый элемент данных с ключем=mysql.questions к наблюдаемому узлу сети. Тип этого элемента данных должен быть “Zabbix агент” или “Zabbix агент (активный)”.
Помните, что очень важно правильно настроить тип возвращаемого значения в Zabbix сервере. Иначе Zabbix не будет принимать значения для этого элемента данных.
2 Мониторинг лог-файлов
Это руководство содержит пошаговые инструкции по настройке мониторинга лог-файлов. Убедитесь, что узел сети уже создан и настроен в веб-интерфейсе Zabbix.
Шаг 1
Настроим Zabbix агента.
Следуйте стандартной инструкции по установке и настройке агента на наблюдаемом узле сети. Удостоверьтесь, что параметр Hostname совпадает с именем узла сети, настроенного в веб-интерфейсе Zabbix.
Так же убедитесь, что параметр DisableActive не задан в zabbix_agentd.conf
Шаг 2
Добавим новый элемент данных для наблюдения лог-файла.
Обратите внимание на следующие параметры элемента данных:
Параметр | Описание |
---|---|
Тип | Должен быть установлен в 'Zabbix агент (активный)'. |
Ключ | Должен быть установлен в 'log[файл<,regexp>]'. Например: log[/var/log/syslog], log[/var/log/syslog,error]. Убедитесь, что у пользователя 'zabbix' имеются права на чтение этого файла, иначе элемент данных перейдет в состояние ‘Не поддерживается. Zabbix агент будет фильтровать записи в лог-файле по указанному регулярному выражению. |
Тип информации | Должен быть установлен в 'Журнал (лог)'. |
Интервал обновления (в сек) | Параметр определяет как часто Zabbix агент будет проверять лог-файл на предмет его любых изменений. Обычно нужно установить в 1 секунду, для того чтобы получить новые записи как можно быстрее. |
3 Удаленные команды
Это руководство содержит пошаговые инструкции по настройке удаленного выполнения предварительно определенных команд при возникновении события. Предполагается, что Zabbix агент настроен и запущен.
Шаг 1
В Zabbix агенте включите выполнение удаленных команд. Убедитесь, что параметр EnableRemoteCommands установлен в 1 и раскомментирован в zabbix_agentd.conf. Перезапустите демон агента, если вы изменили этот параметр.
Шаг 2
Настройте новое действие перейдя в Настройка → Действия и в блоке Новое действие выберите тип операции Удаленная команда.
Обратите внимание на следующие параметры в действии:
Параметр | Описание |
---|---|
Тип действия | Должен быть установлен в 'Удаленная команда'. |
Удаленная команда | Каждая строка должна содержать выполняемую команду. Например: хост:sudo /etc/init.d/apache restart. Удаленные команды могут содержать макросы! |
Синтаксис удаленных команд:
Удаленная команда | Описание |
---|---|
{HOSTNAME}:<команда> | Команда 'команда' будет выполнена на том узле сети где произошло событие. |
<узел сети>:<команда> | Команда 'команда' будет выполнена на стороне хоста 'узел сети'. |
<группа узлов сети>#<команда> | Команда 'команда' будет выполнена на всех узлах сети в группе узлов сети 'группа узлов сети'. |
Синтаксис удаленных команд IPMI:
Удаленная команда | Описание |
---|---|
{HOSTNAME}:IPMI <ipmi control> [значение] | Синтаксис для выполнения IPMI команды, на том узле сети где произошло событие. Поддерживаемые значения: “on”, “off” или числа (по умолчанию 1). |
<узел сети>:IPMI <ipmi control> [значение] | Синтаксис для выполнения IPMI команды на конкретном узле сети. |
<группа узлов сети>#IPMI <ipmi control> [значение] | Синтаксис для выполнения IPMI команды на всех узлах сети в группе узлов сети. |
Права доступа
Удостоверьтесь, что пользователь 'zabbix' имеет права на выполнение настроенных команд. Может быть нужно будет использовать sudo для получения доступа к привилегированным командам. Для настройки доступа, выполните под root:
# visudo
Примеры строк, которые могут быть использованы в файле sudoers:
# разрешает пользователю 'zabbix' выполнять все команды без ввода пароля. zabbix ALL=NOPASSWD: ALL
# разрешает пользователю 'zabbix' перезапускать apache без ввода пароля. zabbix ALL=(ALL) NOPASSWD: /etc/init.d/apache restart
Пример 1
Перезагрузка Windows при определенном условии.
Для того, чтобы автоматически перезагрузить Windows в случае возникновения проблем обнаруженных Zabbix, определим следующие действия:
Параметр | Описание |
---|---|
Тип действия | 'Удаленная команда' |
Удаленная команда | host:c:\windows\system32\shutdown.exe -r -f Замените 'host' на имя узла сети сервера Windows согласно веб-интерфейса Zabbix |
Пример 2
Перезагрузка хоста используя управление через IPMI.
ПАРАМЕТР | ОПИСАНИЕ |
---|---|
Тип действия | 'Удаленная команда' |
Удаленная команда | {HOSTNAME}:IPMI reset on |
Пример 3
Выключение хоста используя управление через IPMI.
ПАРАМЕТР | ОПИСАНИЕ |
---|---|
Тип действия | 'Удаленная команда' |
Удаленная команда | {HOSTNAME}:IPMI power off |
4 Мониторинг сервисов Windows
Этот руководство содержит пошаговые инструкции по настройке мониторинга сервисов Windows. Предполагается, что Zabbix сервер и Zabbix агент настроены и работают.
Шаг 1
Получение имени сервиса
Вы можете получить это имя, перейдя к оснастке Службы в консоли mmc и открыв свойства службы, состояние которой вы хотите наблюдать. На вкладке Общие вы должны увидеть поле, называемое именем службы. Это значение без скобок и будет нужным именем сервиса. Например, если бы я хотел наблюдать за сервисом “workstation”, то мой сервис будет lanmanworkstation.
Шаг 2
Добавление элемента данных для наблюдения
Добавьте новый элемент данных с ключем service_state[lanmanworkstation], типом данных Числовой (целое положительное) и с преобразованием значений Windows service state.
Data source: Zabbix