Всем, доброго времени!
Довелось недавно настраивать систему мониторинга 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
Также следует создать А-запись для 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)
Когда мы войдем в 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 создаем хост, который будем «мониторить» (скрин расписан по шагам)
Указываем его имя и добавляем в нужную группу. Хост я указываю по DNS имени, так как на хосте Zabbix у меня корректно настроены параметры для взаимодействия с внутренней DNS инфраструктурой. Если у вас есть домен и настроен DNS, то вам следует в конфигурационный файл сетевых настроек добавить две записи.
sudo vi /etc/network/interfaces
dns-nameservers 192.168.1.100 # ip_адрес_домена
dns-search example.lan # поисковое_имя_домена
*Имя должно совпадать с именем пк в сети.
Далее на вкладке Templates “линкуем” к нашему хосту, стандартный шаблон мониторинга Linux систем и доступу к ssh (по желанию):
Затем переходим во вкладку «host» и наблюдаем индикатор zabbix агента, его рабочее состояние отображается в зеленом цвете. Статус должен быть «Enabled». После того как мы применили шаблон, стандартный набор параметров начал мониториться. Их посмотреть можно в настройках хоста вкладка “items” и “triggers”.
Также возможно редактировать «items» и «triggers» удалять или добавлять параметры.
На скриншоте показано рабочее состояние, это означает, что производится мониторинг.
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
Автор: rick1211