Home » Linux » Debian » Установка и настройка Zabbix 3.4 на Debian 9

Установка и настройка Zabbix 3.4 на Debian 9

22 августа 2017 года вышла новая версия бесплатной системы мониторинга, которую я регулярно использую. Я подробно расскажу об установке и начальной настройке Zabbix 3.4 на примере Debian 9 со скриншотами и пояснениями. В этой версии будут несколько очень интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.

Обращаю внимание, что данная статья устарела. Вышла новая версия заббикс. Читайте статью по установке и настройке zabbix 4.0. Если вам все же необходима версия именно 3.4, то можете использовать данный материал.

Введение

О наиболее важных изменениях версии 3.4 я уже рассказывал в материале по обновлению zabbix 3.2 до 3.4, можно ознакомиться.

По большому счету, в версии 3.4 принципиальных изменений в установке и настройке zabbix не произошло, можно пользоваться предыдущими инструкциями. Но для упрощения себе и остальным жизни, я все же напишу подробную инструкцию, где все ссылки будут актуальны, чтобы все можно было повторить в минимально короткий срок простым копипастом. Сам я часто устанавливаю систему мониторинга zabbix, так как считаю ее наиболее функциональной и удобной в использовании.

Приступим к установке и настройке последней версии zabbix 3.4 на сервер с Debian 9.

Подготовка сервера к установке

Начинаем традиционно с подготовки рабочего окружения. Первым делом нам необходимо установить и настроить сервер Debian 9. Дальше нам нужно настроить web сервер для работы интерфейса управления. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал по установке zabbix на nginx и php-fpm.

Начнем с обновления системы:

# apt update && apt upgrade

Работа будет проходить на следующей версии Debian:

Версия сервера 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
Более подробную информацию о настройке сервера баз данных mysql для работы заббикс сервера, а так же информацию по оптимизации нагруженной базы данных смотрите в отдельной статье — очистка, оптимизация, настройка mysql базы 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. Нас встречает страница приветствия. Если у вас то же самое, вы на верном пути.

Установка zabbix 3.4 на Debian 9

Жмем Next step и попадаем на страницу проверок. Если все делали точно по инструкции, то все проверки у вас будут пройдены.

Проверка системных требований

Двигаемся дальше и указываем параметры для подключения к mysql. Данные те же, что мы указывали ранее при создании БД и пользователя.

Подключение в базе данных

На следующем этапе надо указать адрес сервера и порт, на котором он будет работать. Оставляем значения по-умолчанию.

Дополнительные параметры сервера

Еше раз проверяем все настройки. Если все в порядке, двигаемся дальше на заключительный этап установки.

Проверка настроек

Если поучили это сообщение, то поздравляю, установка сервера мониторинга Zabbix 3.4 закончена.

Завершение установки заббикса

Нажимаете Finish и попадаете на страницу логина в систему. Данные по умолчанию следующие:

Пользователь Admin
Пароль zabbix

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

Главная страница сервера мониторинга

Сбор данных мы настроим чуть позже, установив zabbix агент на этот же сервер. А пока сделаем некоторые минимальные и необходимые настройки на сервере.

Настройка email оповещений

В версии 3.4 (появилась с версии 3.0) есть настройка уведомлений с авторизацией по smtp. Раньше для реализации такой очевидной и необходимой функции приходилось пользоваться сторонними программами и скриптами. Я писал отдельно об этом — отправка email уведомлений с авторизацией smtp. Теперь все это в прошлом. Настроим отправку уведомлений через web интерфейс.

Идем в раздел Administration -> Media types и нажимаем на Email.

Настройка емейл оповещений

Указываем следующие настройки для отправки почты через gmail.

Параметры отправки через gmail

Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения. Для этого идем в Administration -> Users, выбираем пользователя Admin.

Настройка администратора заббикс

Идем в закладку Media и жмем Add.

Добавление почтового ящика

Указываем почтовый ящик получателя уведомлений.

Добавление почтового ящика администратора

Жмем Add, затем Update. Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Configuration -> Actions и жмем на Disabled, чтобы она стала Enabled.

Активация отправки уведомлений

Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.

Если вам нужны оповещения в telegram, то читайте отдельную статью на эту тему.

Установка 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.

Проверка оповещений в zabbix

При наведении мышки на слово 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 agent на windows

Открываем файл 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 и запускаем ее.

Запуск службы zabbix в windows

Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.

  • Тип правила: Для порта;
  • Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
  • Действие: Разрешить подключение;
  • Профиль (ставим галочки): Доменный, Частный, Публичный;
  • Имя: Zabbix Agent;

Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Configuration -> Hosts и жмем Create host.

Добавление windows хоста в заббикс сервер

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

Параметры нового хоста

Потом переходим на вкладку Templates и нажимаем Select. Выбираем шаблон Template OS Windows и жмем маленькую ссылку Add, затем большую.

Назначение шаблона

Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Latest data, выбрав новый хост.

Проверка мониторинга windows хоста

На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

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

На этом установка и базовая настройка сервера мониторинга zabbix 3.4 на сервере под управлением ОС Debian 9 завершена. Советы, замечания, исправления прошу оставлять в комментариях.

Помогла статья? Есть возможность отблагодарить автора

34 комментария

  1. Жду статью, как прикрутить мониторинг smart дисков на windows компах.

    • Вряд ли дождетсь 🙂 У меня практически нет виндовых серверов на голом железе. Не очень актуальная для меня тема, но я подумаю. Может для полноты картины напишу.

  2. Аноним

    Доброго.

    http://valynkin.ru/monitoring-smart-zhestkih-diskov-v-windows-pri-pomoshi-zabbix.html

    P.s. Статья ваша — хороша. Наглядна. Но снова апач, пхп5 и т.д. Я поднимал на связке nginx+php7.x+redis cache. Значительно шустрее.

    • Аноним

      Есть где-нибудь гайд по установке nginx+php7.x+redis cache + postgresql ?
      Буду очень благодарен.

      • Я искал, но не нашел инфы как redis к заббиксу прикрутить. Мне, правда, не сильно надо было, больше из любопытства.

        • Аноним

          Ну вот и я не увидел. Если он что-то и умеет кешировать, то он должен это уметь на уровне кода.

          • Да, в том то и дело, что если я правильно понимаю работу redis, нужна правка исходников заббикса, чтобы он с ним заработал. Это не должно быть сложно, несколько строк по идее, но тем не менее это надо сделать в нужно месте.

  3. Доброго времени суток, наверно (я так думаю) не «»apt install mysql-server mysql-client»» а «»apt install mariadb-server mariadb-client mariadb-common»» будит по приятнее, статья просто «огонь» да и сам сайт !!!!

  4. Спасибо за Ваш труд. Интересно читать и приминять на практике Ваш опыт.

  5. Дошел до момента когда надо открывать в браузере web интерфейс zabbix. Дальше видимо что то еще надо настроить, потому что не открывается web интерфейс. На сервере настроен nginx как reverse proxy для apache, плюс для сайта настройл и Lets Encript сертификаты. iptables отключен.

    • Очевидно, что надо настроить правильно алиас для /zabbix. Раз настройки web сервера кастомные, то надо самому разбираться и настраивать в соответствии со своими реалиями.

  6. Сергей

    Гугл наконец меня понял и выдал по запросу что нужно. Спасибо огромное, за отличную статью/инструкцию, нужно будет ознакомиться с остальными материалами на Вашем сайте.

  7. Аноним

    Спасибо, установил по этой инструкции на Raspberri pi 3 .

  8. Михаил

    Коллеги, вопрос о mariaDB который на версии Debian 9 + (а у меня сразу обновился до 9.4) Смена места хранения БД, к сожалению файл my.cnf не имеет datadir и как делать… в общем гугл и яндекс ничего путного не подсказывают, что не крути. А в дефолтном /var/lin/mysql/ хранить не вариант.

    Как быть подскажите.

    • Я просто переношу директорию с базами в нужное место, а в /var/lib/mysql делаю символьную ссылку. И конфиги трогать не надо вообще. Главное не забыть сделать права для пользователя mysql до нового места.

      • Михаил

        Вроде бы не плохой вариант. Не нашел ничего, в итоге переустановил всю систему, она того уже просила. Жаль придется добавлять узлы заново.

        Сейчас бороться пытаюсь с уведомлением на почту и как указанно в гайде, увы не получается вылетает login denied

        • Login denied скорее выходит из-за настроек безопасности gmail, надо включить доступ для ненадежных приложений.

  9. Михаил

    Коллеги есть проблема с отправкой emaila Failure when receiving data from the peer что 465 что 587 порты и протокол меняю остается проблема. Отправка через yandex.ru идёт, не могу разобраться с чем проблема. Находил кто решение?

  10. Спасибо за хорошую статью!
    Хотелось также увидеть в этой статье пару слов об установке и дополнительной настройке веб-сервера Apache на Debian 9, которые могут понадобиться для установки и настройки самого Zabbix!

    • Алексей

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

    • Там не надо ничего настраивать. Все работает из коробки. Zabbix свой конфиг апача предоставляет во время установки.

  11. Доброго дня! Дошёл до момента apt install zabbix-server-mysql zabbix-frontend-php, система говорит, что у вас отложены битые пакеты. Такое ощущение, что репозиторий какой-то не добавлен, хотя в /etc/apt/sources.list.d/zabbix.list есть репозитории и обновлял apt update. Что может быть не так?

  12. Прошу автора немного дополнить раздел данной статьи «Установка zabbix-агент на Windows и настройка мониторинга» перед абзацем: «Чтобы работал мониторинг Windows-машины…» следующим текстом:
    Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.

    Тип правила: Для порта;
    Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
    Действие: Разрешить подключение;
    Профиль (ставим галочки): Доменный, Частный, Публичный;
    Имя: Zabbix Agent;

    Для новичков будет в самый раз 🙂
    Спасибо!

  13. Также прошу автора дополнить данную статью еще одним примечанием. После слов: «Открываем конфиг и раскомментируем строки, изменив под свой часовой пояс.
    # mcedit /etc/zabbix/apache.conf
    php_value date.timezone Europe/Moscow»

    Добавить следующий текст:
    «Здесь следует обратить особое внимание на то, что в данном файле присутствуют две строки, отвечающие за часовые зоны, но находятся в разных блоках, каждый из которых предназначен для своей версии PHP (PHP 5.х и PHP 7.х соответственно). Учитывая то, что в Debian 9 по умолчанию устанавливается 7-я версия PHP, то редактировать нужно именно строку, которая находится в блоке под !!!

  14. Сергйе

    Здравствуйте, а не подскажите как менять внешний вид приходящих писем от zabbixa, чтобы было нагляднее и информативнее? Спасибо.

    • Настройка -> Действия.
      Там по-умолчанию есть шаблон действия для всех триггеров. Вы можете его изменить, либо добавить свои.

      • Сергей

        Да, конечно, это я знаю. Но как изменить именно внешний вид присылаемого сообщения, например, как у вас статья про телеграмм, чтобы графики прилетали, только на почту а не телеграмму, шрифт изменить цвета добавить и т.д. короче визуализировать сообщения приходящие от Z. Спасибо

        • Это не знаю как делать, не занимался никогда. Нужно шаблоны менять, свои делать. В телеграмм оповещения шлет сторонний скрипт, который берет данные из базы и на основе их формирует сообщение.

  15. Аноним

    ок. спасибо

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.