Как заставить работать мониторинг postgres на zabbix?
Пытаюсь разобраться с мониторингом базы данных postgres, установил агент zabbix, получаю данные, но постоянно светиться проблема от триггера с именем
PostgreSQL: Service is down
выражение триггера last(/192.168.0.10/pgsql.ping["{$PG.HOST}","{$PG.PORT}"]) = 0
Система Debian 11
PostgreSQL 13.9
zabbix_agentd (daemon) (Zabbix) 5.0.8
Попробовал все решения которые нашел в интернете ничего не работает
к примеру для проверки пинга пишу
zabbix-get -s 127.0.0.1 -k pgsql.ping['-h 127.0.0.1 -p 5432 -U postgres -d mydb']
-bash: zabbix-get: команда не найдена
пробую поставить
apt install zabbix-get
пишет
E: Невозможно найти пакет zabbix-get
Sand, поставить тоже не смог
root@debian:~# apt install zabbix_get
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
E: Невозможно найти пакет zabbix_get
winser, ага, значит порядок действий такой:
- ищите как подключить репозиторий zabbix для Вашей версии debian и подключаете его
- выполняете команду apt update
- выполняете команду apt install zabbix-get
- пользуетесь утилитой zabbix_get
Sand, теперь заработало!
Но при подключении ругается на права
zabbix_get -s 127.0.0.1 -k pgsql.ping['-h 127.0.0.1 -p 5432 -U postgres -d mydb']
zabbix_get [251761]: Check access restrictions in Zabbix agent configuration
Прописал для теста в zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
вместо ип сервера с забиксом, ничего не поменялось, в смом забиксе так же проблема PostgreSQL: Service is down не уходит
winser, ну это уже новая ошибка, попробуйте решить её самостоятельно, если не получится - задайте вопрос, описав что Вы сделали для решения данной ошибки
Подскажите, как настроить мониторинг для отслеживания служб с помощью шаблона systemd?
В документации пишут, что нужно установить плагин для агента -Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
Установленный с помощью пакетного менеджера агент уже включает в себя этот плагин, или его нужно отдельно доставить? Если нужно доставить то как?
AUser0, благодарю за ответ!
Для агента под винду это тоже актуально (я не про systemd шаблон естественно))?
Подскажите еще по настройке шаблона, этот макрос {$SYSTEMD.NAME.SERVICE.MATCHES} заполняется службами которые нужно отслеживать, я правильно понимаю, он принимает список как регулярное выражение, типа docker\.service|auditd\.service? И если его заполнить никакие другие службы уже отслеживаться не будут или потребуются дополнительные действия?
dmvlch_dev, а вот под Windows существует уже другой шаблон.
Этот макрос заполняется человеком-оператором, которому нужно обнаружение и отслеживание сервисов, совпавших по имени с RegExp-строкой. И да, не совпавшие имена сервисов отбрасываются, потому что не совпали.
AUser0, добавил сервисы которые хотел отключить по типу atd.service_running\.service|fcoe\.service
Открепил шаблон, прикрепил - лишние службы не уходят с мониторинга. Что делаю не так?
AUser0, спасибо! Получилось, вы гений)
Но только у меня получилось так, нужно в шаблоне systemd изменить Keep lost resources period с 30 дней до 0.
После этого сделать unlink шаблона и вроде как получается.
Но где именно находится это Обнаружение? Я Zabbix месяц использую, чего то могу не знать.
AUser0, спасибо!
Не можете еще подсказать по одному вопросу? В инете особо не нарыл пока.
Вы не настраивали в Linux, что бы выход в интернет шел через прокси?
Есть proxy.pac, я так понял, это конфиг для автоматической настройки прокси.
Как с ним работать, если не трудно, можете объяснить?
AUser0, есть такой proxy.pac
function FindProxyForURL(url, host) {
// ignore capital letters
host = host.toLowerCase();
// plain short host names, .cr.ru domains and 10.0.0.0/8 - use direct connection
if (isPlainHostName(host) ||
dnsDomainIs(host, ".cr.ru") ||
dnsDomainIs(host, ".corp.cr.com") ||
shExpMatch(host,"10.*.*.*")) {
return "DIRECT";
} else {
return "PROXY proxy-d1.ru.cr.ru:8080; PROXY proxy-d2.ru.cr.ru:8080";
}
}
записал в /etc/envinonment
export http_proxy=proxy-dc1.ru.cr.ru:8080, proxy-dc2.ru.cr.ru:8080
export https_proxy=https://proxy-dc1.ru.cr.ru:8080, https://proxy-dc2.ru.cr.ru:8080/
export HTTP_PROXY=proxy-dc1.ru.cr.ru:8080, proxy-dc2.ru.cr.ru:8080
export HTTPS_PROXY=https://proxy-dc1.ru.cr.ru:8080, https://proxy-dc2.ru.cr.ru:8080/
Примерно так?
И нужно ли, что бы заработал прокси перезагружать сервер?
dmvlch_dev, вот про существование переменных заглавными буквами - я не в курсе. И стоит указывать один сервер, так точно будет работать. Если хотите, что бы сработал именно environment - что-ж, перегрузка...
dmvlch_dev, а какой прокси вы имеете ввиду?
Если HTTP-прокси - то нет, Zabbix для передачи данных не использует HTTP.
Но у Zabbix есть собственный прокси, и вот через него Zabbix умеет работать.
AUser0, я настроил оповещения через MS Teams, но работать они не хотят, т.к. у сервера нет доступа в интернет. Работает это с помощью webhook.
Как настроить прокси, что бы это работало?
AUser0, разобрался, если хотите настроить отправку уведомлений через webhook, при этом что бы соединение шло через proxy, в настройке самого webhook, например MS Teams или GitHub и т.д., нужно добавить параметр HTTPProxy и указать сам прокси.
zabbix_get.
что имеете ввиду ? точку в конце надо или что?
А для проверки работы порта можно просто telnet 127.0.0.1 5432
root@debian:~# telnet 127.0.0.1 5432
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.
systemd будет мониторить запущенный процесс или я не так понял ?
AUser0, теперь заработало!
Но при подключении ругается на права
zabbix_get -s 127.0.0.1 -k pgsql.ping['-h 127.0.0.1 -p 5432 -U postgres -d mydb']
zabbix_get [251761]: Check access restrictions in Zabbix agent configuration
Прописал для теста в zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
вместо ип сервера с забиксом, ничего не поменялось, в самом забиксе так же проблема PostgreSQL: Service is down не уходит