На связи Александр Воронцов, технический специалист компании Cloud4Y. Сегодня я расскажу, как можно настроить получение в Zabbix метрик СУБД PostgreSQL, используемой в VMware Cloud Director и vCenter Server Appliance.
Процесс настройки для vCenter и Cloud Director буду описывать параллельно, потому что последовательность действий для настройки одинаковая, отличия в деталях.
Примечание: vCenter и Cloud Director будут удалять каталог /var/run/zabbix при каждой перезагрузке, потому PID файл нужно расположить в другом месте, например /tmp/zabbix.pid
Создаём System.d Unit для работы Zabbix Agent в качестве системного сервиса:
Unit разместим по пути /usr/lib/systemd/system/zabbix-agent.service, со следующим содержимым:
#/usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
Для запуска Zabbix Agent выполняем:
systemctl daemon-reload
systemctl enable zabbix-agent
systemctl restart zabbix-agent
Добавляем в начало файла
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
В конце файла добавляем вставку по аналогии с другими, не ломая исходное форматирование:
"zabbix-agent": {
"firewall": {
"enable": true,
"rules": [
{
"direction": "inbound",
"protocol": "tcp",
"porttype": "dst",
"port": "10050",
"portoffset": 0
}
]
}
}
Пример на скриншоте
На шаге 1: vCenter использует версию PostgreSQL 9.6.20, Cloud Director — версию 10.12. Для них нужно выполнять разные команды для создания пользователя zbx_monitor.
На шаге 4: Нужно отредактировать pg_hba.conf для доступа Zabbix Agent к PostgreSQL, добавив строку host all zbx_monitor 127.0.0.1/32 trust вверху списка правил IPv4 local connections:
pg_hba.conf
На шаге 6: Ничего делать не нужно в случае размещения Zabbix Agent и PostgreSQL на одном хосте (как в нашем примере).
После завершения настройки по мануалу, выполняем перезагрузку VMware Cloud Director и vCenter Server Appliance и проверяем доступность Zabbix Agent из Zabbix.
Графики с VMware Cloud Director
Графики с vCenter Server Appliance
Не запускается Zabbix Agent:
Выполните systemctl status zabbix-agent. Если агент не стартует, попробуйте запустить его из консоли командой /usr/bin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf, посмотрите ошибку в выводе на экран.
Zabbix Agent недоступен по сети:
Проверьте, слушает ли агент порт 10050/tcp : netstat -tulpn | grep zabbix
Проверьте, что порт 10050/tcp открыт на Firewall: iptables -L
Проверьте, что разрешающее правило находится в цепочке INPUT
Спасибо за внимание!
habr.com
Процесс настройки для vCenter и Cloud Director буду описывать параллельно, потому что последовательность действий для настройки одинаковая, отличия в деталях.
Показывать буду на примере:
- vCenter Server Appliance 6.7 U3 (Photon OS 1.0)
- VMware Cloud Director 10.2 (Photon OS 2.0)
- Zabbix 5.0 LTS
- Zabbix Agent (не Zabbix Agent 2)
- Официальный шаблон мониторинга PostgreSQL
Дистрибутив Zabbix Agent для PhotonOS
Zabbix Agent для PhotonOS можно собрать самостоятельно из исходников, но мы возьмём уже собранный "дистрибутив" (вопрос безопасности использования чужих бинарников с гитхаба обойду стороной. Как я уже сказал, всегда можно собрать из исходников самому).Установка Zabbix Agent
Нам понадобятся:- zabbix_agentd
- zabbix_get
- zabbix_sender
- zabbix_agentd.conf
- /etc/zabbix
- /etc/zabbix/zabbix_agent.d.d
- /var/log/zabbix
Примечание: vCenter и Cloud Director будут удалять каталог /var/run/zabbix при каждой перезагрузке, потому PID файл нужно расположить в другом месте, например /tmp/zabbix.pid
Создаём System.d Unit для работы Zabbix Agent в качестве системного сервиса:
Unit разместим по пути /usr/lib/systemd/system/zabbix-agent.service, со следующим содержимым:
#/usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
Для запуска Zabbix Agent выполняем:
systemctl daemon-reload
systemctl enable zabbix-agent
systemctl restart zabbix-agent
Настройка Firewall
Для Cloud Director
Открываем /etc/systemd/scripts/ip4save-vmwДобавляем в начало файла
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
Для vCenter Server Appliance
Открываем /etc/vmware/appliance/services.confВ конце файла добавляем вставку по аналогии с другими, не ломая исходное форматирование:
"zabbix-agent": {
"firewall": {
"enable": true,
"rules": [
{
"direction": "inbound",
"protocol": "tcp",
"porttype": "dst",
"port": "10050",
"portoffset": 0
}
]
}
}
Пример на скриншоте
![9a8c3fb8cf657c24f70d32e916ebae71.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/9a8/c3f/b8c/9a8c3fb8cf657c24f70d32e916ebae71.png)
Как разрешить доступ Zabbix к PostgreSQL
Будем следовать официальному мануалу для Zabbix Agent (не Zabbix Agent 2). Переписывать мануал я не буду, но прокомментирую неочевидные моменты:На шаге 1: vCenter использует версию PostgreSQL 9.6.20, Cloud Director — версию 10.12. Для них нужно выполнять разные команды для создания пользователя zbx_monitor.
На шаге 4: Нужно отредактировать pg_hba.conf для доступа Zabbix Agent к PostgreSQL, добавив строку host all zbx_monitor 127.0.0.1/32 trust вверху списка правил IPv4 local connections:
![pg_hba.conf pg_hba.conf](https://habrastorage.org/r/w1560/getpro/habr/upload_files/46b/053/f40/46b053f4056a877eef237b12e16dd1c1.png)
Для Cloud Director
Нужно вносить изменения в /opt/vmware/appliance/etc/base_pg_hba.conf.Для vCenter Server Appliance
Нужно вносить изменения в /storage/db/vpostgres/pg_hba.conf.На шаге 6: Ничего делать не нужно в случае размещения Zabbix Agent и PostgreSQL на одном хосте (как в нашем примере).
После завершения настройки по мануалу, выполняем перезагрузку VMware Cloud Director и vCenter Server Appliance и проверяем доступность Zabbix Agent из Zabbix.
Результат
После проведения всех манипуляций по настройке получим нечто подобное:![Графики с VMware Cloud Director Графики с VMware Cloud Director](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f32/27b/f70/f3227bf701d382bf2a7f339938bba385.png)
![Графики с vCenter Server Appliance Графики с vCenter Server Appliance](https://habrastorage.org/r/w1560/getpro/habr/upload_files/8e3/fb2/341/8e3fb2341641bdd8f5973dc382d72ee8.png)
Дебаг
Если у вас что-то не работает, то вот несколько вариантов решения проблемы:Не запускается Zabbix Agent:
Выполните systemctl status zabbix-agent. Если агент не стартует, попробуйте запустить его из консоли командой /usr/bin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf, посмотрите ошибку в выводе на экран.
Zabbix Agent недоступен по сети:
Проверьте, слушает ли агент порт 10050/tcp : netstat -tulpn | grep zabbix
Проверьте, что порт 10050/tcp открыт на Firewall: iptables -L
Проверьте, что разрешающее правило находится в цепочке INPUT
![f2cc920e2863c125a1ad533248a24978.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f2c/c92/0e2/f2cc920e2863c125a1ad533248a24978.png)
Спасибо за внимание!
![habr.com](https://habrastorage.org/getpro/habr/upload_files/d5d/b93/e39/d5db93e39e57f16240c75f49ffef0b13.jpeg)
Мониторинг СУБД VMware Cloud Director и vCenter Server Appliance с помощью Zabbix
Привет, Хабр! На связи Александр Воронцов, технический специалист компании Cloud4Y. Сегодня я расскажу, как можно настроить получение в Zabbix метрик СУБД PostgreSQL, используемой в VMware Cloud...
![habr.com](https://assets.habr.com/habr-web/img/favicons/favicon-16.png)