У меня Zabbix 4.4.0 установлен на Ubuntu 19.10
Я настроил плагин postgresql для мониторинга postgresql.
сейчас я хочу отслеживать последнюю вставленную строку в определенной таблице, чтобы получить ее метку времени, и последнюю строку, вставленную 10 минут назад, чтобы создать ошибку, и если несколько минут назад, чтобы создать предупреждение.
Я не играл в zabbix пару лет, поэтому многое забыл.
Я погуглил и нашел следующую ссылку: https://www.zabbix.com/forum/zabbix-help/23307-monitoring-mysql-postgresql-table
там он создает php-скрипт, который выполняет команду sql и отправляет ее с помощью zabbix trapper:
<?php
/* Include database connection PHP lines here, this is just a fast and very crappy example using exec()/system() & bash */
exec('echo "SELECT * from table......" | psql -U userdb -h hostname databasename', $result1);
$mydata1 = trim($result1[0]);
//Send to the trapper
exec("/usr/bin/zabbix_sender -z $ZABBIXSERVER -p $ZABBIXPORT -s $ZABBIXAGENT -k \"my.key.result1\" -o $mydata1");
?>
затем он создал файл conf для выполнения скрипта:
UserParameter=my_pg_data,php /etc/zabbix/mytools/sqlqueryscript.php;echo $?
затем добавил элемент и подключил его к хосту.
это решение меня немного озадачивает. поскольку сценарий запускается Zabbix, зачем мне использовать zabbix_sender
в первую очередь ? почему бы мне просто не создать скрипт, который выводит результат, а zabbix обрабатывает результат.
как наиболее эффективно реализовать такую вещь?
Спасибо!