Установка и настройка Zabbix 3.4 на Debian 9
По большому счету, в версии 3.4 принципиальных изменений в установке и настройке zabbix не произошло, можно пользоваться предыдущими инструкциями. Но для упрощения себе и остальным жизни, я все же напишу подробную инструкцию, где все ссылки будут актуальны, чтобы все можно было повторить в минимально короткий срок простым копипастом. Сам я часто устанавливаю систему мониторинга zabbix, так как считаю ее наиболее функциональной и удобной в использовании.
Приступим к установке и настройке последней версии zabbix 3.4 на сервер с Debian 9.
Подготовка сервера к установке
Начинаем традиционно с подготовки рабочего окружения. Первым делом нам необходимо установить и настроить сервер Debian 9. Дальше нам нужно настроить web сервер для работы интерфейса управления. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php.
Начнем с обновления системы:
# apt update && apt upgrade
Работа будет проходить на следующей версии Debian:
Теперь установим mysql server — mariadb. Он необходим для хранения всей информации, которую использует zabbix.На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 и Debian, начиная с 9-й предлагают ее как сервер баз данных по-умолчанию.
# apt install mysql-server mysql-client
Запускаем mariadb и добавляем ее в автозагрузку:
# systemctl start mariadb # systemctl enable mariadb.service
Запускаем скрипт первоначальной настройки mysql:
# /usr/bin/mysql_secure_installation
Все подготовительные работы выполнены, двигаемся дальше.
Установка сервера Zabbix 3.4 на Debian 9
Подключаем официальный репозиторий 3.4 для Debian 9 Stretch:
# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb # dpkg -i zabbix-release_3.4-1+stretch_all.deb # apt update
Устанавливаем Zabbix сервер с веб-интерфейсом и с базой данных MySQL:
# apt install zabbix-server-mysql zabbix-frontend-php
Дожидаемся окончания загрузки всех зависимостей. После этого нужно создать пользователя и базу данных для мониторинга. Если вы ранее настраивали отдельно web сервер и у вас установлен phpmyadmin, можете сделать это через него. Если у вас его нет, то делаем все через консоль.
# mysql -uroot -ptopsecret > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@localhost identified by 'zabpassword';
topsecret | пароль пользователя root mysql, это не системный root |
zabpassword | пароль пользователя zabbix, у которого полный доступ к базе mysql zabbix |
Выходим из консоли mysql, набирая exit.
Теперь импортируем схему БД и начальные данные.
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uroot -ptopsecret zabbix
Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД.
# mcedit /etc/zabbix/zabbix_server.conf
Изменяем строки:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabpassword
Этих минимальных настроек достаточно для работы сервера. Но я рекомендую еще увеличить параметр Timeout. Он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. По дефолту стоит 3 секунды. Иногда этого бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.
Запускаем zabbix и добавляем в автозагрузку.
# systemctl start zabbix-server # systemctl enable zabbix-server
Проверяем лог файл на наличие ошибок.
# cat /var/log/zabbix/zabbix_server.log
Если получаете целую кучу ошибок примерно такого вида
Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutNumLines ::= { nsExtendOutput1Entry 3 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutputFull ::= { nsExtendOutput1Entry 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput1Line ::= { nsExtendOutput1Entry 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutLine ::= { nsExtendOutput2Entry 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendLineIndex ::= { nsExtendOutput2Entry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyStart ::= { netSnmpNotifications 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyShutdown ::= { netSnmpNotifications 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyRestart ::= { netSnmpNotifications 3 } Cannot adopt OID in UCD-SNMP-MIB: laErrMessage ::= { laEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: laErrorFlag ::= { laEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: laLoadFloat ::= { laEntry 6 } Cannot adopt OID in UCD-SNMP-MIB: laLoadInt ::= { laEntry 5 } Cannot adopt OID in UCD-SNMP-MIB: laConfig ::= { laEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: laLoad ::= { laEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: laNames ::= { laEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: laIndex ::= { laEntry 1 }
То следует установить пакет snmp-mibs-downloader. Для этого надо добавить non-free репозиторий. Чтобы это сделать, отредактируйте файл /etc/apt/sources.list, добавив к стандартному репозиторию дополнительный non-free.
deb http://mirror.yandex.ru/debian/ stretch main non-free deb-src http://mirror.yandex.ru/debian/ stretch main non-free
Обновляем список пакетов и устанавливаем необходимый.
# apt update && apt install snmp-mibs-downloader
Перезапускаем zabbix-server и проверяем лог.
# systemctl restart zabbix-server
Теперь все в порядке.
Для продолжения настройки сервера мониторинга, нам нужно зайти в web интерфейс. Перед этим отредактируем файл конфигурации web сервера. Открываем конфиг и раскомментируем строки, изменив под свой часовой пояс.
# mcedit /etc/zabbix/apache.conf php_value date.timezone Europe/Moscow
Сохраняем файл. Теперь перезапускаем apache и добавляем его в автозагрузку.
# systemctl restart apache2 # systemctl enable apache2
Можно заходить на веб интерфейс по адресу http://10.1.4.81/zabbix, где 10.1.4.81 ip адрес сервера, где устанавливаем и настраиваем мониторинг заббикс.На этом этапе важно проверить настройки iptables. Если вы его не настраивали и не отключали, то скорее всего по указанному адресу у вас ничего не откроется. В данной статье я не буду отвлекаться на настройку фаервола, это тема отдельного разговора. Подробно вопрос настройки iptables я рассмотрел отдельно. Либо настройте firewall, либо просто отключите.
Открываем в браузере web интерфейс zabbix. Нас встречает страница приветствия. Если у вас то же самое, вы на верном пути.
Жмем Next step и попадаем на страницу проверок. Если все делали точно по инструкции, то все проверки у вас будут пройдены.
Двигаемся дальше и указываем параметры для подключения к mysql. Данные те же, что мы указывали ранее при создании БД и пользователя.
На следующем этапе надо указать адрес сервера и порт, на котором он будет работать. Оставляем значения по-умолчанию.
Еше раз проверяем все настройки. Если все в порядке, двигаемся дальше на заключительный этап установки.
Если поучили это сообщение, то поздравляю, установка сервера мониторинга Zabbix 3.4 закончена.
Нажимаете Finish и попадаете на страницу логина в систему. Данные по умолчанию следующие:
Пользователь | Admin |
Пароль | zabbix |
Нас встречает голая панель управления, так как никаких параметров мы не наблюдаем и не имеем ни одного объекта сбора данных.
Сбор данных мы настроим чуть позже, установив zabbix агент на этот же сервер. А пока сделаем некоторые минимальные и необходимые настройки на сервере.
Настройка email оповещений
В версии 3.4 (появилась с версии 3.0) есть настройка уведомлений с авторизацией по smtp. Раньше для реализации такой очевидной и необходимой функции приходилось пользоваться сторонними программами и скриптами. Теперь все это в прошлом. Настроим отправку уведомлений через web интерфейс.
Идем в раздел Administration -> Media types и нажимаем на Email.
Указываем следующие настройки для отправки почты через gmail.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения. Для этого идем в Administration -> Users, выбираем пользователя Admin.
Идем в закладку Media и жмем Add.
Указываем почтовый ящик получателя уведомлений.
Жмем Add, затем Update. Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Configuration -> Actions и жмем на Disabled, чтобы она стала Enabled.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.
Установка zabbix agent
Установим теперь хотя бы один агент мониторинга, чтобы проверить работу системы. Устанавливать будем на этот же сервер. Делается это просто:
# apt install zabbix-agent
Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на удаленную машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:
# mcedit /etc/zabbix/zabbix_agentd.conf
Server=10.1.4.81 ServerActive=10.1.4.81 Hostname=web-server # имя вашего узла мониторинга, которое будет указано на сервере zabbix
Запускаем агент и добавляем в автозагрузку:
# systemctl start zabbix-agent # systemctl enable zabbix-agent
Проверяем лог файл.
# cat /var/log/zabbix/zabbix_agentd.log 21197:20150912:212555.935 no active checks on server [127.0.0.1:10051]: host [Zabbix server] not monitored
У меня там следующая ошибка. Я знаю с чем она связана. На сервере по-умолчанию уже добавлен локальный host для мониторинга, но он отключен. Чтобы его включить, идем в раздел Configuration -> Hosts и активируем Zabbix server нажатием на Disabled, чтобы он стал Enabled.
Можно подождать, либо вручную перезапустить агент, чтобы сразу проверить изменения:
# systemctl restart zabbix-agent
Для надежности, проверяем еще раз лог файл на наличие ошибок. Их быть не должно. Агент заработал и начал отправлять данные на сервер. Чтобы проверить поступление данных, надо подождать пару минут и идти в раздел Monitoring -> Latest data. Выбрать там наш единственный хост и нажать Apply.
Видно, что данные уже начали поступать.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
# systemctl stop zabbix-agent
Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем Dashboard, виджет Problems.
При наведении мышки на слово Done в столбце Actions вы увидите информацию о том, что оповещение по email было отправлено пользователю Admin. На почте у вас будет письмо:
После возобновления работы агента на debian, вы еще раз получите уведомление о том, что он теперь доступен.
Установка zabbix агент на Windows и настройка мониторинга
Теперь для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок http://www.zabbix.com/download.php и скачиваем самый последний агент для Windows. Все агенты находятся в разделе Zabbix pre-compiled agents. Прямая ссылка на последнюю версию на момент написания статьи — zabbix_agents_3.4.0.win.zip
Распаковываем архив. Создаем на диске С: папку zabbix и копируем туда следующие файлы:
- zabbix_agentd.exe
- zabbix_get.exe
- zabbix_sender.exe
- zabbix_agentd.win.conf
Исполняемые файлы берите той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:
c:/zabbix/zabbix_agentd.exe --config c:/zabbix/zabbix_agentd.win.conf --install
Открываем файл zabbix_agentd.win.conf любым текстовым редактором и изменяем следующие параметры:
LogFile=c:\zabbix\zabbix_agentd.log Server=10.1.4.81 ServerActive=10.1.4.81 Hostname=win7-01
Теперь открываем оснастку со службами, ищем службу с именем Zabbix agent и запускаем ее.
Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.
- Тип правила: Для порта;
- Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
- Действие: Разрешить подключение;
- Профиль (ставим галочки): Доменный, Частный, Публичный;
- Имя: Zabbix Agent;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Configuration -> Hosts и жмем Create host.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладку Templates и нажимаем Select. Выбираем шаблон Template OS Windows и жмем маленькую ссылку Add, затем большую.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Latest data, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.