Триггер значения текста Zabbix

Вопрос или проблема

Я пытаюсь настроить триггер Zabbix для внешней проверки, который должен срабатывать, если значение, возвращаемое внешней проверкой, отличается от:

             Slave_SQL_Running: Yes

Replication running

Connection to host.com closed.

Использование {db2.playtech.ru.com:mysql_replica_check.sh.last(60)}<>expression вызывает синтаксическую ошибку.

Есть ли способ настроить этот триггер в Zabbix?

В этом случае, функция триггера str() будет лучшим выбором:

{db2.playtech.ru.com:mysql_replica_check.sh.str(string)}=0

Ответ или решение

Вам нужно настроить триггер в Zabbix для внешней проверки, чтобы он срабатывал, когда значение, возвращаемое этой проверкой, отличается от заданного текста. В данном случае вы хотите, чтобы триггер срабатывал, если возвращаемое значение не соответствует строке:

Slave_SQL_Running: Yes

Replication running

Connection to host.com closed.

Для реализации этой задачи в Zabbix лучше всего использовать функцию str(), которая позволяет проверить, встречается ли определённая подстрока в возвращаемом значении.

Вот шаги, которые нужно выполнить:

  1. Создайте элемент данных, который будет выполнять вашу внешнюю команду. Примером такого элемента может быть mysql_replica_check.sh, который вы уже упомянули.

  2. Затем вы можете настроить триггер, который будет проверять результат. В вашем случае, чтобы проверить, чтобы возвращаемое значение не содержало определённые строки, попробуйте использовать следующую формулу:

{db2.playtech.ru.com:mysql_replica_check.sh.str("Slave_SQL_Running: Yes")}=0

Это выражение будет срабатывать, если строка "Slave_SQL_Running: Yes" не содержится в выводе скрипта. Если вы хотите проверять другие строки, просто добавьте аналогичные выражения или измените строку на ту, которая вам нужна.

  1. Для более сложной проверки вы можете использовать несколько триггеров или объединить условия с помощью or/and, в зависимости от ваших требований.

В качестве примера, если вы хотите удостовериться, что ни одна из строк не появляется в выводе, вы можете создать несколько отдельных триггеров для каждого необходимого условия.

Таким образом, ваше полное выражение для триггера может выглядеть примерно так:

{db2.playtech.ru.com:mysql_replica_check.sh.str("Slave_SQL_Running: Yes")}=0 and 
{db2.playtech.ru.com:mysql_replica_check.sh.str("Replication running")}=0 and 
{db2.playtech.ru.com:mysql_replica_check.sh.str("Connection to host.com closed.")}=0

Этот триггер будет активироваться, если хотя бы одно из условий, указанных в триггере, не будет выполнено.

Таким образом, используя функцию str() и правильные выражения, вы сможете настроить триггер так, чтобы он реагировал на ненадлежащие состояния вашей репликации в MySQL.

Оцените материал
Добавить комментарий

Капча загружается...