Добрый день,
Я разбираюсь с системой Zabbix, натравливая различные метрики и items, на мои хосты. У меня возникло некоторое непонимание в организации моих настроек (включая шаблоны, группы хостов и пр).
Задача, которую я себе поставил - это мониторинг сервера БД с помощью утилит, которые он предоставляет. Самый простой пример, с которым я сейчас вожусь - это ping сервера БД.
Что я сделал, я создал UserParameter и подключил его на агенте, который крутится на стороне БД.
Мой скрипт (под Windows) возвращает 1, если нашёл строку. и 0, если нет.
Всё исправно пингуется со стороны сервера БД. На Zabbix, я создал шаблон, потом для него приложение (имя: SQL Anywhere), потом создал для этого приложения item (SA status). Ключ, который я создал - sa.ping[{HOSTNAME}]. Это позволяет, как я понял, Zabbix'у подставлять имя сервера в item.
Потом у меня возник вопрос, как мониторить доступность БД со стороны моих серверов приложений.
К сожалению, я не совсем понимаю как должны быть организованы мои шаблоны-приложения-айтемы.
Теоретически, я должен применить шаблон на мои сервера приложений, плюс сервер БД? Но тогда мой {HOSTNAME} будет "резолвится" неверно (то есть каждый агент попытается пропинговать сервер по тому адресу, где сам находится).
Или же мне надо создать айтем sa.ping[*], и как-нибудь сказать, что в случае пинга со стороны серверов приложений, мне надо вызывать sa.ping[dbServerHost], а на сервере БД sa.ping[localhost].
Или следует создать два шаблона с повторяющимися айтемами. Один должен применяться на сервера, где установлена эта БД, а другой на сервера приложений.
Одним словом буду рад любому совету, потому как я запутался и не смог нагуглить никаких best practices.
Спасибо заранее.
Я разбираюсь с системой Zabbix, натравливая различные метрики и items, на мои хосты. У меня возникло некоторое непонимание в организации моих настроек (включая шаблоны, группы хостов и пр).
Задача, которую я себе поставил - это мониторинг сервера БД с помощью утилит, которые он предоставляет. Самый простой пример, с которым я сейчас вожусь - это ping сервера БД.
Что я сделал, я создал UserParameter и подключил его на агенте, который крутится на стороне БД.
Code:
UserParameter=sa.ping[*], dbping -c "Host=$1" | find /i "Ping server successful." /c
Всё исправно пингуется со стороны сервера БД. На Zabbix, я создал шаблон, потом для него приложение (имя: SQL Anywhere), потом создал для этого приложения item (SA status). Ключ, который я создал - sa.ping[{HOSTNAME}]. Это позволяет, как я понял, Zabbix'у подставлять имя сервера в item.
Потом у меня возник вопрос, как мониторить доступность БД со стороны моих серверов приложений.
К сожалению, я не совсем понимаю как должны быть организованы мои шаблоны-приложения-айтемы.
Теоретически, я должен применить шаблон на мои сервера приложений, плюс сервер БД? Но тогда мой {HOSTNAME} будет "резолвится" неверно (то есть каждый агент попытается пропинговать сервер по тому адресу, где сам находится).
Или же мне надо создать айтем sa.ping[*], и как-нибудь сказать, что в случае пинга со стороны серверов приложений, мне надо вызывать sa.ping[dbServerHost], а на сервере БД sa.ping[localhost].
Или следует создать два шаблона с повторяющимися айтемами. Один должен применяться на сервера, где установлена эта БД, а другой на сервера приложений.
Одним словом буду рад любому совету, потому как я запутался и не смог нагуглить никаких best practices.
Спасибо заранее.

Comment