- Базовая настройка Zabbix 6.4.0 под CentOS 8 / Rocky Linux 8
- Собственно, установка
- Настройка
- Установка и начальная настройка сервера мониторинга Zabbix 6 на Ubuntu Server
- Подготовка сервера
- 1. Правильное время
- 2. Настройка брандмауэра
- Установка веб-сервера
- СУБД
- Веб-сервер
- PHP и PHP-FPM
- NGINX + PHP
- Установка и настройка сервера Zabbix
- Установка
Базовая настройка Zabbix 6.4.0 под CentOS 8 / Rocky Linux 8
Вот прошло уже 2 недели с появления новой версии Zabbix, а именно, версии 6.4.0. И поскольку новым версиям посвещено довольно мало статей, а интерфейс и логику работы они поменяли прямо очень сильно, я решил написать кратенькую инструкцию как с актуальной на данный момент времени вообще жить. Сейчас начнём с основ, а там посмотрим на реакцию публики. Итак.
Собственно, установка
Только обратите внимение, что на этой странице в пункте 1 надо выбрать то, что соответствует вашим пожеланиям, в зависимости от выбора каждого пункта инструкция будет изменяться. Я предпочитаю использовать Zabbix в комплекте с Postgres, потому дальнейшие советы будут про него.
Еще для установки на восьмёрку придётся обновить версии пары пакетов относительно штатных системных, иначе установка пройдёт успешно, но потом ничего работать не будет:
dnf install -y epel-release # Устанавливаем сторонний репозиторий, содержащий нужные нам версии php dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm dnf module reset php dnf module enable php:remi-7.4 -y dnf -qy module disable postgresql dnf install -y postgresql15 postgresql15-server
После установки необходимых пакетов и создания базы данных нужно зайти в конфиг сервера /etc/zabbix/zabbix_server.conf и внести некоторые изменения, я ограничился следующими:
# Данные для подключения к базе, должны соответствовать тому, # что использовалось при установке базы: DBName=zabbix DBUser=zabbix DBPassword=password # Параметры, отвечающие за быстродействие, оптимизированы под меня StartDiscoverers=10 StartHTTPPollers=10 StartVMwareCollectors=5 VMwareCacheSize=32M VMwareTimeout=120 StatsAllowedIP=127.0.0.1. 1,2001:db8::/32,zabbix.your-company.ru
Сохраняем изменения, перезагружаем сервер
systemctl restart zabbix-server.service
… и выполняем первый вход через веб, в процессе которого надо будет указать параметры подключения к базе. А потом еще зайти в интерфейс и сменить пароль администратора с Admin/zabbix на что-нибудь более безопасное.
Если почему-то веб-интерфейс не открывается, то «чиним» фаерволл:
firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --add-service=zabbix-agent --permanent firewall-cmd --add-service=zabbix-server --permanent firewall-cmd --reload
Настройка
А дальше начинается самое интересное… Если вы ранее работали с более старой версией (как например я, который до этого использовал версию 4.5), то интерфейс вы можете не узнать вообще.
Для начала зайдём в Data Collection — Discovery. Тут нам нужно пока 2 правила, первое зададим так:
Это правило позволит нам обнаруживать все пингующиеся узлы в сети. Если сетей нужно несколько, пишем их через запятую.
Далее, создаём второе правило, которое позволит нам находить все узлы с установленным Zabbix-агентом:
Теперь, если мы зайдём в Monitoring — Discovery, то мы уже увидим какие-то найденные узлы, но сверху можно выбрать конкретное Discovery rule, применить его и мы узнам, какой именно узел, подпадающий под это правило, находится в каком состоянии:
Первые строки соответствуют узлам в статусе «доступен» и отображают непрерывное время доступности, последние же соответствуют узлам в статусе «не доступен» и отображают время недоступности.
Узлы, находящиеся тут, это все узлы, активность которых Zabbix зафиксировал. Реального сбора с них вполне может не идти!
Далее, устанавливаем заббикс-клиент на узел, который мы хотим мониторить. Для этого на каком-то сервере точно также добавляет репозиторий, устанавливаем пакет zabbix-agent, после чего вносим правки в конфиг и перезапускает сервер. В конфиге я лично ограничусь следующими необходимыми и достаточными мне на первое время правками:
Server=zabbix.yourcompany.ru ServerActive=zabbix.yourcompany.ru #Hostname=Zabbix server HostnameItem=system.hostname HostMetadata=Linux
Строчку Hostname надо убрать любым способом, например закомментировать как в моем примере. Конечно, вы можете указать имя сервера и напрямую (и тогда не указывать HostnameItem), но на мой взгляд это неудобно потому, что тогда каждый конфиг будет уникальным, в данном же случае, все конфиги всех серверов оказываются строго идентичными, благодаря чему их можно раскладывать централизованно например при установке через ansible или любой другой механизм. А имя сервера будет браться из его собственного имени хоста, для работы с которым существует две удобные команды:
Однако, пока новый агент в списке доступных серверов не появится. И чтобы это исправить надо произвести еще несколько действий. Во-первых, заходим в «Alerts-Action-Autoregistration actions», создаём новое действие («Create Action» в правом верхнем углу), которое по наличию в Metadata слова «Linux» будет добавлять хост в группу «Linux Servers», при этом там создаём условие («Add» в поле «Condition»)
А после нажатия кнопки сохранения («Add») переходим на вкладке «Operations» и там также жмём «Add», добавляем соответствующее действие и опять сохраняем.
Тут кстати важно заметить, что в отличие от старых версий, сейчас есть возможность добавлять узлы не только по метаданным, но также по PSK-ключам, что конечно гораздо безопаснее и о чём подробнее вы можете почитать тут: https://www.zabbix.com/documentation/current/en/manual/discovery/auto_registration#secure-autoregistration
Я же не буду на этом останавливаться потому, что если сервер находится в закрытой корпоративной сети, что является типовой схемой применения системы мониторинга, такие меры безопасности на мой взгляд являются избыточными.
Во-вторых, заходим в «Alerts-Action-Discovery actions», там создаём новое «Discovery action» примерно с такими условиями, как на картинке выше и примерно с такими действиями, как на картинке ниже.
И опять видим что-то новое! Что за «Set host inventory mode?»- спросите вы — Оказывается, если раньше правила автоопределения просто работали, то сейчас мало того, что их поделили на 2 группы, так еще по умолчанию их выполнение не может добавить узел в Inventory! И исправить эту ситуацию можно одним из двух путей: либо через дополнительный пункт в действиях правила автоопределения, как на изображении выше, либо через смену поведения по-умолчанию, которая производится в Administration-General-Other-Default host inventory mode.
Теперь те Linux-сервера, на которых установлен Zabbig agent, будут автоматически добавляться в Inventory hosts, хотя и не сразу… В начале узел должен пропинговаться и стать «Доступен», потом к нему попытается сходить правило Autoregistration action, оно уточнит, точно ли агент настоящий, потом хост он будет добавлен в список узлов Data collection-Hosts, потом к нему будет применено Discovery action и только после этого узел появится в Inventory и начнёт отображаться его доступность. При параметрах, которые приведены в примере, это должно занять менее полутора часов.
Если статья окажется интересна и наберёт положительные отзывы, я напишу как подружить Zabbix с VmWare ESXi.
А если будут просто какие-то пожелания или возражения — пишите, с удовольствием исправлю. Я — не частый автор статей для Хабра, потому с большим вниманием отнесусь к критике и постараюсь исправить возможные ошибки. Рука не набита, как говорится.
Установка и начальная настройка сервера мониторинга Zabbix 6 на Ubuntu Server
Обновлено: 15.11.2022 Опубликовано: 23.05.2019
Тематические термины: Zabbix, MariaDB, MySQL, PHP, NGINX. Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 20.04 LTS (также протестировано на 22.04), версия устанавливаемого Zabbix — 6.
Подготовка сервера
1. Правильное время
Для получения актуальной информации необходимо, чтобы на сервере было правильное время. Для этого сначала задаем правильную временную зону:
* в данном примере задается московское время. Затем устанавливаем и запускаем сервис синхронизации времени:
2. Настройка брандмауэра
* где 80 — порт для http запросов (веб-интерфейс); 443 — для https запросов (веб-интерфейс); 10050 — порты для получения информации от zabbix агентов. Для сохранения правил используем
Если наша система чистая и на ней не работают критически важные сервисы, стоит обновить установленные пакеты:
Установка веб-сервера
Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.
СУБД
В данному инструкции мы будем использовать сервер баз данных mariadb. Zabbix версии 6 требует MariaDB версии 10.05.00 и выше. Но слишком свежая версия также может не поддерживаться сервером заббикс. Необходимо уточнить системные требования на официальной странице. В репозитории Ubuntu может не оказаться нужной версии СУБД, поэтому мы подключим репозиторий разработчика. Для этого переходим по ссылке downloads.mariadb.org/mariadb/repositories и выбираем нашу версию операционной системы, последний стабильный и поддерживаемый релиз mariadb и геолокацию репозитория, например: Ниже появится инструкция по добавлению репозитория и установке СУБД: Согласно инструкции, создаем файл:
# MariaDB 10.8 repository list — created UTC
# https://mariadb.org/download/
deb [arch=amd64,arm64,ppc64el,s390x] https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main
deb-src https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main
Веб-сервер
Открываем веб-браузер и переходим по ссылке http:/// — мы должны увидеть окно приветствия:
PHP и PHP-FPM
Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипты, написанные на нем. Zabbix версии 6 требует PHP версии 7.2 и выше. Устанавливаем php и необходимые компоненты:
apt install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-bcmath
* где 7.4 — версия PHP. В вашем случае это может быть другая версия. Проверить можно командой php -v. Редактируем следующие параметры:
date.timezone = «Europe/Moscow»
.
max_execution_time = 300
.
post_max_size = 16M
.
max_input_time = 300
.
max_input_vars = 10000
- date.timezone — временная зона. В нашем примере выставлено московское время.
- max_execution_time — разрешенное время выполнения скрипта. Если последний будет выполняться дольше, система прервет его работу.
- post_max_size — максимальные объем передачи данных методом POST.
- max_input_time — время в секундах, за которое PHP должен разобрать входные данные GET и POST.
- max_input_vars — ограничение на количество входных переменных, которые могут быть переданы на сервер в одном запросе.
Разрешим запуск php-fpm и перезапустим его:
systemctl enable php7.4-fpm
systemctl restart php7.4-fpm
NGINX + PHP
Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:
В секции location добавляем параметр index:
Внутри секции server добавим следующее:
location ~ \.php$ set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
* где /var/www/html — корневой путь хранения скриптов; /run/php/php7.4-fpm.sock — путь до сокетного файла php-fpm (точное расположение файла можно посмотреть в конфигурационном файле /etc/php/7.4/fpm/pool.d/www.conf).
Проверяем настройки nginx:
Создаем index.php со следующим содержимым:
Открываем веб-браузер и переходим по ссылке http:/// — теперь мы должны увидеть сводную информацию по PHP и его настройкам:
* в нашем примере мы работаем с php7.4, а на скриншоте 7.2. Это не принципиально. Для нас важно, что страница отдает phpinfo — значит веб-сервер настроен корректно.
Веб-сервер готов для работы с Zabbix Web.
Установка и настройка сервера Zabbix
Переходим к установке самого Zabbix сервера.
Установка
Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу https://repo.zabbix.com/zabbix/ и переходим в раздел с самой последней версией пакета — затем переходим в ubuntu/pool/main/z/zabbix-release/ — копируем ссылку на последнюю версию релиза:
Обратите внимание, что необходимо скопировать ссылку на файл для своей версии Ubuntu — в нашем примере это 20.04. Посмотреть свою версию операционной системы можно командой:
cat /etc/os-release | grep VERSION_ID
Скачиваем файл репозитория командой: