Ad Widget

Collapse

Мониторинг БД с нескольких хостов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Olaff
    Junior Member
    • May 2016
    • 5

    #1

    Мониторинг БД с нескольких хостов

    Добрый день,

    Я разбираюсь с системой Zabbix, натравливая различные метрики и items, на мои хосты. У меня возникло некоторое непонимание в организации моих настроек (включая шаблоны, группы хостов и пр).
    Задача, которую я себе поставил - это мониторинг сервера БД с помощью утилит, которые он предоставляет. Самый простой пример, с которым я сейчас вожусь - это ping сервера БД.
    Что я сделал, я создал UserParameter и подключил его на агенте, который крутится на стороне БД.

    Code:
    UserParameter=sa.ping[*], dbping -c "Host=$1" | find /i "Ping server successful." /c
    Мой скрипт (под 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.

    Спасибо заранее.
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Можно, например, создать пользовательский макрос (глобальный или на уровне шаблона/хоста): {$AnyWhereDBHost} => 1.1.1.1

    Затем использовать этот макрос в шаблоне. Тогда не будет иметь значения, к какому хосту применен шаблон - значение будет подставляться одно и то же.

    Comment

    • Olaff
      Junior Member
      • May 2016
      • 5

      #3
      Спасибо, сейчас попробую. Пока осваиваю Python

      Я правильно понимаю, что могу создать что-то вроде двух шаблонов: Template for remote SA monitoring, Template for local SA monitoring.
      И назначить на первый те айтемы, которые используют скрипты для удалённого мониторинга (например, какие-нибудь легковесные, например, dbping), а на второй меня бы интересовали скрипты, которые собирают такую информацию как число подключений, может быть потребление по памяти и т. п. - одним словом то, что не обязательно мониторить удалённо.

      Будет ли подобное разграничение считать нормальным? Или же стоит создать один шаблон, но везде использовать параметры скрипта {$AnyWhereDBHost}, которые я буду перегружать на уровне хостов? Например, на моих серверах приложений я назначу "dbhostname.domain", а на сервере БД - localhost. Те айтемы, которые я не хочу мониторить удалённо (с серверов приложений), я выключу (Disable).

      p.s. извините, что не ответил раньше. Моё сообщение при отправке потерялось

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by Olaff
        Спасибо, сейчас попробую. Пока осваиваю Python

        Будет ли подобное разграничение считать нормальным? Или же стоит создать один шаблон, но везде использовать параметры скрипта {$AnyWhereDBHost}, которые я буду перегружать на уровне хостов? Например, на моих серверах приложений я назначу "dbhostname.domain", а на сервере БД - localhost. Те айтемы, которые я не хочу мониторить удалённо (с серверов приложений), я выключу (Disable).
        Один шаблон легче править, два - легче администрировать. Например, если будете использовать автообнаружение удаленных узлов, то выглядит разумней цеплять к ним только Template for remote SA monitoring, а не отключать каждый раз неиспользуемые айтемы универсального.

        Словом - потребности определяют действия. Стратегия "Статическая" - один шаблон, "Динамическая" - несколько.

        Comment

        Working...