Установка и настройка Zabbix
Homepage: Zabbix
Zabbix - это свободная система мониторинга и отслеживания статусов компьютерной сети, облачных ресурсов, сервисов, приложений, серверов и сетевого оборудования в реальном времени. Zabbix — полноценное решение для мониторинга крупных компьютерных сетей, был разработан Алексеем Владишевым при активной поддержке Zabbix SIA. Zabbix умеет находить все типы сетевых устройств используя различные методы, проверять состояние оборудования и приложений, отправлять заданные сообщения о тревоге и визуализировать сложные взаимосвязи. Он основан на модели клиент-сервер и способен отслеживать миллионы показателей, таких как загрузка ЦП, использование сети и потребление дискового пространства десятками тысяч серверов.
Кампания Zabbix регулярно проводит бесплатные вебинары о решениях мониторинга, так же вы можете пройти платные курсы сертификации. Эта подборка статей поможет начать самостоятельное изучение Zabbix 5 и выше.
Возможности Zabbix 5
Более подробно вы можете изучить возможности на официальном сайте Что нового в Zabbix 5.0 LTS. Я хочу отметить важные для меня возможности:
- Zabbix можно развернуть локально или в облаке
- Реализована одна и та же политика источника для iframe, что означает, что Zabbix веб-интерфейс нельзя поместить во фреймы на другом домене
- Переписан Zabbix Agent с поддержкой плагинов и сохранением состояния
- Обнаружение счетчиков JMX (Java расширений управления)
- Обнаружение счетчиков производительности Windows
- Встроенная интеграция с системами ITSM (IT Service Management) - управление IT- услугами. Zabbix 5 представляет набор готовых интеграций со стандартными облачными и локальными системами ITSM: Jira, OTRS, Redmine, Zendesk, Zammad, Servicenow.
- Встроенные интеграции с системами оповещений: XMPP (Jabber), Telegram, Slack, Mattermost, Msteams, Victorops, PagerDuty, OpsGenie.
- Добавлены новые шаблоны и плагины для мониторинга различных сервисов, приложений и устройств. Большинство шаблонов теперь используют дополнительные возможности для автоматического обнаружения различных ресурсов. Из коробки существуют шаблоны Zabbix для ClickHouse, MySQL, nginx, Redis, PostgreSQL, Haproxy, Memcached, Elasticsearch.
- Возможность сброса SNMP кэша, изменений контекста SNMPv3
Шаблоны Zabbix в версии 5 стали более сложными с кучей макросов и автообнаружений.
Системные требования Zabbix 5.2 и выше
- Операционный системы CentOS, Ubuntu. С другими дистрибутивами, например Debian могут возникнуть проблемы - отсутствие нужных библиотек.
- Минимально поддерживаемая версия PHP теперь 7.2.5, лучше PHP 7.4
- Расширение PHP GD 2.0.28 или более поздняя, должно поддерживать формат PNG (–with-png-dir), JPEG (–with-jpeg-dir) изображения и FreeType 2 (–with-freetype-dir).
- В конфигурации Zabbix для мониторинга до 500 устройств рекомендуется CPU 2 ядра ОЗУ 2ГБ. По ссылке я тестировал виртуальные сервера ТОП Хостингов VPS/VDS для Zabbix - рекомендую.
Шаг 1 - Предварительные требования
Должны быть выполнены предварительные требования по настройке вашего Linux дистрибутива, в моем случае Ubuntu 20.04.1 LTS Focal.
Очень важно иметь точную дату и время системы на сервере с запущенным Zabbix. ntpd один из наиболее популярных демонов синхронизации времени хоста с временем на остальных серверах. Настоятельно рекомендуется поддерживать синхронизированное время на всех системах, где работают Zabbix компоненты.
Шаг 2 — Подключение официального репозитория Zabbix и исправление ошибок:)
В этом руководстве я буду объяснить, как установить сервер Zabbix в системе Ubuntu 20.04 LTS.
Zabbix доступен в репозиториях пакетов Ubuntu, но я рекомендую использовать официальный репозиторий Zabbix. Для подключения официальных репозиториев вам нужно перейти на страницу загрузки Zabbix и выбрать вашу конфигурацию. Моя конфигурация на скриншоте:
После выбора конфигурации - ниже появятся команды для подключения репозитория, в моем случае такие:
# wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb # dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb # apt update
И здесь бабамс!!!
Получаем ошибку: N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://repo.zabbix.com/zabbix/5.2/ubuntu focal InRelease' doesn't support architecture 'i386'
Самое интересное изучил штук 7 руководств по установке Zabbix 5 на Ubuntu и нигде такой ошибки нет! Вопрос, а кто в интернете пишет эти руководства, на том же digitalocean и других гуру администрирования, это копипаст какой-то?!! Ладно как всегда иду на новозеландские англоязычные форумы и нахожу ответ не по Заббиксу, но решение проблемы понятно. Кому интересно это связано с мультиархитектурностью ядра Linux и поддержкой одновременно приложений i386 и amd64. Ниже команды для анализа вашего сервера по поддержке 32 и 64:
root@zab:/# dpkg --print-foreign-architectures i386 root@zab:/# dpkg --print-architecture amd64
Вот команда для удаления мульти-архитектуры (только если у вас нет 32-битных приложений), но запускать ее не надо. Я ее указал просто для полного раскрытие этой ошибки.
sudo dpkg --remove-architecture i386
РЕШЕНИЕ: Правим файл /etc/apt/sources.list.d/zabbix.list, который нам установила команда dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb и добавляем ключ [arch=amd64]. Мой измененный файл:
deb [arch=amd64] http://repo.zabbix.com/zabbix/5.2/ubuntu focal main deb-src [arch=amd64] http://repo.zabbix.com/zabbix/5.2/ubuntu focal main
И снова запускаем
# apt update
Всё, ошибки нет!
Шаг 3 — Установка LAMP
Ставим стандартно LAMP: Apache и MySQL.
sudo apt install apache2 libapache2-mod-php sudo apt install mysql-server sudo apt install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql
Настраиваем пароль и безопасность сервера MySQL:
sudo mysql_secure_installation
Шаг 4 — Установка Zabbix сервер, веб-интерфейс и агент
После добавления репозитория Apt установим пакеты сервера Zabbix, где пакет zabbix-server-mysql включает Zabbix сервер с поддержкой MySQL, пакет zabbix-frontend-php предоставляет веб-интерфейс для Zabbix сервера.
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Шаг 5 — Настройка базы данных MySQL для Zabbix
Импортируем схему базы данных для Zabbix сервера. Логинемся на сервер MySQL с учетной записью root и создаем базу данных MySQL и пользователя с помощью следующих команд.
# mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit;
Импорт начальной схему и данных Заббикс производим от пользователя MySQL созданного выше.
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix Enter password:
Настроим подключение Заббикса к базе данных, для это следует отредактировать файл /etc/zabbix/zabbix_server.conf и задать пароль для подключения к MySQL. Остальные 3 параметра уже настроены, если вы конечно не извращались с именем пользователя и базы данных.
DBPassword=password DBHost=localhost DBName=zabbix DBUser=zabbix
Шаг 6 — Автозапуск Zabbix и Apache
Добавляем в автозагрузку и запускаем процессы Zabbix сервера, агента и вебсервера Apache.
systemctl enable zabbix-server zabbix-agent apache2 systemctl restart zabbix-server zabbix-agent apache2
Система установлена, дальнейшая настройка через веб-установщик Zabbix, по адресу:
http://your_ip/zabbix/
Шаг 7 — Настройка PHP 7 под требования Zabbix
Почти во всех руководствах по настройке PHP идет глупый копипаст На самом деле кроме часового пояса не надо ничего менять. Разработчики Zabbix за вас уже всё сделали в файле /etc/zabbix/apache.conf.
В файле конфигурации PHP /etc/php/7.4/apache2/php.ini и /etc/zabbix/apache.conf меняем часовой пояс в соответствии с вашими требованиями. Обязательно сделайте копию php.ini.
cp /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.orig
Кроме часового пояса - ничего НЕ трогайте в php.ini и apache.conf.
date.timezone = 'Europe/Kiev'
Шаг 8 — Настройка брандмауэра для Zabbix
В этом случае я использую UFW, вы должны были на первом шаге его настроить первоначальная настройка сетевого фильтра. Далее нам нужно разрешить порты протокола HTTP, HTTPS и зарезервированные порты для работы с Zabbix агентами.
Проверяем есть ли строки в файле services, если нет дописываем
# cat /etc/services | grep Zabbix zabbix-agent 10050/tcp # Zabbix Agent zabbix-agent 10050/udp # Zabbix Agent zabbix-trapper 10051/tcp # Zabbix Trapper zabbix-trapper 10051/udp # Zabbix Trapper
Команды для UFW
$ sudo ufw allow 'Apache Full' $ sudo ufw allow 10050 $ sudo ufw allow 10051
В итоге должна получится такая настройка фаервола:
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp (OpenSSH) ALLOW IN Anywhere 80,443/tcp (Apache Full) ALLOW IN Anywhere 10050 ALLOW IN Anywhere 10051 ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6) 80,443/tcp (Apache Full (v6)) ALLOW IN Anywhere (v6) 10050 (v6) ALLOW IN Anywhere (v6) 10051 (v6) ALLOW IN Anywhere (v6)
Шаг 9 — SSL сертификат (опционально)
Есть хорошие правила, которые позволяют настраивать безопасно и не попадать на деньги:
- Первое правило: НЕ существует 32 битных операционных систем, а только 64.
- Второе правило: НЕ существует протокола HTTP, а только HTTPS.
Моя настоятельная рекомендация установить SSL сертификат на Веб интерфейс управления Заббикс, воспользуйтесь этой инструкцией. Там же вы увидите как быстро и правильно создать виртуальный домен Apache с поддержкой HTTP, HTTPS.
Шаг 10 — Запуск веб-установщика Zabbix 5
Откройте
http://имя хоста или IP-адрес Zabbix сервера/zabbix/
(в моем случае будет конечно https), чтобы начать первоначальную настройку Zabbix.
Жмем Next - проверяем зависимости PHP, если все колонки OK - жмем Next. На странице Configure DB connection вводим пароль MySQL пользователя zabbix, который был создан на Шаг 5.
На странице Zabbix server details введите имя хоста или IP-адрес хоста и номер порта сервера Zabbix, а также имя установки (необязательно). Мои настройки на скриншоте.
На вкладке GUI settings должен был подтянуться ваш часовой пояс, который прописывали на Шаг 7.
Жмем Next - проверяем суммарную информаци. Жмем Next - полeчаем сообщение о создании конфигурационного файла "/usr/share/zabbix/conf/zabbix.conf.php". Жмем Finish и переходим на страницу авторизации.
Учетные данные для доступа к веб- интерфейсу Zabbix по умолчанию
Username: Admin Password: zabbix
Сразу меняйте пароль, переходите на страницу Administration > Users > Admin жмем Change Password.
Поздравляю, Вы установили Zabbix!
Шаг 11 — Защита Zabbix (опционально)
Мой Zabbix сервер имеет реальный IP и значит его видит весь мир. Разрешим доступ к веб интерфейсу только с определённых доверенных IP. В мой конфигурации я использую Apache/2.4.41 и буду использовать директиву Require ip. Если вы используете другой веб- сервер, вам следует изучить документации того веб сервера, который используете.
В конфигурационном файле Zabbix для Apache2 /etc/apache2/conf-enabled/zabbix.conf добавим директиву Require ip с вашим IP:
<Directory "/usr/share/zabbix"> Require ip x.x.x.x
FAQ Zabbix для версии < 5
- Automated backup of Zabbix configuration (MySQL) сохранение настроек, без истории
- Zabbix Notifier add-on for Chrome
- Zabbix Alert Check Extension add-on for Chrome
- Низкоуровневое обнаружение обнаружение файловых систем; обнаружение сетевых интерфейсов; обнаружение CPU
- Если вы хотите изменить параметр SNMP community, то это можно сделать прямо в Zabbix: зайдите в шаблон в Configuration → Templates , в Items выделите нужные элементы галочками и внизу выберите из выпадающего списка Mass update. Или для любого устройства Host→Macros, где можно переопределить любую переменную в том числе и {$SNMP_COMMUNITY} (Пользовательские макросы).
- Ошибка: Zabbix proxy poller processes more than 75% busy
# nano /etc/zabbix/zabbix_server.conf StartPollers=20
- Ошибка: Zabbix icmp pinger processes more than 75% busy
# nano /etc/zabbix/zabbix_server.conf StartPingers=10 StartDiscoverers=10
- Ошибка: Zabbix unreachable poller processes more than 75% busy
# nano /etc/zabbix/zabbix_server.conf StartPollersUnreachable=10
Алгоритм настройки Zabbix сервера
Первоначальная настройка:
- сменить шаблон для localhost’а на Template_FreeBSD (или просто отцепить шаблон)
- активировать мониторинг localhost’а
- создать нужные “Элементы данных” (items)
- создать на них триггеры
- настройки отправку сообщений по триггерам
Настройка нового шаблона:
- полностью клонировать из стандартного (или создать новый) шаблона
- удалить (добавить) необходимые элементы данных и графики. Например, можно смело удалить для всех templates серверов элемент "Number of running processes zabbix_server" кроме шаблона для localhost
Триггеры, шаблоны для Zabbix
Zabbix и оборудование
- Проверки по SSH Настройка и использование SSH проверки используются для безагентного мониторинга. Обратите внимание, что Zabbix агент не требуется для проверок по SSH.
Zabbix и PostgreSql
Zabbix мониторинг сервера баз данных PostgreSQL версии 8.4.9.
- Template Postgres. Указываем согласно руководству вместо тестовой БД "neiron" собственную. И создадим суперпользователя zabbix
sudo -u postgres createuser zabbix Shall the new role be a superuser? (y/n) y
Инсталляция агентов Zabbix
Linux
Zabbix SIA поставляет официальные RPM и DEB пакеты для Red Hat Enterprise Linux, Debian и Ubuntu LTS. Файлы пакетов доступны по адресу http://repo.zabbix.com. Репозитории yum и apt также доступны на сервере.
- Для CentOS 6.7:
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm yum install zabbix-agent cd /etc/zabbix/ cp zabbix_agentd.conf zabbix_agentd.conf.orig
Редактируем zabbix_agentd.conf:
- Server=zabbix.example.net # IP addresses (or hostnames) of Zabbix servers
- !!! Hostname=cz394 # Должно совпадать с Host name указанном на Zabbix servers. Используйте Visible name (на Zabbix server) для написания удобочитаемых названий ваших серверов.
- ServerActive=zabbix.example.net # IP:port (or hostname:port) pairs of Zabbix servers for active checks
- Стартуем агента
/etc/init.d/zabbix-agent start
- Zabbix 3.0 for Debian 8:
wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix-release/ zabbix-release_3.0-1+jessie_all.deb dpkg -i zabbix-release_3.0-1+jessie_all.deb aptitude update aptitude install zabbix-agent
Windows
Если скачать программу агента с родного сайта Pre-compiled ZABBIX 1.4 Windows NT4, XP, 2000, 2003, Vista, тогда придется самим создавать и настраивать конфигурационный файл, который будет располагаться здесь:
С:\zabbix_agentd.conf
Ниже ссылка на готовые сборки клиентов для Windows:
Zabbix agent (compiled by ZABBIX SIA)
Качаем нужную версию, при установки задаем IP Zabbix сервера. Все!!!
FreeBSD
zabbix-agent-1.6.5
> cd /usr/ports/net-mgmt/zabbix-agent > make install clean > echo 'zabbix_agentd_enable="YES"' >> /etc/rc.conf > cd /usr/local/etc/zabbix > cp zabbix_agentd.conf.sample zabbix_agentd.conf > touch /var/log/zabbix_agentd.log > chown zabbix:zabbix /var/log/zabbix_agentd.log > ee zabbix_agentd.conf #Изменяем параметры ... Server=127.0.0.1 Hostname=localhost DisableActive=1 StartAgents=5 LogFile=/var/log/zabbix_agentd.log ... > /usr/local/etc/rc.d/zabbix_agentd start Starting zabbix_agentd. > tail -F /var/log/zabbix_agentd.log 11361:20090821:145209 zabbix_agentd started. ZABBIX 1.6.5 (revision 7442).