Как стать автором
Обновить

ZABBIX: мониторинг кластера Windows Server

Как известно Zabbix является достаточно мощной системой мониторинга, про нее уже достаточно много написано. Однако недавно у меня встала задача организовать мониторинг кластера Windows Server 2003 силами Zabbix. Поиск в гугле не дал сразу ответа на то как это сделать, и потому пришлось немного подумать…
О том? что из этого получилось под катом…



Исходные данные:
Имя кластера: MS-CLUSTER.DOMAIN.COM
Состоят из 2 узлов.
Узел1: MS-NODE1.DOMAIN.COM
Узел2: MS-NODE2.DOMAIN.COM
IP-адрес узла1: 192.168.0.1
IP-адрес узла2: 192.168.0.2
IP-адрес самого кластера: 192.168.0.3

Задача:
Организовать мониторинг самого кластера и его узлов.

Решение:
На самом деле все очень легко. Но думаю есть люди не знают как это сделать и им очень надо, вот для них эта статья.
Для начала нам понадобится zabbix agent под платформу Windows (можно найти на официальном сайте).
Точнее даже два файла: zabbix_agentd.exe (сам агент) и zabbix_agentd.conf (его конфиг).
Прежде чем ставить давайте поправим конфиг:

##zabbix_agentd.conf

# Задаем уровень дебагинга
DebugLevel=3

#Задаем где будет лежать log-файл
LogFile=C:\Zabbix_agent\Zabbix_agentd.log

#Разрешаем выполнение удаленных команд агенту (может пригодиться)
EnableRemoteCommands=1

#Указываем DNS-имя zabbix-сервера
Server=zabbix.domain.com

# Порт, который будет слушать агент
ListenPort=10050

# Порт, который слушает наш сервер (значение по умолчанию)
ServerPort=10051


Это минимум. Его, как вы сами понимаете не достаточно, но это то что должно быть в конфиге обязательно на всех серверах.
Вот теперь начинаем вносить отличия. Сложность в том, что агент, слушая TCP порт не отличает еще и запросы на разные IP адреса (192.168.0.1 и 192.168.0.3 к примеру, когда активным будет первый узел). Дальше я расскажу как это сделать.
На сервере MS-NODE1.DOMAIN.COM создаем папку C:\Zabbix_agent\. Копируем туда два файла (конфиг и сам exe-шник). Переименовываем конфиг в zabbix_agentd_NODE1.conf Добавляем в конфиг следующие строчки.
# Указываем IP-адрес узла1, именно его агент и будет слушать.
ListenIP=192.168.0.1


Выполняем команду:

C:\Zabbix_agent\zabbix_agentd.exe -c C:\Zabbix_agent\zabbix_agentd_NODE1.conf -i
C:\Zabbix_agent\zabbix_agentd.exe -c C:\Zabbix_agent\zabbix_agentd.conf -s


Теперь у нас есть запущенный zabbix agent, который мониторит Узел1. Чтобы сделать поддержку самого кластера нужно следующее: копируем конфиг в файл zabbix_agentd_CLUSTER.conf
Изменяем там строчку:

ListenIP=192.168.0.3


Вот тут самое сложное :-). Поскольку установить как мы делали до этого службу Zabbix agent у нас не получится (будет ругаться, что такая служба уже есть), пойдем другим путём: воспользуемся программой Sc.exe.
В командной строке набираем следующее:
sc \\MS-NODE1.DOMAIN.COM create "Zabbix_agent (Cluster)" binpath="C:\Zabbix_agent\zabbix_agentd.exe -c C:\Zabbix_agent\zabbix_agentd_CLUSTER.conf" DisplayName="Zabbix_agent (Cluster)"

Мы создали службу, которая будет отвечать за мониторинг кластера в целом. Запускать ее сейчас не надо (да это и не получится если узел является неактивным).

Повторяем все вышеописанные действия на машине MS-NODE2.DOMAIN.COM.

Теперь нам необходимо сделать эту службу кластерной. Запускаем оснастку Cluster Administrator нажимаем File->New->Resource. Указываем данные:

Name: Zabbix Agent
Description: Server for monitoring
Resource type: Generic Service

Нажимаем Next.
На следующем окошке выбираем те узлы на которых стоит служба (в нашем случае MS-NODE1.DOMAIN.COM и MS-NODE2.DOMAIN.COM). Next. Затем выбираем в окошке Avalaible resources пункт Cluster IP address. Next. Указываем в поле Service name Zabbix_agent (Cluster), это то имя, которое мы использовали при команде sc.exe. Next. Здесь ничего не указываем. Нажимаем Finish.

P.S. Ну вот и все! Поздравляю вас! теперь можно запустить службу Zabbix_agent (Cluster) на активном узле и начать наслаждаться работающим мониторингом кластера.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.