Мелкие и средние компании зачастую пренебрегают таким компонентом IT инфраструктуры, как мониторинг разных узлов локальной сети. При возникновении проблем в таких компаниях может проходить достаточно много времени, пока инженеры поймут, что происходит в их IT инфраструктуре, что, само по себе, очень критично для бизнеса. Имплементация и правильная настройка системы мониторинга облегчает жизнь IT специалиста на порядок, но стоит заметить, что на начальном этапе сбора и анализа информации в системе мониторинга увеличивается количество рабочих часов. Почему? Всплывают те ошибки, которые вы могли не замечать или просто игнорировали в течении долгого периода времени. При этои рынок программного обеспечения предлагает целый ряд продуктов, так или иначе связанных с мониторингом. В ряде широко используемых продуктов присутствуют такие, как Microsoft System Center Operations Manager (SCOM), Nagios, Zabbix, Cacti и т.д.

Если взять SCOM, то он хорошо “заточен” под программное обеспечение от Microsoft, прекрасно отслеживает требуемое, но очень “толстый”, и чтобы его развернуть в Enterprise режиме, нужно задействовать несколько серверов. Как показывает моя практика, SCOM не могут себе позволить развернуть даже некоторые крупные компании, не говоря уже о мелком и среднем бизнесе.

Иначе обстоят дела с Zabbix. Этот продукт позволяет развернуть себя на старом Desktop’e и предоставлять результат. Для мониторинга Windows-систем Zabbix функционально не так богат, как SCOM, но в симбиозе с технологией Windows Event Subscriptions мы можем получить вполне эффективную систему мониторинга.

Если говорить про Linux или Unix системы и их сервисы (MySQL, FTP, SMTP, HTTP, SSH, Exim, Squid и т.п.), то Zabbix предоставляет множество уже готовых шаблонов для их мониторинга.

В современной гетерогенной IT инфраструктуре для достижения максимальной эффективности и гибкости нужно использовать как коммерческие продукты, такие как SCOM, так и СПО, такое как Zabbix.

Установка Zabbix на Ubuntu 14.04

Сама установка Zabbix 3.0 LTS сервера на Ubuntu Server 14.04 LTS очень тривиальна и не доставляет особых проблем. Многие зададутся вопросом, почему для установки Zabbix 3.0 не взять дистрибутив Ubuntu к примеру 15-16 версии, но на данный момент Zabbix не поддерживает эти версии Ubuntu. И при попытке установки Zabbix сервера на Ubuntu 15-16 получим ошибку.

Особо ленивые могут скачать Zabbix Appliance, развернуть и протестировать, но как можно прочитать “The Appliance is not intented for serious production use at this time”

Мы установим Zabbix из пакетов, даем последовательно ряд команд. Скачаем и установим пакет, который добавит репозиторий для Zabbix сервера:

$ cd /tmp/

$ sudo wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+trusty_all.deb

$ sudo dpkg -i zabbix-release_3.0-1+trusty_all.deb

Обновим кэш менеджера пакетов и убедимся в том, что репозиторий для Zabbix добавился:

$ sudo apt-get update

$ cat /etc/apt/sources.list.d/zabbix.list 

deb http://repo.zabbix.com/zabbix/3.0/ubuntu trusty main

deb-src http://repo.zabbix.com/zabbix/3.0/ubuntu trusty main

Наш Zabbix-сервер будет хранить всю информацию в MySQL и поэтому устанавливаем пакет для Zabbix сервера с поддержкой MySQL:

$ sudo apt-get install zabbix-server-mysql zabbix-frontend-php

Сразу установим Zabbix-агента на Zabbix-сервер, чтобы сервер мог мониторить сам себя, а к настройкам агента вернёмся позже:

$ sudo apt-get install zabbix-agent

Теперь нужно создать в MySQL базу данных. Подключимся к MySQL:

$ mysql -uroot -p

Здесь MySQL запросит пароль. Укажем тот пароль, который мы задавали при установке пакета zabbix-server-mysql В контексте MySQL создаем базу данных с именем Zabbix и даем полные права на вновь созданную базу данных пользователю zabbix@localhost:

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘Password’;

mysql> quit;

Переходим в директорию, где лежит скрипт, который создаст структуру для нашей базы:

$ cd /usr/share/doc/zabbix-server-mysql

$ ls -l

Создаем структуру:

$ zcat create.sql.gz | mysql -uroot zabbix -p

Теперь нужно указать Zabbix-серверу какую базу данных использовать:

$ sudo vim /etc/zabbix/zabbix_server.conf

Запускаем Zabbix-сервер:

$ sudo service zabbix-server start

Проверяем статус:

$ sudo service zabbix-server status

Теперь заходим в конфигурацию веб-сервера Apache:

$ sudo vim /etc/apache2/conf-enabled/zabbix.conf

Цитата из документации:

It’s necessary to uncomment the “date.timezone” setting and set the correct timezone for you. After changing the configuration file restart the apache web server.

После правки конфигурационного файла перезапускаем Apache:

$ sudo /etc/init.d/apache2 restart

Возможно вы увидите, что apachе2 выдает предупреждение.

В таком случае снова заходим в конфигурационный файл Apache и задаем параметр ServerName:

$ sudo vim /etc/apache2/apache2.conf

После этого предупреждение должно исчезнуть.

Далее открываем веб-консоль Zabbix.

Будет запущен мастер первоначальной конфигурации. Каждый шаг этого мастера описывать нет смысла, так как мастер очень простой.

Для аутентификации используем UserName: Admin Password: zabbix – регистр важен – это Linux.

Как видите, все элементарно просто. Установка занимает не более 30 минут.

Настройка LDAP аутентификации на базе Active Directory

Первое, что мы сделаем после установки, – настроим аутентификацию на нашем Zabbix сервере через Active Directory.

Создаем в Active Directory пользователя, к примеру zabbix.

По умолчанию этот пользователь входит в группу Domain Users и этого достаточно. Почему-то многие дают этому пользователю чрезмерно большие права доступа, по типу Domain Admins. Делать этого не нужно.

Далее идем в Zabbix (используем UserName: Admin Password: zabbix для аутентификации) и создаем пользователя с именем, как в Active Directory.

В поле Alias и Name пишем точно так же как в Active Directory в поле User SamAccountName.

И даем права.

Далее перелогиниваемся вновь созданным пользователем zabbix и переходим

Нажимаем Test и если все хорошо, то нажимаем Update.

После того, как мы переключимся на LDAP аутентификацию, пользователем UserName: Admin Password: zabbix мы уже не зайдем, так как пользователя Admin c паролем zabbix в нашей Active Directory просто нет, но есть другой пользователь zabbix. Используем для входа именно этого пользователя. Подобным образом на Zabbix-сервере создаем учетные записи для всех ответственных инженеров.

Не забываем дать Permissions пользователю и назначить в определенную группу.

Таким образом, если учетная запись в Active Directory существует – это еще не значит, что мы сможем залогиниться с помощью этой учётной записи на Zabbix-сервер. На Zabbix-сервере нужно создать ассоциированную учетную запись, такую же как в Active Directory.

Возможна ситуация, когда LDAP хост “упал”, а у нас вся аутентификация завязана на Active Directory, и при попытке входа на Zabbix сервер будет выводиться сообщение о некорректных учётных данных.

В таком случае можно переключиться на internal аутентификацию, чтобы в последующем, к примеру, переключиться на другой LDAP сервер. Для этого подключаемся к MySQL …

$ mysql -uroot -p

и даем команду:

mysql> UPDATE `zabbix`.`config` SET `authentication_type` = ‘0’ WHERE `config`.`configid` =1;

Команда отключит LDAP и активирует internal аутентификацию. После этой команды на Zabbix сервер можно будет зайти с использованием учётной записи Admin / zabbix.

Установка Zabbix агентов на ОС Windows и Linux

Начнем с Linux, так как на этой ОС всё это делается элементарно. В наличии у нас Ubuntu Linux 14.04 LTS и и в репозитории Ubuntu zabbix-agent уже представлен, правда версии 2.2:

$ sudo aptitude show zabbix-agent

Можно обойтись и этой версией агента, но мы хотим использовать последнюю версию Zabbix-агента:

$ cd /tmp/

$ wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+trusty_all.deb

$ sudo dpkg -i zabbix-release_3.0-1+trusty_all.deb

$ sudo apt-get update

$ sudo aptitude show zabbix-agent

Устанавливаем агента:

$ sudo aptitude install zabbix-agent

После того, как мы установили агента, идем по пути /etc/zabbix/zabbix_agentd.conf (для Ubuntu, путь в зависимости от конкретного дистрибутива может отличаться) и вносим настройки.

После внесения изменений не забываем перезапускать Zabbix агента.

$ sudo /etc/init.d/zabbix-agent restart

Кстати по параметру Server в конфигурационном файле zabbix агента, приведу такую цитату:

Note that hostnames must resolve hostname→IP address and IP address→hostname.

То есть, когда в DNS будем создать A-запись для Zabbix сервера, то не забываем создать и PTR запись.

Еще момент для параметра Server:

List of comma delimited IP addresses (or hostnames) of Zabbix servers. Incoming connections will be accepted only from the hosts listed here.

То есть наш Zabbix агент может работать одновременно с разными Zabbix серверами. Просто стоит указать их FQDN или IP-адрес через запятую.

Вернемся к нашим параметрам для Zabbix агента. Как можно было заметить, я внес минимальные изменения в .conf файл Zabbix агента. По моему опыту в небольших инсталляциях (реальная цифра из жизни – 20 Linux-серверов) этого вполне хватает. По параметрам конфигурационного файла дополнительно можно почитать по ссылке, но интуитивно все и так понятно.

Далее идем на наш Zabbix сервер и указываем ему FQDN и IP адрес нашего клиента.

В поле DNS name я пишу неполный FQDN наблюдаемого хоста, так как у меня корректно настроена сеть на Zabbix сервере.

Далее идем на вкладку Templates.

Без применения шаблона или шаблонов на конкретный хост никакие параметры подвергаться мониторингу не будут.

Возвращаемся на вкладку Hosts.

И видим, что индикатор ZBX зеленый – это значит, что Zabbix сервер и агент взаимодействуют между собой и так же появились Items и Triggers, потому что мы применили шаблон для OS Linux, т.е. какой-то набор параметров начал мониториться. Можно нажать на Items и Triggers и увидеть, что именно мы наблюдаем.

Можно в ручном режиме изменять или добавлять. К примеру Items.

Zabbix – это конструктор.

Добавим SSH шаблон и проверим, как он отработает.

Выключаем SSH руками на наблюдаемом сервере и смотрим на нашу dashboard на zabbix сервере.

Теперь установим zabbix агента на Windows Server 2012 R2.

Первое, что надо сделать это скачать агента с сайта Zabbix.

Далее распаковываем полученный архив и копируем путь до установочных файлов.

Открываем CMD от имени администратора изменяем путь до исполняемых файлов zabbix агента. Когда путь будет изменен выполняем команду:

zabbix_agentd.exe –-install

Если выполнить команду в таком исполнении, то файл конфигурации должен находиться по пути C:\zabbix_agentd.conf

Теперь, если посмотреть на оснастку управления службами, можно увидеть службу и для zabbix агента.

Кстати, Zabbix агент установиться без проблем даже если Windows Server установлен в режиме Core.

Теперь нужно создать конфигурационный файл для Zabbix агента и его можно будет запустить. Так как я устанавливал агента без указания дополнительных параметров для пути конфигурационного файла и не собираюсь это делать при запуске агента.

Копируем конфигурационный файл по умолчанию.

И вносим точно такие же изменения, как для Linux клиента (смотри настройку Zabbix агента для Linux, которую мы делали ранее).

Не забываем переименовать конфигурационный файл. По умолчанию он имеет вид zabbix-agentd.win.conf.

Теперь можно запустить службу Zabbix агента и добавить Windows хост на Zabbix сервер.

Процедура добавления Windows клиента на Zabbix сервер точно такая же, как и для Linux клиента за исключением того, что здесь мы применяем шаблон именно для Windows OS.

Если на системе с Windows-агентом Zabbix включён Windows Firewall, то нужно добавить разрешающее правило для Zabbix агента – разрешить входящие подключения на порт TCP 10050

Настройка оповещений через e-mail и Telegram

Подошло время настроить систему уведомлений.

В Zabbix присутствуют несколько вариантов уведомлений.

Не забываем о скриптах, которые могут выполняться в зависимости от определенного события.

Настроим уведомления через Email и Telegram

Переходим Administration –> Media Types и нажимаем Email.

Далее активируем Action.

И последний шаг – включаем e-mail уведомления для наших пользователей или группы пользователей.

И пробуем протестировать придет письмо или нет.

Email уведомления работают.

Сам проект Zabbix-in-Telegram находится на GitHub.

Первое, что надо сделать – это зарегистрироваться в Telegram, поставить клиента Telegram и зайти в него.

Далее мы создадим бота в Telegram для нашего Zabbix сервера. Новые боты создаются через BotFather. Находим BotFather по имени.

Далее даем последовательно команды, т.е например пишем /start и нажимаем кнопку Send.

После того как вы зададите имя, нужно будет еще указать UserName для вашего бота.

Все, бот создан и готов работать.

Далее переходим на Zabbix сервер и устанавливаем Python и PIP (что такое PIP можно почитать на WikiPedia):

$ sudo aptitude install python-pip python-dev build-essential

$ sudo -H pip install –upgrade pip 

$ sudo -H pip install pyopenssl ndg-httpsclient pyasn1

Далее переходим в директорию, из которой Zabbix сервер может запускать внешние скрипты (этот путь прописывается в конфигурационном файле Zabbix сервера /etc/zabbix/zabbix_server.conf):

$ cd /usr/lib/zabbix/alertscripts

И создаем два скрипта в этой директории:

zbxtg.py – скрипт используется для отправки сообщения конкретному человеку

zbxtg_settings.py – тут прописана вся «механика» как взаимодействовать с Telegram

$ sudo touch zbxtg.py

$ sudo touch zbxtg_settings.py

Назначаем на скрипты владельца и группу zabbix. Так как у нас zabbix сервер работает от zabbix пользователя, таких разрешений должно хватить. Делаем скрипты исполняемыми:

$ sudo chown zabbix.zabbix zbxtg.py

$ sudo chown zabbix.zabbix zbxtg_settings.py

$ sudo chmod 554 zbxtg.py

$ sudo chmod 554 zbxtg_settings.py

Далее открываем по порядку ссылки zbxtg.py и zbxtg_settings.py, копируем содержимое соответствующих скриптов и вставляем содержимое во вновь созданные Python скрипты.

Далее настроим “главный” скрипт zbxtg_settings.py.

Нужно изменить два параметра, второй параметр (стрелочка два) опциональный. Первый параметр – это tg_key (Token to access the HTTP API) формируется при создании бота.

Теперь можно проверить работоспособность (запускаем скрипт из папки /usr/lib/zabbix/alertscripts):

$ sudo ./zbxtg.py “<username>” “<message_subject>” “<message_body>” –debug

$ sudo ./zbxtg.py “@aivonin3093” “Test” “Test2” –debug 

Теперь нужно настроить Zabbix сервер.

Создаем media types для Telegram.

Параметр –debug опциональный.

Далее можно создать отдельный Actions для каждого media types или использовать один.

Так как я использую один Actions для всех media types, формат сообщений от zabbix один.

Теперь нужно назначить вновь созданный media types (Telegram) нужному пользователю.

Теперь настроим, чтобы наш бот слал уведомления на чат группу.

Первое, что нужно сделать, это создать чат группу в Telegram и добавить нашего бота в эту чат группу.

Далее добавляем параметр –-group.

На этом настройка оповещение ботом чат группы закончена.

Работу так же можно протестировать из командной строки.

$ sudo ./zbxtg.py “Название вашего чата” “Test” “Test body” –debug –group

На том все!

0 0 голосів
Рейтинг статьи
Підписатися
Сповістити про

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі