Настройка Zabbix 3.2 на Ubuntu Server 16.04 LTS

  • Tutorial
Всем, доброго времени! Довелось недавно настраивать систему мониторинга zabbix. Настраивал в первый раз. Поэтому решил сделать заметку здесь. Примеров на просторах интернета достаточно, но версии обновляются, новые «фичи» появляются.

Цель статьи, чтобы знания были открыты, кому нужно смог ими воспользоваться, а самое главное развитие it сообщества в рунете.

Содержание

  • Установка Zabbix 3.2 на Ubuntu 16.04
  • Настройка LDAP аутентификации AD
  • Установка Zabbix агентов на ОС Linux и ОС Windows

Установка Zabbix 3.2 на Ubuntu 16.04


После чистой установки системы необходимо обновить информацию о репозиториях о обновить пакеты:

sudo apt update && sudo apt upgrade

Далее установим mysql сервер и веб сервер apache ( в процессе нужно придумать пароль для root mysql).

sudo apt install mysql-server mysql-client apache2

Затем переходим в директорию со временными файлами: cd /tmp

Скачаем и установим пакет, который добавит репозиторий для Zabbix сервера, для Ubuntu 16.04 необходимо выбрать версию “xenial”. Пакет скачиваем из офф.сайта.

sudo wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb

Добавим репозиторий zabbix:

sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

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

sudo apt update
cat /etc/apt/sources.list.d/zabbix.list

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

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

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

sudo apt-get -f install

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

mysql -uroot -p

Здесь мы подключились к бд, создаю бд с именем zabbix, дали полные права пользователю zabbix@localhost и установили для этого пользователя пароль.

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix_test';
quit;

Затем необходимо зайти в директорию где лежит скрипт, который создаст структуру для БД. Файл называется create.sql.gz

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

Запустить скрипт (файлов достаточно много в архиве придется подождать)

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

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

DBHost=localhost

Параметры DBName и DBUser будут активны, их трогать не придется.

Идем по пути в файл и редактируем параметры:

sudo vim /etc/zabbix/zabbix_server.conf

Настройки моего конфигураицонного файла:

grep -v '^#\|^$' /etc/zabbix/zabbix_server.conf

image

Также следует создать А-запись для zabbix сервера с отмеченной галочкой PTR. Запускаем Zabbix сервер и смотрим его статус:

sudo systemctl start apache2.service
sudo systemctl status apache2.service

Затем необходимо зайти в конфиг apache и выбрать необходимый часовой пояс. Эти два параметра необходимо раскомментировать из блоков:

<IfModule mod_php5.c>
<IfModule mod_php 7.c>


Название параметра: php_value date.timezone Europe/Minsk

Далее перезагружаем веб-сервер:

sudo systemctl restart apache2.service 


На следующем этапе можно зайти по ip_адрес/zabbix и увидеть веб-интерфейс Zabbix.

Нужно пройти настройку мастера, но я на втором шаге “словил” ошибку. Поэтому нужно установить недостающие пакеты и ребутнуть веб-сервер:

sudo apt install php-mbstring php-bcmath php-xml
sudo systemctl reload apache2.service

Затем снова идем по пути ip_адрес/zabbix, жмем на мастере “next”. Из интересного, нужно указать пароль, который указывали при создании БД mysql, порт оставить по умолчанию, имя хоста оставить либо по умолчанию либо дать как у хоста. Затем проверяются все настройки и мы попадаем на веб-интерфейс управления Zabbix. Системный логин/пароль Admin/zabbix

Настройка LDAP аутентификации AD


Первое, что нужно это создать в пользователя в каталоге Active Directory. Группа у пользователя после создания «Пользователи домена». Этого достаточно для аутентификации на zabbix сервере.

Далее в веб-интерфейсе zabbix создаем точно такого же пользователя как в AD.
“Administration-Users-Create user” добавить в группу Zabbix administrators и установить пароль. Во вкладке “Permission” добавить права Zabbix Super Admin. (Всегда нужно создать пользователя в AD и аналогичного в zabbix).

Затем заходим в Zabbix под созданным пользователем, идем по пути “Administration-Authentification” на вкладку LDAP нужно заполнить поля Bind DN для созданного пользователя (zabbix). Чтобы ничего не перепутать берем значение из оснастки AD. Active Directory Administrative Center (Центр администрирования Active Directory).

Выбрать текущий домен и “пр.кн мыши” -“Свойства”, “Расширения”, “Редактор атрибутов”. Найти атрибут “distinguishedName” и скопировать значения в настройку zabbix поле Bind DN (к примеру example.lan).

image

Когда мы войдем в zabbix от пользователя AD, то стандартный пользователь UserName: Admin Password: zabbix уже не сможет зайти.

Существует ситуации когда домен AD недоступен, LDAP не отвечает и при попытке войти в zabbix будет выводиться сообщение “Login name or password is incorrect”. В такой ситуации необходимо переключатся на внутреннюю аутентификацию zabbix.

Для этого проделываем “пару” действий:

Подключаемся к mysql:

mysql -uroot -p

Выполняем команду которая отключит LDAP аутентификацию и активирует внутреннюю zabbix аутентификацию.Стандартный логин/пароль Admin/zabbix:

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

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


Linux

На моем Linux сервере уже установлен zabbix агент, но для «перфекционизма» я хочу использовать последнюю версию агента. Для просмотра версии zabbix агента выполняем команду:

sudo dpkg -s zabbix-agent

или

sudo aptitude show zabbix-agent

Переходим во временную директорию, скачиваем последнюю версию zabbix и устанавливаем агента:

cd /tmp

wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb

sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
sudo apt update
sudo dpkg -s zabbix-agent
sudo apt install zabbix-agent

Затем настроем конфигурационный файл zabbix. Лично у меня опыт с zabbix не большой и по примеру я брал параметры из статей в разделе мануал и изучал их в официальной документации zabbix. Этих параметров хватило для стабильной работы агента. Проблем с ним не возникало.

sudo vi /etc/zabbix/zabbix_agentd.conf

Необходимо отредактировать следующие параметры:

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
Server=zabbix.example.lan
ServerActive=zabbix.example.lan
Hostname=Ubuntu-server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

Параметры «Server» и «ServerActive» — это полное имя (FQDN) пк, на котором крутится zabbix сервер.

«Hostname» — имя пк на который устанавливаем агента.

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

sudo systemctl restart zabbix-agent.service

Добавим zabbix агент в автозагрузку:

sudo systemctl enable zabbix-agent.service

Настройки Linux хоста на zabbix сервере

В веб-интерфейсе zabbix создаем хост, который будем «мониторить» (скрин расписан по шагам)

image

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

sudo vi /etc/network/interfaces

dns-nameservers 192.168.1.100 # ip_адрес_домена
dns-search example.lan # поисковое_имя_домена


image

*Имя должно совпадать с именем пк в сети.

Далее на вкладке Templates “линкуем” к нашему хосту, стандартный шаблон мониторинга Linux систем и доступу к ssh (по желанию):

image

Затем переходим во вкладку «host» и наблюдаем индикатор zabbix агента, его рабочее состояние отображается в зеленом цвете. Статус должен быть «Enabled». После того как мы применили шаблон, стандартный набор параметров начал мониториться. Их посмотреть можно в настройках хоста вкладка “items” и “triggers”.

Также возможно редактировать «items» и «triggers» удалять или добавлять параметры.

На скриншоте показано рабочее состояние, это означает, что производится мониторинг.

image

Windows

Установим zabbix агент на Windows. В моем случае это Hyper-V Server 2012R2 без Gui.
Агента скачиваем с официального сайта Zabbix, выбрать для платформы Windows.

На консольном Hyper-V у меня установлен бесплатный двухпанельный файловый менеджер Unreal Commander. Поэтому распаковываю архив я с помощью него, затем сохраняю два файла в корень “диска C”:

zabbix_agentd.exe
zabbix_agentd.conf


На начальном этапе конфигурируем Брандмауэр Windows. Следует добавить входящее правило разрешающее подключение к TCP порту 10050. Перехожу к установке агента zabbix и импортирую конфиг.файл:

c:\zabbix_agentd.exe --config c:\zabbix_agentd.conf --install

Затем по аналогии с настройкой агента для Linux вношу необходимые параметры в конфигурационный файл zabbix_agentd.conf

Изменение файла производится с помощью текстового редактора notepad ++.

Если всё прошло успешно, то никаких предупреждений не увидим. Затем нужно запустить службу Zabbix Agent.

В cmd ведем taskmgr и правой кнопкой запустим службу. Аналогично через консоль:

zabbix_agentd.exe -c c:\zabbix_agentd.conf -s

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

c:\zabbix_agentd.exe --config c:\zabbix_agentd.conf --uninstall

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

Русификация Zabbix


Для того, чтобы веб-интерфейс Zabbix отображался на русском языке, необходимо русифицировать консоль (самого Linux сервера, на котором установлен Zabbix).

Просмотр какие установлены локализаций:

sudo locale -a

Просмотр доступных локализаций (относительно русской):

cat /usr/share/i18n/SUPPORTED | grep ru_

Устанавливаю нужную локализацию:

sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo dpkg-reconfigure locales

Перезагрузить apache и выбрать русский язык в веб- интерфейсе Zabbix:

sudo systemctl restart apache2.service


P.S Если будет интересно опишу как прикрутить Telegram к Zabbix.

Ссылки на manual:

Установка и базовая настройка системы мониторинга Zabbix 3.0 LTS на Ubuntu Server 14.04 LTS
Документация Zabbix
Поделиться публикацией

Комментарии 19

    +1
    Давайте сразу телеграм прикручивать.
      0
      Поддерживаю за телеграм.
        0

        Zabbix in Telegram от Ильи Аблеева. Обычный alertscript.

        +5
        Да, давайте на хабр напишем стопицотую статью по заббиксу, коих в интернете валом.
        Настройка телеграма делается в 3-5 шагов.
          0
          Телеграм не интересно. В гугле 100 и 1 скрипт лежит, бери и пользуй. А вот автоматические звонки было бы интересно увидеть.
            0
            У нас есть скрипты для смс(через сип и смс центр) и звонков через сип. Загуглите, должно где то валятся на гихабе.
          +1
          Примеров на просторах интернета достаточно, но версии обновляются, новые «фичи» появляются.

          Именно поэтому существует официальная документация, которая регулярно обновляется, причем у Zabbix она довольно неплохая и даже на нескольких языках.
            +3
            Да когда же это прекратится? Тема с единственной ссылкой на документацию и то была бы полезнее, накипело
              0
              Может сразу в эту статью и про Telegram добавите?
                0
                Статья и так габаритная получилась, да и у хабра символы заканчиваются.
                0

                Давно хотел что-нибудь написать на хабре, но зарегистрировался ради этого:
                Такой инсталл уже два раза делал, достаточно гуглануть. Установить zabbix занимает ничего, а вот что с ним дальше делать это самое интересное и никто это особо не пишет.
                AD для одного, двух админов зачем прикручивать?

                  0
                  AD- это хороший тон. Все учетки собраны в одном месте, главное, имеет место, если он есть (AD).
                  Главное с чего-то начать. Когда будет установлен zabbix, пойдет следующая задача, к примеру потеря пакетов или мониторинг параметра smart из HDD или же службу сквида. Но этих мануалов еще больше, чем настройки самого zabbix.
                  А так как тут публика «обкакивает» все, что уже когда либо (еще на динозаврах) делалось, то вряд ли кто-то будет делать описание мониторинга не тривиальной службы в пять действий.
                  Хотя хабр, это свободный блог, так сказать для этого и работает. «Для русскоязычного развития». Но к сожалению тут у некоторых другое мнение, поэтому люди и ведут свои блоги.
                    0
                    В этом и проблема, что мониторинг смарт делали на динозаврах и не в 5 действий и 100% рабочих решений в первых ссылках гугла не видно.
                    Ещё интересен момент как разделить получателей оповещений по почте, чтобы разные триггеры разным адресатам отправляли.
                  +1
                  Всем кто пишет, что статья обмусоливает всем известную информацию: я понимаю что это можно все узнать из официального мануала, но живой текст с примесью личного опыта и инструментов автора мне лично читать просто интереснее, чем сухой мануал. Прочитал статью только из-за этого интереса, а не потому что я планирую разворачивать забикс. Спасибо.
                    +2
                    cd /tmp
                    sudo wget ...

                    нафига ?


                    cd /usr/share/doc/zabbix-server-mysql
                    sudo zcat create.sql.gz ....

                    нафига ???


                    Встречаются случаи, когда возникает ошибка с зависимостями.
                    sudo apt-get -f install

                    На продуктовом сервере такого быть не может)
                    Либо система "нечистая", либо не те репы подключены, далее надо аккуратно выяснить в чем проблема:
                    dpkg -I /tmp/your_pkg.deb| grep Depends


                    sudo vim /etc/zabbix/zabbix_server.conf
                    sudo vi /etc/zabbix/zabbix_agentd.conf

                    ммм… "Списывание с одного источника — плагиат, списывание с двух — компиляция, с трех и более — диссертация." ®


                    mysql -uroot -p

                    а как же mysql_secure_installation ?


                    Для того, чтобы веб-интерфейс Zabbix отображался на русском языке,
                    необходимо русифицировать консоль
                    (самого Linux сервера, на котором установлен Zabbix).

                    Консоль??? Русифицировать!!! Да Вы еб… сь сударь!
                    поверьте, этого достаточно:


                    sudo locale-gen ru_RU.UTF-8
                    sudo systemctl apache2/httpd/php5-fpm restart

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

                    Что это делает на хабре ))) ???

                      0
                      Спасибо за статью, было интересно почитать.
                        0
                        Спасибо за статью.
                        Я только начал изучать zabbix, и вот хочу ввести его у себя на работе.
                        Самый простой вариант. это виртуалка Zabbix appliance. Там 3.2 версия на Ubuntu 14.04.
                        Можно же её использовать? Или лучше установить всё самому на ubuntu 16.04?
                        У меня в парке около 10 серверов Windows Server 2012 R2, и несколько серверов на Ubuntu server 16.04 и на Arch Linux. Пойдет для этого Zabbix Appliance?
                          0
                          Я начинал изучение с установки всего с самого начала.
                            0
                            Как по мне, так лучше начать изучение сразу с настройки zabbix. А тратить время на установку, не хочется. Хотя по такой инструкции не думаю что большая проблема.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.