Конфигурация программных агентов
Программные агенты Pandora FMS
Что такое Программный Агент Software Agent
Как видно из названия, это небольшие программы, которые устанавливаются в операционные системы и работают в них для извлечения информации мониторинга и регулярной отправки ее на сервер Pandora FMS.
Для получения информации они используют команды и инструменты операционной системы, в которой они установлены. Они формируют данные в файл в формате XML и отправляют их на сервер данных Pandora FMS, который обрабатывает и сохраняет их в базе данных.
Каждая индивидуальная проверка называется Модуль .
Введение в конфигурацию Программного Агента
Работа программного агента определяется его конфигурационным файлом, называемым pandora_agent.conf
, расположенным в каталоге установки (значение по умолчанию) %ProgramFiles%\pandora_agent
в системах MS Windows®, и в /etc
в системах GNU/Linux®. Файл конфигурации содержит все функциональные параметры и модули данного Агента.
Общие параметры Агента
Общие параметры конфигурации программного агента определены в этом разделе. Большинство из них являются общими для систем MS Windows® и GNU/Linux®.
Кодировка файла конфигурации агента - UTF-8 как в системах GNU/Linux®, так и в MS Windows®. Если вы редактируете этот файл вручную, проверьте правильность кодировки, прежде чем перезаписывать его. Если кодировка не UTF-8 и вы используете символы (например, ударение или расширенные символы), Программный агент неправильно их интерпретирует и не может гарантировать правильную интерпретацию вашей конфигурации.
При первом получении данных от программного агента вся информация сохраняется в базе данных. Для последовательной отправки информации (и в зависимости от того, включен ли режим обучения) будут обновляться только следующие поля XML: version
(версия), timestamp
(дата) y os_version
(версия операционная система), а также следующие параметры конфигурационного файла gis_exec
, latitude
, longitude
, altitude
, parent_agent_name
, timezone_offset
, address
, custom_field
Вы можете найти дополнительную информацию о формате XML файлов Pandora FMS по этой ссылке. Вы также можете получить доступ к генерации тестовых данных (инструменты анализа производительности).
server_ip
IP-адрес или имя сервера Pandora FMS, на который будут отправлены данные.
server_path
Путь к серверу, где он получает файлы данных, отправленные агентами. По умолчанию /var/spool/pandora/data_in
.
temporal
Путь, где Программный Агент хранит файлы данных перед их отправкой на сервер и локальным удалением.
description
Отправит описание программного агента в XML, и Pandora FMS импортирует это описание при создании Программного Агента.
group
Если существует группа с именем, указанным в этом параметре, агент будет создан внутри этой группы, если только сервер не заставит создать всех агентов в определенной группе.
temporal_min_size
Если свободное пространство (в мегабайтах) раздела, в котором находится временный каталог, меньше этого значения (по умолчанию один мегабайт), генерация пакетов данных прекращается. Это предотвращает заполнение диска, если по какой-то причине соединение с первичным и/или вторичным сервером PFMS будет потеряно на длительный период времени.
В Просмотре событий Pandora FMS вы сможете своевременно узнать, если программный агент, независимо от причины, перестал передавать данные на свой основной и/или дополнительный сервер PFMS, поскольку в таких случаях его статус становится «неизвестным» (UNKNOWN
). Смотрите также, если хотите, создание условий оповещения.
В данном конкретном примере с четырьмя днями автономной работы данные мониторинга будут сохраняться до тех пор, пока на диске не останется всего 1 мегабайт (или любое другое установленное значение) свободного места.
В связи с вышесказанным, всегда следует помнить, что когда Программный агент наконец-то подключится к первичному и/или вторичному серверу PFMS, объем накопленных данных может перегрузить сервер данных PFMS.
logfile
Путь журнала Агента Pandora FMS.
interval
В секундах - время выборки агента. Каждый раз, когда этот интервал завершается, Агент будет собирать информацию и отправлять ее на сервер Pandora FMS.
disable_logfile
Только для MS Windows®: отключает запись в pandora_agent.log
.
debug
Если активно( 1
), файлы данных агента хранятся и переименовываются во временном каталоге и не удаляются после отправки на сервер, что позволяет открывать XML-файлы и анализировать их содержимое.
agent_name
Позволяет задать пользовательское имя. Если он не включен, именем агента будет имя хоста устройства.
agent_name_cmd
Версия 5.1 SP2 или выше.
Определите имя Агента с помощью внешней команды. Если agent_name_cmd
определен, то agent_name
игнорируется. Команда должна вернуть имя агента через STDOUT. Если вы возвращаете более одной строки, будет использована только первая.
agent_alias_cmd
Версия NG 7 или выше.
Определите алиас Агента с помощью внешней команды. Если agent_alias_cmd
определен, то agent_alias
игнорируется. Команда должна вернуть имя агента через STDOUT. Если вы возвращаете более одной строки, будет использована только первая.
address
Это IP-адрес, связанный с программным агентом. Это может быть IPv4 с форматом X.X.X.X.X
, доменным именем, например localhost
или auto
. Если это IP или доменное имя, оно будет добавлено в коллекцию адресов Агента и установлено в качестве основного. Если это auto
, IP-адрес устройства будет получен и добавлен к агенту таким же образом, как и в предыдущем случае.
encoding
Установите тип кодировки локальной системы, например ISO-8859-15
, или UTF-8
.
server_port
Порт, в котором сервер Tentacle Pandora FMS прослушивает прием файлов данных, 41121
по умолчанию.
transfer_mode
Режим передачи файлов данных на сервер Pandora FMS. Значение по умолчанию tentacle
.
transfer_timeout
Версия 6.0 или выше.
Время ожидания(timeout) для передачи файла; если превышено указанное количество секунд, а передача не завершена, то она будет отменена.
server_pwd
Пароль сервера для аутентификации: Специальная для Windows FTP® и для режима передачи Tentacle, хотя для последнего пароль не обязателен.
server_ssl
Специальный для режима передачи Tentacle. Позволяет включить ( 1
) или отключить ( 0
) шифрование соединений с помощью SSL. Вы можете узнать больше о безопасном соединении с помощью Tentacle в этом разделе.
server_opts
Чтобы добавить дополнительные опции при запуске клиента Tentacle при передаче файлов. Используется для расширенных конфигураций Tentacle с опциями безопасности.
Начиная с версии агентов 3.2 клиент Tentacle поддерживает возможность использования HTTP-прокси для отправки данных на сервер. У этого HTTP-прокси должен быть включен метод CONNECT. Чтобы использовать вывод через прокси, используйте следующую опцию (например):
server_opts -y user:[email protected]:8080
Эта опция заставляет клиента Tentacle отправлять данные через прокси, расположенный по адресу proxy.inet
и использующий порт 8080
, с помощью пользователя user
и пароля pass
для аутентификации в этом прокси. Если, например, вам нужно использовать proxy без аутентификации, на сервере в 192.168.1.2
и с портом 9000
, опция будет следующей:
server_opts -y 192.168.1.2:9000
Вы можете узнать больше о безопасном соединении с помощью Tentacle в этом разделе.
delayed_startup
Отключен по умолчанию. Время ожидания (секунды или минуты), до начала работы агента после его запуска. Для всех программных агентов, кроме MS Windows®.
startup_delay
Отключено по умолчанию. Время ожидания, в секундах, до начала работы агента после его запуска. Только для MS Windows®.
pandora_nice
Доступно только для агентов Unix/Linux. Этот параметр позволяет указать приоритет, который будет иметь процесс Агента Pandora FMS в системе.
autotime
Если он включен ( 1
), то будет отправлен специальный временной штамп (timestamp) выполнения (AUTO), который заставляет сервер использовать локальные дату и время сервера для установки времени данных, игнорируя время, отправленное Агентом. Это необходимо для тех агентов, которые по каким-либо причинам имеют неправильное или сильно отличающееся от сервера время.
cron_mode
С помощью этого параметра можно заставить Агента использовать crontab Linux® для запуска через определенный интервал времени вместо того, чтобы использовать собственную внутреннюю систему Агента для запуска время от времени. Деактивировано по умолчанию ( 0
).
remote_config
Включает ( 1
) или выключает ( 0
) удаленную конфигурацию агентов. Его функционирование разрешено только в режиме передачи Tentacle.
xml_buffer
Если включено ( 1
), Программный агент будет сохранять во временном каталоге XML-файлы, которые не удалось отправить на сервер в случае проблем с подключением. Они будут отправлены, когда связь будет восстановлена.
timezone_offset
Программный агент вполне может установить себе timezone offset вместе с сервером. Это позволяет серверу смещать время, выбранное Агентом, так, чтобы оно совпадало с местным временем сервера.
# Timezone offset: Difference with the server timezone timezone_offset 3
Смещение часового пояса рассчитывается путем вычитания часового пояса агента из часового пояса сервера. Например, если сервер находится в часовом поясе UTC+1, а агент - в UTC-5, то timezone_offset должен быть равен 6 = 1 - (-5).
parent_agent_name
Указывает на родителя Программного Агента. Это должно быть имя существующего агента в Pandora FMS.
agent_threads
Доступно только для агентов Unix/Linux: Количество потоков, которые запускает агент для параллельного выполнения нескольких модулей. По умолчанию модули выполняются один за другим без запуска дополнительных потоков. Пример:
# Number of threads to execute modules in parallel agent_threads 4
include
include <file>
Позволяет включить файл (file) дополнительной конфигурации. Этот файл может включать в себя дополнительные модули и коллекции в дополнение к основному файлу. Файл может быть загружен теми пользователями, которые имеют список профилей на запись в Агентах ( AW
).
broker_agent
broker_agent <broker_name>
Включает функции агента брокера. Для его активации достаточно убрать из комментариев параметр и указать имя (<broker_name>
), которое будет присвоено агенту брокеру.
pandora_user
pandora_user <user>
Этот параметр является необязательным и позволяет запустить Агент с системным пользователем( <user>
), которого вы укажете. Этот пользователь должен иметь разрешения для выполнения Агента и связанных с ним ресурсов.
custom_id
Версия 5.x или выше.
Пользовательский идентификатор Агента для внешних приложений.
url_address
Версия 5.x или выше.
Пользовательский URL для открытия из агента в Консоли.
custom_fieldX_name
Версия 5.x или выше.
Имя пользовательского поля агентов, которое уже существует в системе. Если не существует, будет проигнорировано. Пример:
custom_field1_name Model
custom_fieldX_value
Версия 5.x или выше.
Значение для пользовательского поля custom_fieldX_name определенного в предыдущем параметре. Пример:
custom_field1_value C1700
macro
Версия 5.1 или выше Unix/Linux.
macro<macro> <value>
Определяет Макросы локального запуска, который может быть использован в определении модуля. Эти макросы используются в системе Метаконсоли и в локальной системе компонентов модуля, чтобы не сталкиваться со сложностью использования модуля путем прямого редактирования кода, представляя менее продвинутому пользователю локальный интерфейс, позволяющий «заполнять» значения. Эти значения используются ниже, с помощью системы макросов, относительно похожей на систему макросов локальных плагинов.
Локальные макросы выполнения начинаются с _fieldx_
Пример:
module_begin module_name Particion_opt module_type generic_data module_exec df -kh _field1_ | tail -1 | awk '{ print $5}' | tr -d "%" module_macro_field1_ /opt module_end
group_password
Версия 6.0 SP5 или выше.
group_password <password>
Пароль (password) для группы агентов. Если группа не защищена паролем, вы должны оставить эту строку в качестве комментария.
ehorus_conf
Версия NG 7 или выше.
ehorus_conf <path>
Абсолютный путь (path) к действительному файлу конфигурации для агента eHorus. Агент создаст пользовательское поле eHorusID
, которое будет содержать идентификационный ключ агента eHorus.
transfer_mode_user
Версия NG 7.0 OUM713 или выше.
transfer_mode_user <user>
Пользователь (user) файлов, копируемых в режиме локальной передачи. В папках Консоли этот пользователь должен иметь права на чтение и запись, чтобы удаленная конфигурация работала правильно. По умолчанию apache
.
secondary_groups
Версия NG 7.0 OUM721 или выше.
secondary_groups <group name1>, <group name2>, ... <group nameN>
Имя вторичных групп (group name), назначенных агенту. Вы можете указать несколько подгрупп, разделенных запятыми. Если одна из групп не существует на сервере, на который отправляется информация, эта группа не будет назначена, но на создание Агента это не повлияет.
standby
Версия NG 7.0 OUM728 или выше.
standby <1|0>
Если у агента включен режим ожидания ( standby 1
), агент не будет выполнять никаких проверок, отправлять или генерировать XML. Эта директива конфигурации имеет смысл в установках Enterprise, где есть удаленная конфигурация. Благодаря этому агента можно поставить в тихий режим по желанию, просто отключив его.
Режим отладки debug переписывает эту функцию, и Агент работает нормально.
Второстепенный сервер
Вы можете определить вторичный сервер, на который будут отправляться данные в двух возможных ситуациях в зависимости от конфигурации:
- on_error: Отправляет данные на вторичный сервер, только если он не может отправить их на первичный.
- always: Всегда отправляет данные на вторичный сервер, независимо от того, может ли он связаться с первичным сервером или нет.
Пример конфигурации:
# Secondary server configuration # ============================== # If secondary_mode is set to on_error, data files are copied to the secondary # server only if the primary server fails. If set to always, data files are # always copied to the secondary server. #secondary_mode on_error #secondary_server_ip localhost #secondary_server_path /var/spool/pandora/data_in #secondary_server_port 41121 #secondary_transfer_mode tentacle #secondary_transfer_timeout 30 #secondary_server_pwd mypassword #secondary_server_ssl no #secondary_server_opts
Сервер UDP
Помните, что UDP по своей природе небезопасен (но эффективен для отправки сообщений без ущерба для определенного ответа).
Программный агент Pandora FMS может быть настроен для прослушивания удаленных команд. Этот сервер прослушивает UDP-порт, указанный пользователем, и позволяет получать приказы от удаленной системы, обычно от консоли Pandora FMS, посредством выполнения предупреждений на сервере.
Чтобы настроить удаленный сервер UDP, имеются следующие опции в его конфигурационном файле pandora_agent.conf
>
- udp_server: Чтобы включить сервер UDP, установите значение
1
. По умолчанию деактивировано. - udp_server_port: Номер порта прослушивания.
- udp_server_auth_address: IP-адреса, авторизованные для отправки приказов. Чтобы указать несколько адресов, разделяйте их запятыми. Если установлено значение 0.0.0.0, принимает команды с любого адреса.
Хотя его можно установить в 0.0.0.0 для приема из всех источников, такая практика не рекомендуется. Если у вас несколько серверов PFMS и/или вы используете IPv6, вы можете разместить различные IP-адреса, разделенные запятыми. Например, если вы имеете в IPv6:2001:0db8:0000:130F:0000:0000:087C:140B
и его сокращение 2001:0db8:0:130F::87C:140B
, используйте оба варианта, разделенные запятыми.
- process_<name>_start <command>: Команда, запускающая определенный пользователем процесс.
- process_<name>_stop <command>: Команда, останавливающая процесс.
- service_<name> 1: Позволяет останавливать или запускать службу <name> удаленно с сервера UDP.
Пример конфигурации:
udp_server 1 udp_server_port 4321 udp_server_auth_address 192.168.1.23 process_firefox_start firefox process_firefox_stop killall firefox service_messenger 1
Сервер принимает следующие команды:
<START|STOP> SERVICE <service name>
Запускает или останавливает указанную службу (service name).
<START|STOP> PROCESS <process name>
Запускает или завершает указанный процесс (process name).
REFRESH AGENT <agent name>
Вызывает выполнение указанного Агента (agent name), обновляя данные.
Например:
STOP SERVICE messenger START PROCESS firefox REFRESH AGENT 007
В сервере, в /util/udp_client.pl
, есть скрипт, который используется Pandora FMS Server в качестве команды предупреждения, для запуска процессов или служб. Он имеет следующий синтаксис:
./udp_client.pl <address> <port> <command>
Например, для перезапуска агента:
./udp_client.pl 192.168.50.30 41122 "REFRESH AGENT"
Для получения дополнительной информации см. главу в настройках предупреждений.
Определение модулей
Модули локальной реализации определены в файле конфигурации pandora_agent.conf
. Общий синтаксис выглядит следующим образом:
module_begin module_name <module name> module_type generic_data module_exec <local command> module_end
Где module name - имя модуля, а local command - команда для выполнения. Существует множество дополнительных опций для модулей, в данном примере мы использовали только общие и обязательные строки для большинства случаев.
Вы можете узнать больше в обучающих видеороликах:
В следующих разделах подробно рассматривается каждый из них.
Элементы, общие для всех модулей
Поля модуля (за исключением данных модуля, описания и расширенной информации) обновляются только при создании модуля, они никогда не обновляются, если модуль уже существует.
module_begin
Стартовая этикетка модуля. Обязательно.
module_name
module_name <name>
Имя (name) Модуля. Это имя должно быть уникальным и единственным в Агенте. Обязательно.
module_type
module_type <type>
Тип (type) данных, которые будут возвращены Модулем. Обязательно. Доступны следующие типы:
- Числовой (
generic_data
): Простые числовые данные, с плавающей запятой или целые числа. - Инкрементный (
generic_data_inc
): Числовые данные равны разнице между текущим и предыдущим значением, деленной на количество прошедших секунд. Когда эта разница отрицательна, значение сбрасывается, это означает, что когда разница снова станет положительной, будет принято предыдущее значение до тех пор, пока приращение не вернется к положительному значению. - Абсолютный инкрементный (
generic_data_inc_abs
): Числовые данные, равные разнице между текущим и предыдущим значением, без деления на количество прошедших секунд, для измерения общего приращения вместо приращения в секунду. Когда эта разница отрицательна, значение сбрасывается, это означает, что когда разница снова становится положительной, используется последнее значение, от которого получено положительное текущее приращение. - Буквенно-цифровой (
generic_data_string
): Собирает буквенно-цифровые текстовые строки. - Логические (
generic_proc
): Для значений, которые могут быть только правильно или положительно (1) или неправильно или отрицательно (0). Полезно для проверки того, активно ли устройство, запущен ли процесс или служба. Отрицательное значение (0) приводит к критическому состоянию, в то время как любое более высокое значение считается правильным. - Буквенно-цифровой асинхронный (
async_string
): Для текстовых строк асинхронного типа. Такой синхронный мониторинг зависит от событий или изменений, которые могут произойти или не произойти, поэтому данный тип модуля никогда не находится в неизвестном состоянии. - Логический асинхронный (
async_proc
): Для булевых значений асинхронного типа. - Числовой асинхронный (
async_data
): Для числовых значений асинхронного типа.
module_min
module_min <value>
Минимальное значение (value), которое должен вернуть модуль, чтобы быть принятым. В противном случае он будет отброшен сервером.
module_max
module_max <value>
Максимальное значение (value), которое должен вернуть модуль, чтобы быть принятым. В противном случае он будет отброшен сервером.
module_min_warning
module_min_warning <value>
Минимальное значение (value) порога предупреждения warning
.
module_max_warning
module_max_warning <value>
Максимальное значение (value) порога предупреждения warning
.
module_min_critical
module_min_critical <value>
Минимальное значение (value) критического порога critical
.
module_max_critical
module_max_critical <value>
Максимальное значение (value) критического порога critical
.
module_disabled
module_disabled <0|1>
Указывает, включен ли модуль ( 0
) или отключен ( 1
).
module_min_ff_event
module_min_ff_event <value>
Значение (value) защиты "flip flop« от ложных срабатываний. Количество изменений статуса, указанное в этом значении, будет необходимо для того, чтобы модуль визуально изменил свой статус в веб-консоли.
module_each_ff
Версия 6.0 SP4 или выше.
module_each_ff <0|1>
Если включено ( 1
), вместо module_min_ff_event
будут использоваться пороги "flip flop" для каждого состояния:
module_min_ff_event_normal
.module_min_ff_event_warning
.module_min_ff_event_critical
.
module_min_ff_event_normal
Версия 6.0 SP4 или выше.
module_min_ff_event_normal <value>
Значение (value) защиты "flip flop"для перехода в состояние normal
.
module_min_ff_event_warning
Версия 6.0 SP4 или выше.
module_min_ff_event_warning <value>
Значение (value) защиты "flip flop" для перехода в состояние warning
.
module_min_ff_event_critical
Версия 6.0 SP4 или выше.
module_min_ff_event_critical <value>
Значение (value) защиты "flip flop" для перехода в состояние critical
.
module_ff_timeout
Версия 6.0 SP4 или выше.
module_ff_timeout <seconds>
Сбрасывает счетчик порога "flip flop" через заданное количество секунд. Это означает, что количество изменений состояния, определенное в module_min_ff_event
, должно произойти за интервал module_ff_timeout
секунд до того, как визуальное состояние в консоли изменится.
module_ff_type
Версия NG 734 или выше.
module_ff_type <value>
Это расширенный вариант "Flip Flop" для контроля состояния модуля. С помощью Keep counters
установите значения счетчика для перехода из одного состояния в другое в зависимости не от значения, а от состояния модуля с полученным значением.
Указывает активирован ( 1
) или деактивирован ( 0
) Keep counters
.
module_description
module_description <text>
Общедоступный текст с информацией о модуле.
module_interval
module_interval <factor>
Индивидуальный модульный интервал. Это значение является множителем интервала агента, а не временем перерыва. Например, если агент имеет интервал 300 секунд (5 минут) и требует, чтобы модуль обрабатывался только каждые 15 минут, вы должны добавить эту строку:
module_interval 3
Таким образом, модуль будет обрабатываться каждые 300 x 3 секунд = 900 секунд (15 минут).
Чтобы module_interval
работал в Агентах Брокерах, он должен иметь тот же интервал, что и Агент, из которого он исходит. Несоблюдение этого требования может привести к неисправности.
module_timeout
module_timeout <secs>
В секундах - максимальное время, отведенное на выполнение модуля. Если это время превышено, а работа с модулем не была завершена, она будет прервана.
module_postprocess
module_postprocess <factor>
Числовое значение, на которое будут умножены данные, возвращаемые модулем. Удобно использовать для преобразования единиц измерения.
module_save
module_save <var name>
Сохраняет значение, возвращенное модулем, в переменной с именем, указанным в этом параметре ( <var name>
). Это значение может быть использовано позже в других модулях.
Пример в Unix/Linux:
module_begin module_name echo_1 module_type generic_data module_exec echo 41121 module_save ECHO_1 module_end
Сохранит значение «41121» в переменной «ECHO_1».
module_begin module_name echo_2 module_type generic_data module_exec echo $ECHO_1 module_end
Этот второй модуль покажет содержимое переменной «$ECHO_1», равное «41121».
В Программных Агентах Windows® синтаксис модуля должен быть сформирован путем заключения переменной в символы процентов %var%
вместо $var$
. Согласно приведенному примеру:
module_begin module_name echo_2 module_type generic_data module_exec echo %ECHO_1% module_end
module_crontab
Начиная с версии 3.2 вы можете запланировать запуск выполнения модулей на определенные даты.
Для этого нужно определить module_crontab используя формат, аналогичный файлу crontab.
module_crontab <минута> <час> <день> <месяц> <день недели>
Это выглядит следующим образом:
- Минута 0-59.
- Час 0-23 .
- День месяца 1-31 .
- Месяц 1-12 .
- День недели 0-6 (за 0 принимается Воскресенье) .
Также можно указать интервалы, используя символ - в качестве разделителя.
Например, чтобы модуль запускался каждый понедельник с 12:00 до 15:00, можно использовать следующую конфигурацию:
module_begin module_name crontab_test module_type generic_data module_exec script.sh module_crontab * 12-15 * * 1 module_end
Чтобы выполнять команду каждый час, в заданный час и 10 минут:
module_begin module_name crontab_test3 module_type generic_data module_exec script.sh module_crontab 10 * * * * module_end
module_condition
module_condition <операция> <команда>
Позволяет определить действия, которые будут выполняться агентом в зависимости от значения, возвращаемого модулем. Доступно только для числовых значений. Синтаксис выглядит следующим образом:
- > [значение]: Выполняет команду, если значение модуля больше заданного значения.
- < [значение]: Выполняет команду, если значение модуля меньше заданного значения.
- = [значение]: Выполняет команду, когда значение модуля равно заданному значению.
- != [значение]: Выполняет команду, если значение модуля отличается от заданного значения.
- =~ [регулярное|выражение]: Выполняет команду, если значение модуля соответствует заданному регулярному выражению.
- ( значение, значение): Выполняет команду, когда значение модуля находится между заданными значениями.
Для одного и того же модуля можно задать несколько условий. В следующем случае выполняется script_1.sh
, если значение, возвращаемое модулем, находится между 1 и 3, и выполняется script_2.sh
, если значение модуля больше 5.5, поэтому в данном случае, будучи значением, возвращаемым в строке module_exec
2.5, выполняется только первое условие script_1.sh
>
module_begin module_name condition_test module_type generic_data module_exec echo 2.5 module_condition (1, 3) script_1.sh module_condition> 5.5 script_2.sh module_end
Примеры, применяемые к возможным реальным случаям:
module_begin module_name MyProcess module_type generic_data module_exec tasklist | grep MyProcess | wc -l module_condition> 2 taskkill /IM MyProcess* /F module_end
module_begin module_name Service_Spooler module_type generic_proc module_service Spooler module_condition = 0 net start Spooler module_end
- Примечание: В операционной системе Windows® рекомендуется добавлять префикс cmd.exe /c к команде, чтобы убедиться, что она будет выполнена правильно. Например:
module_begin module_name condition_test module_type generic_data module_exec echo 5 module_condition (2, 8) cmd.exe /c script.bat module_end
module_precondition
module_precondition <операция> <команда>
Позволяет определить, запускать или не запускать модуль в зависимости от результата данного запуска. Синтаксис:
- > [значение]: Выполняет команду, если значение модуля больше заданного значения.
- < [значение]: Выполняет команду, если значение модуля меньше заданного значения.
- = [значение]: Выполняет команду, когда значение модуля равно заданному значению.
- != [значение]: Выполняет команду, если значение модуля отличается от заданного значения.
- =~ [регулярное|выражение]: Выполняет команду, если значение модуля соответствует заданному регулярному выражению.
- ( значение, значение): Выполняет команду, когда значение модуля находится между заданными значениями.
В следующем примере модуль выполняется (monitoring_variable.bat), только если результат выполнения, указанный в предусловии, находится между 2 и 8. В данном случае результат выполнения, указанный в строке module_precondition
равен 5, значение между 2 и 8, поэтому правильно выполняется monitoring_variable.bat:
module_begin module_name Precondition_test1 module_type generic_data module_precondition (2, 8) echo 5 module_exec monitoring_variable.bat module_end
Как и в случае с постусловиями, их может быть несколько, и модуль будет выполнен только в том случае, если все они выполнены:
module_begin module_name Precondition_test2 module_type generic_data module_precondition (2, 8) echo 5 module_precondition < 3 echo 5 module_exec monitoring_variable.bat module_end
- ПРИМЕЧАНИЕ: В операционной системе Windows рекомендуется добавлять префикс cmd.exe /c к команде, чтобы обеспечить ее правильный запуск. Например:
module_begin module_name Precondition_test3 module_type generic_data module_precondition (2, 8) cmd.exe /c script.bat module_exec monitoring_variable.bat module_end
module_unit
Версия 5.x или выше.
module_unit <string>
Единицы измерения, выраженные в текстовой строке (string), для отображения рядом со значением, полученным модулем. Пример:
module_unit %
module_group
Версия 5.x или выше.
module_group <value>
Позволяет указать группу Модулей (value), к которой будет назначен Модуль. Пример:
module_group Networking
module_custom_id
Версия 5.x или выше.
module_custom_id <value>
Эта директива является пользовательским идентификатором для модуля. Пример:
module_custom_id host101
module_str_warning
Версия 5.x или выше.
module_str_warning <value>
Позволяет указать регулярное выражение для определения порога предупреждения warning
в буквенно-цифровых модулях (string). Пример:
module_str_warning .*NOTICE.*
module_str_critical
Версия 5.x или выше.
module_str_critical <value>
Позволяет указать регулярное выражение для определения критического порога critical
в модулях буквенно-цифрового типа (string). Пример:
module_str_critical .*ERROR.*
module_warning_instructions
Версия 5.x или выше.
module_warning_instructions <value>
На информативном уровне он указывает инструкции, которые должны быть отображены в событии, генерируемом модулем, когда он переходит в статус предупреждения warning
.
Пример отображения сообщения, указывающего на повышение приоритета проблемы:
module_warning_instructions Raise advocacy priority
module_critical_instructions
Версия 5.x или выше.
module_critical_instructions <value>
На информативном уровне он указывает инструкции, которые должны быть отображены в событии, генерируемом модулем, когда он переходит в критическое critical
состояние.
Пример сообщения для оповещения системного отдела:
module_critical_instructions Call the systems department
module_unknown_instructions
Версия 5.x или выше.
module_unknown_instructions <value>
В информационных целях указывает инструкции, которые будут отображаться в событии, генерируемом модулем, когда он переходит в неизвестный статус unknown
.
Пример сообщения для открытия инцидента:
module_unknown_instructions Open incident
module_tags
Версия 5.x или выше.
module_tags <value>
Теги или tags, которые вы хотите присвоить модулю, разделенные запятыми.
Пример:
module_tags tag1,tag2,tag3
module_warning_inverse
Версия 5.x или выше.
module_warning_inverse <value>
Позволяет включить ( 1
) обратный интервал для порога предупреждения warning
.
Пример:
module_warning_inverse 1
module_critical_inverse
Версия 5.x или выше.
module_critical_inverse <value>
Позволяет включить ( 1
) обратный интервал для активации критического порога. critical
.
Пример:
module_critical_inverse 1
module_native_encoding
Только на Win32.
module_native_encoding <value>
Этот конфигурационный токен влияет только на модули, которые выполняются через командную директиву, т.е. присутствует module_exec
.
MS Windows® использует три кодировки для своих процессов: кодировка командной строки (OEM), системная кодировка (ANSI) и UTF-16. Эти кодировки согласуются по основным символам, но различаются по менее распространенным, таким как ударения. С помощью этого токена агент Pandora FMS преобразует вывод команды в кодировку, указанную в encoding конфигурационного файла.
module_native_encoding
имеет четыре допустимых значения:
module_native_encoding OEM
: Для кодирования командной строки.module_native_encoding ANSI
: Для системного кодирования.module_native_encoding UTFLE
: Для UTF-16 little-endian.module_native_encoding UTFBE
: Для UTF-16 big-endian.
Если module_native_encoding
не появляется, повторное кодирование выполняться не будет.
module_quiet
Версия 5.x или выше.
module_quiet <value>
Если включено ( 1
), модуль будет работать в тихом режиме: он не будет генерировать события или запускать оповещения, а также хранить исторические данные.
Пример:
module_quiet 1
module_ff_interval
Версия 5.x или выше.
module_ff_interval <value>
Позволяет указать порог "Flip Flop" в Модуле, например:
module_ff_interval 2
module_macro
module_macro<macro> <value>
Применимо только к локальным компонентам из Консоли. Он не используется в конфигурационном файле.
module_alert_template
module_alert_template <template_name>
Данный макрос присваивает созданному Модулю шаблон предупреждения, соответствующий названию, введенному в качестве параметра (см. Шаблоны предупреждения).
Пример:
<module> <name><![CDATA[CPU usage]]></name> <type>generic_data</type> <module_interval>1</module_interval> <min_critical>91</min_critical> <max_critical>100</max_critical> <min_warning>70</min_warning> <max_warning>90</max_warning> <alert_template><![CDATA[Critical condition]]></alert_template> <data><![CDATA[92]]></data> </module>
module_end
Этикетка конца модуля. Обязательно.
Конкретные директивы по получению информации
Ниже описаны конкретные директивы, которые могут быть указаны в каждом модуле для получения информации. В каждом модуле может использоваться только один из этих типов.
module_exec
module_exec <команда>
Общая строка выполнения команд. Для получения информации только в одной строке необходимо указать желаемое исполнение.
В GNU/Linux команда выполняется командным интерпретатором по умолчанию. Интерпретатор по умолчанию определяется символической ссылкой в /bin/sh
. Обычно ссылка указывает на bash, но в системах типа Ubuntu это не так (в этом случае она указывает на dash). Поэтому может случиться так, что команда проверяется в терминале, а затем выдает ошибку, когда Software Agent выполняет ее. Решением, которое сработает в большинстве случаев, является принудительное выполнение команды в bash следующим образом:
module_exec bash -c "<command>"
Если при выполнении команды возвращается код ошибки (return code), отличный от 0, то интерпретируется, что команда не работает и полученные данные отбрасываются.
Для агента Windows существует больше директив для получения данных, они описаны ниже.
module_service
module_service <service>
Проверяет, запущена ли на устройстве определенная служба.
В MS Windows
Если имя службы содержит пробелы, необходимо использовать кавычки » «
.
module_begin module_name Service_Dhcp module_type generic_proc module_service Dhcp module_description Service DHCP Client module_end
Служба идентифицируется коротким именем службы ( <код>Service name<код>), таким же, каким оно появляется в менеджере служб Windows.
Асинхронный режим
Pandora FMS, в общем, выполняет ряд тестов (каждый из которых определен в модуле) каждые X секунд (по умолчанию 300 секунд = 5 минут), поэтому если сервис не отвечает сразу после выполнения Pandora FMS, потребуется еще как минимум 300 секунд, чтобы узнать, что он не функционирует. Подобные синхронные модули заставляют Pandora FMS постоянно уведомлять о падении данного сервиса. Мы называем такой режим работы асинхронным. Для этого просто добавьте директиву.
module_async yes
Эта функциональность не поддерживается в Агентах Broker.
В версиях Windows Home Edition® эта асинхронная функция не поддерживается, и только в этих версиях Pandora FMS Agent выполняет периодический запрос, чтобы узнать, запущена служба или нет. Это может быть довольно ресурсоемким, поэтому рекомендуется использовать синхронную версию, если вы следите за большим количеством сервисов.
Сторожевой таймер сервисов
Для сервисов существует режим сторожевого таймера watchdog, чтобы агент мог запустить их снова, если они остановятся. В этом случае перезапущенная служба не требует никакого параметра, поскольку Windows® уже знает, как это сделать. В этом случае конфигурация проще, а следующее может быть ее примером:
module_begin module_name ServiceSched module_type generic_proc module_service Schedule module_description Service Task scheduler module_async yes module_watchdog yes module_end
В Unix
В Unix работает так же, как и в MS Windows®, только для Unix процесс и сервис - это одно и то же понятие, например, чтобы узнать, активен ли в системе процесс bash, просто выполните:
module_begin module_name Service_bash module_type generic_proc module_service /bin/bash module_description Process bash running module_end
Режим watchdog и асинхронное обнаружение невозможны в Unix Agent.
module_proc
module_proc <process>
Проверяет, работает ли заданное имя процесса на этом устройстве.
В MS Windows
Кавычки для имени процесса не нужны. Обратите внимание, что имя процесса должно иметь расширение .exe
. Модуль вернет количество процессов, выполняющихся с этим именем.
Это будет примером мониторинга процесса cmd.exe
>
module_begin module_name CMDProcess module_type generic_proc module_proc cmd.exe module_description Process Command line module_end
Асинхронный Режим
По аналогии с сервисами, мониторинг процессов в некоторых случаях может иметь решающее значение. Программный агент для Windows® теперь поддерживает асинхронные проверки для параметра module_proc
. В этом случае агент уведомляет немедленно, когда процесс меняет состояние, не дожидаясь истечения интервала выполнения агента. Таким образом, вы сможете узнать о появлении критических процессов практически сразу после их возникновения. Пример асинхронного мониторинга процесса:
module_begin module_name Notepad module_type generic_proc module_proc notepad.exe module_description Notepad module_async yes module_end
Разница заключается в конфигурации token. module_async yes
. Данная функция не поддерживается на Агентах Broker.
Сторожевой таймер процессов
Сторожевой таймер (Watchdog) - это система, которая позволяет действовать немедленно при сбое процесса, как правило, поднимая процесс, в котором произошел сбой. Программный Агент Pandora FMS для Windows®, может действовать как Watchdog в случае сбоя процесса.
Поскольку для запуска процесса могут потребоваться некоторые параметры, для этого типа модуля существуют некоторые дополнительные параметры конфигурации.
Важно отметить, что режим Watchdog работает только тогда, когда тип модуля асинхронный.
Пример конфигурации module_proc
со сторожевым таймером:
module_begin module_name Notepad module_type generic_proc module_proc notepad.exe module_description Notepad module_async yes module_watchdog yes module_start_command c:\windows\notepad.exe module_startdelay 3000 module_retrydelay 2000 module_retries 5 module_end
Это определение дополнительных параметров для module_proc
с Watchdog:
module_retries
Количество последовательных попыток, при которых модуль будет пытаться запустить процесс перед отключением Watchdog. При достижении лимита механизм Watchdog для данного модуля будет отключен и больше никогда не будет пытаться запустить процесс до тех пор, пока Агент не будет перезапущен. Значение по умолчанию: неограничен.
module_startdelay
Количество миллисекунд, в течение которых модуль ждет перед первым запуском процесса.
module_retrydelay
Количество миллисекунд, в течение которых модуль ожидает перед попыткой запуска процесса при каждой повторной попытке.
module_user_session
Контролирует, в какой сессии вы хотите, чтобы процесс был запущен. Если установлено значение no
, процесс будет запущен в сеансе служб и, следовательно, останется в фоновом режиме (опция по умолчанию). В противном случае, если установлено значение yes
, процесс будет запущен в сессии пользователя и будет виден с рабочего стола ПК.
Для версий до Windows Vista® токен module_user_session
можно настроить общим способом, включив в свойствах службы Pandora FMS флажок «Интерактивный доступ к рабочему столу» (Allow service to interact with desktop):
Pandora FMS, как служба, выполняется под учетной записью SYSTEM
, а выполняемый процесс будет делать это под этим пользователем и с этой средой, поэтому если вам нужно выполнить какой-то конкретный процесс, который нужно использовать с определенным пользователем, вы должны заключить предыдущие процессы в скрипт (.bat
или аналогичные) для инициализации среды, переменных среды и т.д., и запустить этот скрипт в качестве действия Watchdog.
В Unix
В Unix это работает точно так же, как и в module_service. Он также не поддерживает асинхронный режим или watchdog.
module_cpuproc
Только для Unix
module_cpuproc <process>
Возвращает специфическое использование процессора в данном процессе. Пример:
module_begin module_name myserver_cpu module_type generic_data module_cpuproc myserver module_description Process Command line module_end
module_memproc
module_memproc <process>
Только Unix. Возвращает конкретное потребление памяти процессом.
module_begin module_name myserver_mem module_type generic_data module_memproc myserver module_description Process Command line module_end
module_freedisk
module_freedisk <disk_letter:>|<vol>
Проверьте свободное пространство на диске.
В Windows
Вы должны поместить :
после буквы диска ( <disk_letter:>
).
module_begin module_name freedisk module_type generic_data module_freedisk C: module_end
В Unix
Проверяемый объем, например /var
.
module_begin module_name disk_var module_type generic_data module_freedisk /var module_end
module_freepercentdisk
module_freepercentdisk <disk_letter:>|<vol>
Этот модуль возвращает процент свободного диска на логическом диске.
В Windows
Вы должны поместить :
после буквы диска ( <disk_letter:>
).
module_begin module_name freepercentdisk module_type generic_data module_freepercentdisk C: module_end
В Unix
Проверяемый объем, например /var
.
module_begin module_name disk_var module_type generic_data module_freepercentdisk /var module_end
module_occupiedpercentdisk
module_occupiedpercentdisk <vol>
Только для Unix. Этот модуль возвращает занятый процент диска, например:
module_begin module_name disk_var module_type generic_data module_occupiedpercentdisk /var module_end
module_cpuusage
module_cpuusage [<cpu id>|all]
Возвращает использование процессора в номере процессора. Если имеется только один процессор, не устанавливайте никакого значения или используйте значение all
. Для Windows® и Unix.
Также можно получить среднее использование всех процессоров в многопроцессорной системе:
module_begin module_name CPU_use module_type generic_data module_cpuusage all module_description CPU average use module_end
Для проверки использования CPU #1:
module_begin module_name CPU_1 module_type generic_data module_cpuusage 1 module_description CPU #1 average use module_end
module_freememory
Он работает как в Unix, так и в Windows®. Возвращает свободную память во всей системе.
module_begin module_name FreeMemory module_type generic_data module_freememory module_description Non-used memory on system module_end
module_freepercentmemory
Он работает как в Unix, так и в Windows®. Этот модуль возвращает процент свободной памяти в системе:
module_begin module_name freepercentmemory module_type generic_data module_freepercentmemory module_end
module_tcpcheck
Только MS Windows®. Этот модуль инициирует соединение с указанным IP-адресом и портом. Возвращает 1
в случае успеха и 0
в противном случае. Вы должны указать время истечения срока действия с помощью module_timeout
. Пример:
module_begin module_name tcpcheck module_type generic_proc module_tcpcheck www.pandorafms.com module_port 80 module_timeout 5 module_end
module_regexp
Только для MS Windows®. Этот модуль отслеживает файл журнала (log) в поисках совпадений, используя регулярные выражения, отбрасывая существующие строки при запуске мониторинга. Данные, возвращаемые модулем, зависят от типа модуля:
- generic_data_string, async_string: Возвращает все строки, соответствующие регулярному выражению.
- generic_data: Возвращает количество строк, соответствующих регулярному выражению.
- generic_proc: Возвращает 1, если есть совпадение, 0 в противном случае.
- module_noseekeof: по умолчанию неактивно
0
. Если token конфигурации активен1
, при каждом запуске, независимо от изменений в файле log, модуль перезапускает свою проверку без поиска окончания файла (flagEOF
). Таким образом, вы всегда будете получать в XML все те строки, которые соответствуют шаблону поиска. Пример:
module_begin module_name regexp module_type generic_data_string module_regexp %SystemRoot%\my.log module_pattern ^\[error].* module_noseekeof 1 module_end
module_wmiquery
Только Windows®. Модули WMI позволяют локально выполнить любой запрос или em>query WMI без использования внешнего инструмента. Он настраивается с помощью двух параметров:
- module_wmiquery: WQL query применено. В результате вы можете получить несколько строк, которые будут вставлены как несколько данных.
- module_wmicolumn: Имя столбца, который будет использоваться в качестве источника данных.
Например, для списка установленных служб:
module_begin module_name Services module_type generic_data_string module_wmiquery Select Name from Win32_Service module_wmicolumn Name module_end
Чтобы получить текущую загрузку процессора:
module_begin module_name CPU_speed module_type generic_data module_wmiquery SELECT LoadPercentage FROM Win32_Processor module_wmicolumn LoadPercentage module_end
module_perfcounter
Только для MS Windows®.
Получает данные из счетчика производительности (performance counter Сведения о счетчиках производительности) через интерфейс PDH. Библиотека pdh.dll
должна быть установлена в системе. PDH.DLL является библиотекой Windows, если она недоступна, вы должны установить инструмент анализа производительности Windows®, который обычно включен по умолчанию.
module_begin module_name perfcounter module_type generic_data module_perfcounter \Memory\Pages/sec module_end
Устройство проверки производительности Windows® является очень мощным инструментом и имеет сотни параметров, которые могут быть использованы для мониторинга. Кроме того, каждый производитель устанавливает свои собственные счетчики.
Вы можете наблюдать за счетчиками производительности с помощью инструмента Производительность (Performance):
Новые счетчики производительности можно добавить с помощью инструмента системы. Его конфигурация имеет иерархическую структуру с элементами и подэлементами. В данном случае Процессор, % процессорного времени. и _Всего:
Конфигурация модуля для этой конкретной проверки следующая:
module_begin module_name Processor_Time module_type generic_data_inc module_perfcounter \Процессор(_Всего)\% процессорного времени module_end
По умолчанию отображается необработанное значение счетчика, для получения приготовленного значения можно добавить параметр module_cooked 1:
module_begin module_name Disk_E/S_Seg module_type generic_data module_cooked 1 module_perfcounter \Физический диск (_Всего)\E/S разделить на сек. module_end
Большая часть возвращаемых им данных - это счетчики, поэтому в качестве типа данных следует использовать generic_data_inc. Он также может возвращать значения в очень больших масштабах данных (несколько миллионов), так что вы можете уменьшить эти значения, используя постобработку модуля, со значениями типа 0.000001 или аналогичными.
module_inventory
В настоящее время эта функциональность заменена на инвентаризацию от plugins Агента как в системах Windows®, так и на Linux/Unix®.
module_logevent
Только для MS Windows®. Позволяет получить информацию из журнала событий Windows® на основе указанных шаблонов, позволяя фильтровать информацию по источнику и типу события.
Общий формат этого модуля следующий:
module_begin module_name MyEvent module_type async_string module_logevent module_source <logName> module_eventtype <event_type/level> module_eventcode <event_id> module_application <source> module_pattern <text substring to match> module_description module_end
Чтобы избежать показа повторяющейся информации, учитываются только события, произошедшие с момента последнего выполнения Агента.
module_logevent
принимает следующие параметры, все из которых требуют правильного ввода заглавных и строчных букв (//case-sensitive)//:
- module_source: Происхождение события (System, Application, Security). Обязательное поле.
- module_eventtype: Тип события (error, information…). Необязательное поле.
- module_pattern: Образец для поиска (подстрока). Необязательное поле.
- module_eventcode: Идентификационный номер события. Необязательное поле.
- module_application: Приложение, которое инициирует событие, зарегистрированное в журнале. Нужно понимать отличие от
module_source
, который указывает имя источника или от log файла, в котором происходит поиск событий.
Например, чтобы отобразить все системные события типа error:
module_begin module_name log_events module_type generic_data_string module_description System errors module_logevent module_source System module_eventtype error module_end
Чтобы отобразить все события, содержащие слово PandoraAgent
>
module_begin module_name log_events_pandora module_type async_string module_description PandoraAgent related events module_logevent module_source System module_pattern PandoraAgent module_end
Пример фильтрации следующего события:
module_begin module_name MyEvent module_type async_string module_logevent module_source Application module_eventtype Information module_eventcode 6000 module_application Winlogon module_pattern unavailable to handle module_description module_end
module_logchannel
Версия NG 715 или выше, только для MS Windows®.
Тип модуля, позволяющего получать информацию из каналов logs Windows®. Хотя module_logevent
имеет доступ только к журналам Windows Logs®, этот тип модуля позволяет извлекать данные из других файлов журналов, которые настроены как каналы. Таким образом, можно получить журналы, включенные в Реестры приложений и служб.
Общий формат этого модуля следующий:
module_begin module_name MyEvent module_type async_string module_logchannel module_source <logChannel> module_eventtype <event_type/level> module_eventcode <event_id> module_application <source> module_pattern <text substring to match> module_description <description> module_end
Чтобы избежать повторного отображения информации, учитываются только те события, которые произошли с момента запуска Агента.
module_logchannel
принимает следующие параметры, все из которых требуют правильного ввода заглавных и строчных букв (case-sensitive):
- module_source: Канал события С помощью команды
wevtutil.exe enum-logs
вы получите список всех локальных каналов logs устройства. Обязательное поле. - module_eventtype: Тип события (
critical
,error
,warning
,info
overbose
). Необязательное поле. - module_pattern: Образец для поиска (подстрока). Необязательное поле.
- module_eventcode: Идентификационный номер события. Необязательное поле.
- module_application: Применение происхождения события. Нужно понимать отличие от
module_source
, который указывает имя источника или от log файла, в котором происходит поиск событий.
Например, для отображения всех событий канала используется следующий модуль Microsoft-Windows-TaskScheduler/Operational, типа information, с кодом 201 и текст журнала должен содержать текст code 0:
module_begin module_name New logs module_type async_string module_logchannel module_description Successfully completed tasks module_source Microsoft-Windows-TaskScheduler/Operational module_eventtype information module_eventcode 201 module_pattern code 0 module_end
При такой конфигурации модуля агент Pandora FMS может принимать следующий журнал log:
Чтобы получить имя канала события, нужно щелкнуть на нем правой кнопкой мыши, выбрать Свойства и скопировать параметр Full name, который необходим для события. module_source
.
module_plugin
Для выполнения плагинов Агента. Это особый случай, поскольку он не требует никаких других тегов типа module_begin
или module_end
и не требует указывать тип модуля.
Синтаксис с соответствующими параметрами:
module_plugin plugin_filename parameter_1 parameter_2 (...) parameter_X </file> Однако его также можно использовать между обычными тегами модуля для добавления дополнительных опций, таких как условия или интервал: <code>module_begin module_plugin plugin_filename parameter_1 parameter_2 (...) parameter_X module_interval 2 module_condition (0, 1) script.sh module_end </file> Для каждого //плагина// используются свои параметры, поэтому необходимо обратиться к уточняющей документации. Для описания работы одного из //плагинов//, поставляемых по умолчанию с Агентом, в качестве примера можно привести //плагин// ''grep_log'' для поиска совпадений в файле: <code>module_plugin grep_log /var/log/syslog Syslog ssh
В этом примере имя плагина, «grep_log» и он будет искать в файле »/var/log/syslog« регулярное выражение «ssh» и сохранит его в модуле под названием «Syslog».
Пример вызова плагина в Агенте Windows:
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df_percent.vbs"
Вы можете узнать больше из обучающего видеоролика «Мониторинг с помощью плагина агента».
module_ping
Только для Windows®.
module_ping <host>
Этот модуль выполняет ping указанного хоста или host и возвращает 1
если находится в сети.
Параметры конфигурации:
- module_ping_count x: Количество пакетов ECHO_REQUEST для отправки (1 по умолчанию).
- module_ping_timeout x: Таймаут в миллисекундах для ожидания каждого ответа (по умолчанию 1000).
- module_advanced_options: Расширенные опции для
ping.exe
.
Пример:
module_begin module_name Ping module_type generic_proc module_ping 192.168.1.1 module_ping_count 2 module_ping_timeout 500 module_end
module_snmpget
Только для MS Windows®.
module_snmpget
Этот модуль выполняет запрос SNMP get
и возвращает запрошенное значение. Параметры конфигурации должны быть указаны в последующих строках таким образом:
- module_snmpversion [1_2c_3]: Версия SNMP (1 по умолчанию).
- module_snmp_community <community>: Сообщество SNMP (public по умолчанию).
- module_snmp_agent <host>: Целевой Агент SNMP.
- module_snmp_oid <oid>: Целевой OID.
- module_advanced_options: Расширенные опции для
snmpget.exe
.
Пример:
module_begin module_name SNMP get module_type generic_data module_snmpget module_snmpversion 1 module_snmp_community public module_snmp_agent 192.168.1.1 module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148 module_end
module_wait_timeout
Только для MS Windows®.
module_wait_timeout X
Время истечения (таймаут), используемое при проверке выхода модулей module_exec и module_plugin. Значение по умолчанию 500 миллисекунд. Измените значение на 5, если выполнение модуля, генерирующего большое количество выходных данных, происходит медленно. Во всех остальных случаях рекомендуется не использовать.
Автоматическая настройка Агентов
Введение
Версия NG 725 или выше.
В процессе автоконфигурации агента вы можете задать ряд правил для автоматической настройки, и это работает следующим образом:
- Подготовьте автоматические конфигурации в Консоли Pandora FMS или в Метаконсоли Pandora FMS.
- Установите Агентов, сообщая об этом в вашу Pandora FMS (если у вас есть Метаконсоль с настроенной системой автоматической инициализации, установите в качестве сервера саму Метаконсоль).
- Pandora FMS Server впервые получит XML (
.data
) с данными Агента. - Правила будут оцениваться для определения автоматической конфигурации, которая будет применяться./li>
- Агент примет новую конфигурацию и сообщит об этом в следующем цикле с обновленной конфигурацией.
Создание/редактирование автоконфигурации
Консоль
Доступ к управлению автоконфигурациями через Configuration → Manage agent autoconfiguration:
Метаконсоль
Перейдите в раздел Advanced → Agent management → значок конфигурации автоматического агента:
Получив доступ к странице администрирования, вы можете создавать новые автоматические конфигурации, нажав кнопку «Создать автоматической конфигурации» (Add new configuration definition). Вы должны выбрать имя и описание для вашей автоматической конфигурации.
После создания новой автоматической конфигурации вы можете показать формы конфигурации, нажав на нужный вам раздел:
Правила
Чтобы определить Агенты, к которым будет применяться автоматическая конфигурация, вы можете сначала добавить правила для их идентификации.
Откройте раздел правил в автоматической конфигурации и выберите «Добавить новое правило» (Add new rule). Вы сможете выбрать в селекторе правил ряд опций, чтобы определить агентов, которые будут настроены.
Server name
Совпадение в имени сервера.
Group name
Совпадение в имени группы.
OS
Сопоставление имен операционных систем с помощью регулярных выражений.
Custom field
Сопоставление по ключу/значению на основе пользовательского поля, о котором сообщает агент. Укажите имя пользовательского поля и значение, которое оно должно иметь.
IP range
Сопоставление по диапазону IP-адресов (сеть), используйте примечание IP/маска, например:
192.168.1.0/24
Script output (> 0)
Предназначен для запуска скрипта, результат выполнения которого оценивается как действительный, когда стандартный вывод больше 0.
Вызов скрипта правил.
Поддерживает следующие макросы в поле 'аргументы' (вы можете выбирать между операторами AND
и OR
для изменения логики правил):
- _agent_ : Заменяется именем агента.
- _agentalias_ : Будет заменено псевдонимом (алиас) агента.
- _address_ : Будет заменено основным IP-адресом, сообщенным Агентом.
- _agentgroup_ : Будет заменено именем группы, о которой сообщил агент.
- _agentos_ : Будет заменено операционной системой агента.
Если вы не добавите никаких правил, автоматическая конфигурация не будет применена;. Если вам нужна единая конфигурация для всех агентов, вы можете использовать следующее регулярное выражение для соответствия любому из них alias: .*
Конфигурации
В этом разделе вы можете настроить:
Группа Агента
Вы можете оставить ее неизменной или принудительно определить ее.
Вторичные группы
Группы, выбранные здесь, будут добавлены в качестве подгрупп к Агенту.
Политики
Вы можете выбрать политики, которые будут применяться автоматически, когда агент достигнет сервера.
Блок конфигурации
Добавляет дополнительную необработанную конфигурацию в файл конфигурации агента.
Примечание: Если вы попытаетесь получить доступ к автоматическому администрированию конфигурации с узла, который принадлежит Метаконсоли, с активным централизованным администрированием, его показ будет доступен только для чтения:
Дополнительные действия
В этом разделе вы можете связать другие действия с автоконфигурацией, например:
- Запустить пользовательское событие (Launch custom event).
- Выполнение действия предупреждения(Launch alert action).
- Выполнить сценарий или script (Launch script).
Система поддерживает следующие макросы:
_agent_
Будет заменено именем Агента.
_agentalias_
Будет заменено псевдонимом агента.
_address_
Будет заменено на основной IP-адрес, сообщенный агентом.
_agentgroup_
Будет заменено именем группы, о которой сообщил агент.
_agentos_
Будет заменено операционной системой Агента.
_agentid_
Заменяется идентификатором агента.
Агенты Unix/Linux
Конфигурация Агентов Unix Pandora FMS
Основными путями и каталогами, которые необходимо учитывать, являются:
/usr/share/pandora_agent
: Где установлен агент Pandora FMS. В системах, где это не разрешено политикой, рекомендуется создать ссылку на этот путь из фактического пути установки, например/opt/pandora
→/usr/share/pandora_agent
./etc/pandora/pandora_agent.conf
: Основной конфигурационный файл агента. Здесь настраиваются модули локального исполнения и плагины Агента;./usr/local/bin/pandora_agent
> Исполняемый двоичный файл агента. Как правило, есть ссылка на/usr/bin/pandora_agent
./usr/local/bin/tentacle_client
> Исполняемый двоичный файл Tentacle, для передачи файлов на сервер. Как правило, есть ссылка на/usr/bin/tentacle_client
./etc/init.d/pandora_agent_daemon
> Скрипт запуска/остановки/перезапуска. В системах AIX демоном является/etc/rc.pandora_agent_daemon
./var/log/pandora/pandora_agent.log
> Текстовый файл, в котором сохраняется активность агента Pandora FMS, когда агент выполняется в режиме отладки./etc/pandora/plugins
> Каталог, содержащий плагины Агента. Он связан с каталогом ссылкой/usr/share/pandora_agent/plugins
./etc/pandora/collections
> Каталог, содержащий коллекции, развернутые в Агенте. Связан с каталогом ссылкой/usr/share/pandora_agent/collections
.
Первоначальное выполнение агента Unix
Для запуска агента достаточно запустить:
/etc/init.d/pandora_agent_daemon start
Чтобы остановить Агента, выполните:
/etc/init.d/pandora_agent_daemon stop
Этот скрипт запуска может запустить или остановить Агента Pandora FMS, который при запуске будет по умолчанию запущен в системе как демон.
Изменение способа получения системной информации агентами Unix
Есть несколько модулей, которые получают информацию предопределенным образом без необходимости указывать команду с module_exec
. К этим модулям относятся:
- module_procmem
- module_freedisk
- module_freepercentdisk
- module_cpuproc
- module_proc
- module_procmem
- module_cpuusage
- module_freememory
- module_freepercentmemory
Можно изменить работу этих модулей по умолчанию, отредактировав непосредственно исполняемый файл агента (по умолчанию /usr/bin/pandora_agent
). Агент Pandora FMS обычно находится по адресу /usr/bin/pandora_agent
.
Найдите строку Commands to retrieve
, которая содержит код, содержащий внутренние команды. Вы можете внести любые необходимые изменения, чтобы адаптировать их к системе.
# Commands to retrieve total memory information in kB use constant TOTALMEMORY_CMDS => { linux => 'cat /proc/meminfo | grep MemTotal: | awk \'{ print $2 }\, solaris => 'MEM=`prtconf | grep Memory | awk \'{print $3}\'` bash -c \'echo $(( 1024 * $MEM ))\, hpux => 'swapinfo -t | grep memory | awk \'{print $2}\ }; # Commands to retrieve partition information in kB use constant PART_CMDS => { # total, available, mount point linux => 'df -P | awk \'NR> 1 {print $2, $4, $6}\, solaris => 'df -k | awk \'NR> 1 {print $2, $4, $6}\, hpux => 'df -P | awk \'NR> 1 {print $2, $4, $6}\, aix => 'df -kP | awk \'NR> 1 {print $2, $4, $6}\ };
Чтобы изменить любую из предопределенных команд, просто отредактируйте код для изменения команды, но будьте внимательны к следующим аспектам:
- Убедитесь, что блоки
{ };
всегда заканчиваются точкой с запятой. - Убедитесь, что команды заключены в одинарные кавычки:
' '
. - Внутри кавычек может понадобиться дополнительная кавычка с
` `
(см. пример выше). - Убедитесь, что все одинарные кавычки, которые вы хотите использовать в команде, предварительно заключены в символ , т.е. '. Например, эта команда, которая обычно выглядит следующим образом:
df -P | awk 'NR> 1 {print $2, $4, $6}'
Вы должны написать ее как:
df -P | awk \'NR> 1 {print $2, $4, $6}\'
Агенты Windows Pandora FMS
Конфигурация Агента для Windows Pandora FMS
Основные пути и каталоги в установках Агента для MS Windows® по умолчанию находятся в том же каталоге, где установлен Агент %ProgramFiles%
.
Наиболее важными для учета являются:
%ProgramFiles%\pandora_agent
То место, где установлены Pandora FMS Agent, его исполняемый файл и каталоги.
%ProgramFiles%\pandora_agent\pandora_agent.conf
Основной конфигурационный файл агента. Здесь настраиваются модули локального исполнения и плагины Агента;.
%ProgramFiles%\pandora_agent\PandoraAgent.exe
Исполняемый двоичный файл агента.
%ProgramFiles%\pandora_agent\util\tentacle_client.exe
Исполняемый двоичный файл Tentacle, для передачи файлов на сервер.
%ProgramFiles%\pandora_agent\scripts
Скрипты запуска/остановки/перезапуска Агента Pandora FMS.
%ProgramFiles%\pandora_agent\pandora_agent.log
Текстовый файл, в котором сохраняется активность Агента Pandora FMS, когда агент находится в режиме отладки.
%ProgramFiles%\pandora_agent\util
Каталог, содержащий плагины агента.
%ProgramFiles%\pandora_agent\collections
Каталог, содержащий коллекции агента.
Автоматическое развертывание программных агентов
Вы можете развернуть программные агенты с помощью центра развертывания через систему Discovery, более подробная информация по этой ссылке.
Автоматическое обновление Программных Агентов
Используя коллекции файлов и pandora_update
, вы можете обеспечить «автоматическое обновление» Программных агентов.
Инструменту pandora_update
для работы необходим модуль Perl Digest::MD5
. Начиная с версии Perl 5.14, этот модуль встроен по умолчанию, но в более ранних версиях вам придется установить его вручную.
Это работает следующим образом:
1. Агенты получают новые двоичные файлы во входной каталог коллекций.
Пример в Windows®:
%ProgramFiles%\pandora_agent\collections\fc_1\PandoraAgent.exe
Пример в Linux®:
/etc/pandora/collections/fc_1/pandora_agent
2. Агент выполняет плагин. pandora_update
. Этот плагин получает один параметр: краткое имя коллекции (в данном примере, fc_1
). Он просканирует каталог коллекции на наличие двоичного файла агента (не весь инсталлятор), сравнит двоичный файл, находящийся в коллекции, с запущенным в данный момент, и, если они отличаются, pandora_update
остановит Агента, заменяет двоичный файл и перезапускает Агент снова, используя новый двоичный файл.
Для обновления различных архитектур необходимо создать отдельную коллекцию для каждой архитектуры. Например, если вы хотите обновить агенты Windows® 32 и 64 бит, вам следует создать две коллекции и в каждую из них включить соответствующий бинарный файл PandoraAgent.exe
.
3. Pandora_update
также записывает в небольшой журнал обновленное событие, чтобы иметь возможность получить его при следующем выполнении и предупредить пользователя (с помощью модуля async_string
) о процессе обновления агента.
Это означает, что модули, используемые для завершения процесса обновления, могут быть настроены на высокий интервал.
Стандартная установка Unix
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec nohup /etc/pandora/plugins/pandora_update fc_1 2> /dev/null && tail -1 nohup.out 2> /dev/null module_description Module to check new version of pandora agent and update itself module_end
Индивидуальная установка Unix
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec nohup /var/opt/PandoraFMS/etc/pandora/plugins/pandora_update fc_1 /var/opt/PandoraFMS 2> /dev/null && tail -1 nohup.out 2> /dev/null module_description Module to check new version of pandora agent and update itself module_end
Команда pandora_update
принимает в качестве второго параметра путь к каталогу установки Pandora FMS, его нет необходимости указывать, если установка была произведена по пути по умолчанию.
Windows®
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec pandora_update.exe fc_1 module_description Module to check new version of pandora agent and update itself module_end
Автосоздание Агентов и Модулей из XML
Агенты могут быть настроены с консоли в трех рабочих режимах:
- Режим обучения: Если XML, полученный от Программного Агента, содержит новые модули, они будут созданы автоматически. Это поведение по умолчанию.
- Нормальный режим: Новые модули, поступающие в XML, не будут созданы, если они не были ранее заявлены в консоли.
- Режим автоматического отключения: Подобно режиму обучения, в этом режиме, кроме того, если все модули перейдут в неизвестный статус, Агент будет отключен автоматически, и он будет снова включен, если получит новую информацию.
Данные, которые учитываются при создании Агента
Данные, которые автоматически включаются в Агент в момент его создания при получении XML, следующие:
- Имя Агента.
- IP-адрес Агента.
- Описание Агента.
- Родительский Агент.
- Timezone offset.
- Группа.
- Операционная система.
- Интервал.
- Agent version.
- Custom fields.
- Custom ID.
- URL Адрес.
- Режим агента: Обучение, Нормальный, Автоотключение.
Данные, которые будут обновлены у агента при получении XML (при включенном режиме обучения)
- IP-адрес Агента.
- Отец агента.
- Версия ОС.
- Версия Агента.
- Часовой пояс.
- Custom fields.
Данные ГИС всегда обновляются (если включено), независимо от того, отключен ли режим обучения.
Кроме того, при активированном режиме обучения новые модули будут создаваться в Pandora FMS при их получении через XML.
Данные, которые включаются в создание модуля
Данные, которые включаются в модуль при первом получении XML, следующие:
- Имя.
- Тип.
- Описание.
- Максимальный, минимальный.
- Постпроцесс.
- Интервал Модуля.
- Min/max Critical.
- Min/max Warning.
- Деактивировано.
- Единицы.
- Module group.
- Custom ID.
- Str. Warning/Critical.
- Инструкции для критического состояния
- Инструкции для предупреждения.
- Инструкции для неизвестного состояния.
- Теги.
- Инверсия критического состояния.
- Инверсия состояния предупреждения.
- Режим «тихий».
- Min. FF Threshold.
- Alert template.
- Crontab.
Данные, которые обновляются из существующего модуля при получении XML
При получении XML, содержащего информацию из существующего модуля, обновляется только описание и расширенная информация, в дополнение к данным модуля.