Буквально неделю назад вышел Zabbix 5.4 с огромным количеством нововведений.
Почитать об основных новшествах можно на официальном сайте или на opennet.ru
В данной статье я опишу установку Zabbix 5.4 на Debian 10, в качестве базы данных будет использоваться MariaDB 10.5, в качестве web-сервера будем использовать Nginx + PHP-FPM 7.4
Итак, поехали…
Исходные данные: ОС Debian 10 (Buster), БД MariaDB 10.5, web-server Nginx + PHP-FPM 7.4;
Задача: Установить Zabbix 5.4;
Предполагается, что у Вас уже установлена MariaDB 10.5 и установлен web-сервер Nginx с PHP-FPM 7.4, а так же произведена базовая их настройка.
Установка Zabbix 5.4 на Debian 10:
1. Установка необходимых доп. пакетов:
apt-get update apt-get install curl wget -y
2. Установка репозитария Zabbix:
wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb dpkg -i zabbix-release_5.4-1+debian10_all.deb rm -f zabbix-release_5.4-1+debian10_all.deb
2. Установка компонентов Zabbix (сервер, веб-фронтенд и агент):
Обновление кэша пакетов:
apt-get update
Установка необходимых для Zabbix модулей PHP (некоторые из них уже могут быть установлены):
apt-get install -y php7.4 php7.4-cli php7.4-fpm php7.4-opcache php7.4-curl php7.4-mbstring php7.4-zip php7.4-xml php7.4-bcmath php7.4-common php7.4-gd php7.4-ldap php7.4-mysql
Установка Zabbix (сервер, веб-интерфейс, конфигурация для nginx, файлы схем и данные для БД, агент):
apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
3. Создание и инициализация базы данных Zabbix:
Создадим базу zabbix и пользователя zabbix с паролем myverybigpassword (сделайте другой пароль, не используйте мой):
# mariadb -uroot -p password: ******* MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> create user zabbix@localhost identified by 'myverybigpassword'; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost; MariaDB [(none)]> flush privileges; MariaDB [(none)]> quit;
Импортируем схему и данные:
zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mariadb -uzabbix -pmyverybigpassword zabbix
4. Редактирование конфигурации Zabbix server:
Отредактируем файл /etc/zabbix/zabbix_server.conf (установим пароль пользователя zabbix из предыдущего пункта).
Я воспользуюсь sed чтобы заменить закомментированный параметр DBPassword и вписать пароль myverybigpassword:
sed -i 's/# DBPassword=/DBPassword=myverybigpassword/g' /etc/zabbix/zabbix_server.conf
5. Редактирование конфигурации Zabbix web-frontend для Nginx:
Для этого откройте файл /etc/nginx/conf.d/zabbix.conf и раскомментируйте директивы listen и server_name
В директиву server_name внесите ваш домен для веб-интерфейса Zabbix.
Пример моего файла /etc/nginx/conf.d/zabbix.conf (привожу только первые строки):
server { listen 80; server_name zabbix.mydomain.ru; root /usr/share/zabbix;
Далее отредактируем настройки пула php-fpm, для этого откройте файл /etc/zabbix/php-fpm.conf и раскомментируйте параметр php_value[date.timezone] = Europe/Riga
Вы должны указать здесь свой часовой пояс, например Europe/Moscow
Пример моего файла /etc/zabbix/php-fpm.conf (привожу только последние строки):
php_value[max_input_time] = 300 php_value[max_input_vars] = 10000 php_value[date.timezone] = Europe/Moscow
Теперь перезапустим PHP-FPM:
systemctl restart php7.4-fpm
Проверим статус:
# systemctl status php7.4-fpm ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-05-27 05:44:29 CEST; 2s ago Docs: man:php-fpm7.4(8) Process: 11419 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS) Main PID: 11411 (php-fpm7.4) Status: "Ready to handle connections" Tasks: 8 (limit: 2296) Memory: 28.2M CGroup: /system.slice/php7.4-fpm.service ├─11411 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf) ├─11412 php-fpm: pool www ├─11413 php-fpm: pool www ├─11414 php-fpm: pool zabbix ├─11415 php-fpm: pool zabbix ├─11416 php-fpm: pool zabbix ├─11417 php-fpm: pool zabbix └─11418 php-fpm: pool zabbix May 26 21:34:48 myserver systemd[1]: Starting The PHP 7.4 FastCGI Process Manager... May 26 21:34:48 myserver systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
Мы видим, что появился пул zabbix, значит все успешно.
Теперь проверим конфигурацию Nginx и перезагрузим ее:
nginx -t && nginx -s reload
Результат:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
6. Настройка Web-фронтенда:
Если п.5 был выполнен успешно, то мы можем перейти в браузере на наш домен zabbix.mydomain.ru и увидеть приветственный экран инсталлятора Zabbix:
Далее все интуитивно понятно, это выберем Русский язык интерфейса и нажмем кнопку Далее
На следующем экране будет проверка требований к установки (все ли компоненты и пакеты у нас установлены и правильно ли настроены)
Пролистываем список и видим что везде стоит OK, жмем Далее
Далее перед нами будет шаг настройки соединения с базой данных, нам остается только вбить наш пароль myverybigpassword (у Вас он наверно будет посложнее) и нажать Далее
Если пароль для БД был верный, то мы перейдем на следующий шаг — настройка соединения веб-фронтенда с zabbix-server, тут нам нужно лишь ввести имя нашего забикса, например ZBX
Следующий шаг — выбор часового пояса по-умолчанию и темы оформления:
Далее нам предлагают проверить все параметры и завершить настройку если все верно:
Все успешно, жмем Финиш:
Далее перед нами откроется стандартное окно входа в Zabbix, вводим логин Admin и пароль zabbix
Попадаем в уже привычный с 5-й версии интерфейс, видим не очень красивую надпись, что zabbix-сервер не запущен — это так и есть, мы пока его не запустили.
7. Запуск сервера и агента:
Теперь можно запустить сервер и агента:
systemctl enable --now zabbix-agent systemctl enable --now zabbix-server
Проверим факт запуска:
# systemctl status zabbix-server ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-05-27 06:44:29 CEST; 6s ago Process: 17536 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) Main PID: 17538 (zabbix_server) Tasks: 44 (limit: 2296) Memory: 30.4M CGroup: /system.slice/zabbix-server.service ├─17538 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf ├─17543 /usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.041061 sec, idle 60 sec] ├─17544 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes] ├─17545 /usr/sbin/zabbix_server: timer #1 [updated 0 hosts, suppressed 0 events in 0.005674 sec, idle 29 sec] ├─17546 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.001147 sec, idle 5 sec] ├─17547 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000461 sec, idle 60 sec] ├─17548 /usr/sbin/zabbix_server: history syncer #1 [processed 0 values, 0 triggers in 0.000035 sec, idle 1 sec] ├─17549 /usr/sbin/zabbix_server: history syncer #2 [processed 0 values, 0 triggers in 0.000038 sec, idle 1 sec] ├─17550 /usr/sbin/zabbix_server: history syncer #3 [processed 0 values, 0 triggers in 0.000045 sec, idle 1 sec] ├─17551 /usr/sbin/zabbix_server: history syncer #4 [processed 1 values, 1 triggers in 0.003222 sec, idle 1 sec] ├─17552 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000996 sec, idle 3 sec] ├─17553 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000031 sec, idle 5 sec] ├─17561 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000047 sec, idle 1 sec] ├─17562 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.002818 sec, idle 5 sec] ├─17563 /usr/sbin/zabbix_server: poller #1 [got 1 values in 0.003024 sec, idle 5 sec] ├─17564 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000016 sec, idle 5 sec] ├─17565 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000015 sec, idle 5 sec] ├─17566 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000050 sec, idle 5 sec] ├─17567 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000012 sec, idle 5 sec] ├─17568 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000050 sec, idle 5 sec] ├─17569 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection] ├─17570 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection] ├─17571 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection] ├─17572 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection] ├─17578 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection] ├─17579 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000041 sec, idle 5 sec] ├─17580 /usr/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.018083 sec during 5.018380 sec] ├─17581 /usr/sbin/zabbix_server: alerter #1 started ├─17582 /usr/sbin/zabbix_server: alerter #2 started ├─17583 /usr/sbin/zabbix_server: alerter #3 started ├─17584 /usr/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 6 values, idle 5.011966 sec during 5.012 ├─17585 /usr/sbin/zabbix_server: preprocessing worker #1 started ├─17586 /usr/sbin/zabbix_server: preprocessing worker #2 started ├─17589 /usr/sbin/zabbix_server: preprocessing worker #3 started ├─17590 /usr/sbin/zabbix_server: lld manager #1 [processed 0 LLD rules, idle 5.003231sec during 5.003705 sec] ├─17591 /usr/sbin/zabbix_server: lld worker #1 started ├─17592 /usr/sbin/zabbix_server: lld worker #2 started ├─17593 /usr/sbin/zabbix_server: alert syncer [queued 0 alerts(s), flushed 0 result(s) in 0.001149 sec, idle 1 sec] ├─17594 /usr/sbin/zabbix_server: history poller #1 [got 2 values in 0.000374 sec, idle 1 sec] ├─17595 /usr/sbin/zabbix_server: history poller #2 [got 0 values in 0.000024 sec, idle 1 sec] ├─17596 /usr/sbin/zabbix_server: history poller #3 [got 0 values in 0.000036 sec, idle 1 sec] ├─17597 /usr/sbin/zabbix_server: history poller #4 [got 0 values in 0.000033 sec, idle 1 sec] ├─17603 /usr/sbin/zabbix_server: history poller #5 [got 0 values in 0.000030 sec, idle 1 sec] └─17604 /usr/sbin/zabbix_server: availability manager #1 [queued 1, processed 0 values, idle 5.968632 sec during 5.9689 May 27 06:44:29 myserver systemd[1]: Starting Zabbix Server... May 27 06:44:29 myserver systemd[1]: zabbix-server.service: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after start: No May 27 06:44:29 myserver systemd[1]: Started Zabbix Server.
Посмотрим лог-файл сервера:
# cat /var/log/zabbix/zabbix_server.log 17538:20210527:064429.923 Starting Zabbix Server. Zabbix 5.4.0 (revision 5059e20a75). 17538:20210527:064429.923 ****** Enabled features ****** 17538:20210527:064429.923 SNMP monitoring: YES 17538:20210527:064429.923 IPMI monitoring: YES 17538:20210527:064429.923 Web monitoring: YES 17538:20210527:064429.923 VMware monitoring: YES 17538:20210527:064429.923 SMTP authentication: YES 17538:20210527:064429.923 ODBC: YES 17538:20210527:064429.923 SSH support: YES 17538:20210527:064429.923 IPv6 support: YES 17538:20210527:064429.923 TLS support: YES 17538:20210527:064429.923 ****************************** 17538:20210527:064429.923 using configuration file: /etc/zabbix/zabbix_server.conf 17538:20210527:064429.927 current database version (mandatory/optional): 05040000/05040000 17538:20210527:064429.927 required mandatory version: 05040000 17538:20210527:064429.940 server #0 started [main process] 17543:20210527:064429.940 server #1 started [configuration syncer #1] 17547:20210527:064430.049 server #5 started [discoverer #1] 17546:20210527:064430.053 server #4 started [http poller #1] 17545:20210527:064430.056 server #3 started [timer #1] 17548:20210527:064430.056 server #6 started [history syncer #1] 17544:20210527:064430.057 server #2 started [housekeeper #1] 17550:20210527:064430.058 server #8 started [history syncer #3] 17549:20210527:064430.059 server #7 started [history syncer #2] 17551:20210527:064430.060 server #9 started [history syncer #4] 17552:20210527:064430.063 server #10 started [escalator #1] 17553:20210527:064430.066 server #11 started [proxy poller #1] 17562:20210527:064430.074 server #13 started [task manager #1] 17564:20210527:064430.074 server #15 started [poller #2] 17565:20210527:064430.076 server #16 started [poller #3] 17563:20210527:064430.078 server #14 started [poller #1] 17566:20210527:064430.079 server #17 started [poller #4] 17567:20210527:064430.081 server #18 started [poller #5] 17568:20210527:064430.084 server #19 started [unreachable poller #1] 17561:20210527:064430.085 server #12 started [self-monitoring #1] 17569:20210527:064430.085 server #20 started [trapper #1] 17570:20210527:064430.087 server #21 started [trapper #2] 17571:20210527:064430.089 server #22 started [trapper #3] 17572:20210527:064430.092 server #23 started [trapper #4] 17579:20210527:064430.097 server #25 started [icmp pinger #1] 17580:20210527:064430.099 server #26 started [alert manager #1] 17581:20210527:064430.100 server #27 started [alerter #1] 17582:20210527:064430.100 server #28 started [alerter #2] 17583:20210527:064430.101 server #29 started [alerter #3] 17584:20210527:064430.102 server #30 started [preprocessing manager #1] 17585:20210527:064430.102 server #31 started [preprocessing worker #1] 17578:20210527:064430.102 server #24 started [trapper #5] 17586:20210527:064430.104 server #32 started [preprocessing worker #2] 17593:20210527:064430.109 server #37 started [alert syncer #1] 17594:20210527:064430.110 server #38 started [history poller #1] 17592:20210527:064430.111 server #36 started [lld worker #2] 17591:20210527:064430.111 server #35 started [lld worker #1] 17590:20210527:064430.111 server #34 started [lld manager #1] 17595:20210527:064430.111 server #39 started [history poller #2] 17596:20210527:064430.113 server #40 started [history poller #3] 17589:20210527:064430.114 server #33 started [preprocessing worker #3] 17597:20210527:064430.114 server #41 started [history poller #4] 17604:20210527:064430.117 server #43 started [availability manager #1] 17603:20210527:064430.119 server #42 started [history poller #5] 17564:20210527:064432.084 enabling Zabbix agent checks on host "Zabbix server": interface became available 17548:20210527:064442.077 item "Zabbix server:zabbix[process,ipmi poller,avg,busy]" became not supported: No "ipmi poller" processes started. 17551:20210527:064443.078 item "Zabbix server:zabbix[process,java poller,avg,busy]" became not supported: No "java poller" processes started. 17551:20210527:064448.083 item "Zabbix server:zabbix[process,ipmi manager,avg,busy]" became not supported: No "ipmi manager" processes started. 17551:20210527:064448.083 item "Zabbix server:zabbix[process,snmp trapper,avg,busy]" became not supported: No "snmp trapper" processes started. 17550:20210527:064449.084 item "Zabbix server:zabbix[process,vmware collector,avg,busy]" became not supported: No "vmware collector" processes started.
Отлично, все запустилось. Идем в Web-интерфейс, смотрим на состояние:
Мы видим, что web-фронтенд видит zabbix-сервер и читает с него данные статистики.
Зайдем в Последние данные и проверим, что данные от агента идут:
Данные поступают — это хорошо.
На этом статься завершена.
В следующей статье я расскажу как сделать партиционирование исторических таблиц в Zabbix (БД MariaDB) для того чтобы в дальнейшем при росте размера базы данных Zabbix у нас не возникло проблем с очисткой исторических данных. Гораздо проще сделать партиционирование на начальном этапе, то есть сразу после инсталляции и потом спать спокойно.
Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, PostgreSQL) на протяжении последних 24 лет.
Михаил, спасибо за статью! Жду следующий материал про партиционирование, будет ли он?
Обязательно будет. Постараюсь до конца недели написать.
Добрый день. При проверке логов вываливается следующее:
2971:20220102:191911.702 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@’localhost’ (using password: YES)
2971:20220102:191911.702 database is down: reconnecting in 10 seconds
2971:20220102:191921.704 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@’localhost’ (using password: YES)
2971:20220102:191921.704 database is down: reconnecting in 10 seconds
2971:20220102:191931.707 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@’localhost’ (using password: YES)
Не могу найти причину. Может получится подсказать в чем причина. Заранее благодарен.
Добрый, проверьте п.3 в статье.
Скорее всего Вы указали в файле конфигурации zabbix_server.conf не верный пароль доступа в базу mysql.
Проверил. Вроде все правильно. Возможно ли заново попробовать через веб морду подключить БД?
Web-морда тут не при чем, Вы же привели сообщения об ошибке из лога zabbix_server.log
Напишите мне в ТГ @Михаил Григорьев, попробуем там решить проблему, если Вы ее еще не решили.
Сразу напишите версию ОС и версию Zabbix которую устанавливаете.
таже самая беда, могу к базе подключиться под zabbix пользователем, но ошибка та же debian 10, Zabbix 5.4
1) Проверьте логин и пароль пользователя в файле /etc/zabbix/zabbix_server.conf, например так можно вывести только нужные данные:
cat /etc/zabbix/zabbix_server.conf | egrep -E ‘^(DB.*)’
Обратите внимание, что директивы DBHost= не должно быть, она по умолчанию установлена равной localhost и ее не нужно указывать.
2) Теперь зная их попробуйте подключиться к mysql с ними, например
mysql -h localhost -u zabbix -pXXXXX zabbix
Подключение должно быть успешным. Если будет ошибка, то вероятно Вы указали неправильный пароль пользователя zabbix или у пользователя нет прав, тогда выполните повторно пункт «3. Создание и инициализация базы данных Zabbix:» из статьи.
Добрый день, разобрался, но при всех запущенных и положительных результатах, сервер пишет активен но в веб морде, статус все равно горит «no»
Проверьте настройки в файле /etc/zabbix/web/zabbix.conf.php
Порт в $ZBX_SERVER_PORT должен совпадать с портом на котором работает zabbix-server, проверить можно
netstat -ltupn |grep zabbix_server| grep LISTEN
Адрес в $ZBX_SERVER_NAME как правило указывается localhost, то есть подразумевает что zabbix-server и web-frontend работают на одном сервере.