Search
Write a publication
Pull to refresh

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) на активном узле и начать наслаждаться работающим мониторингом кластера.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.