Home » Linux » CentOS » Установка и настройка Zabbix 4.0

Установка и настройка Zabbix 4.0

1-го октября 2018 года вышла новая версия бесплатной системы мониторинга, которую я постоянно использую. Я подробно расскажу об установке и начальной настройке Zabbix 4.0 на примере систем CentOS, Debian, Ubuntu со скриншотами и пояснениями. В этой версии много интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.

Если у вас есть желание детальнее разобраться в процессах настройки и обеспечения комплексной безопасности локальной и сетевой инфраструктуры, построенной на базе ОС Linux, рекомендую познакомиться с онлайн-курсом «Безопасность Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

На сегодняшний день, по моему мнению, из бесплатных систем мониторинга именно Zabbix самая популярная и функциональная. Упоминания о ней я постоянно встречаю в технических статьях специалистов различного масштаба и организаций. К примеру, СберТех использует Zabbix как единую платформу мониторинга. ИТ отдел сети магазинов Магнит так же использует zabbix как основную систему мониторинга. Пару лет назад я смотрел выступление представителя ИТ отдела Магнита, где он подробно описывал структуру системы. На тот момент это была самая крупная инсталляция заббикса с тысячами прокси серверов для сбора данных из магазинов по всей стране. Упоминания о мониторинге заббикс я встречал у специалистов компаний 1С, Крок, Яндекс.Деньги и других. Перечислил только то, что запомнилось.

Нужно понимать, что Zabbix — система мониторинга общего назначения. У нее нет специализации в микросервисы, сеть, железо и т.д. В связи с этим, всегда может найтись инструмент, который сможет выполнять ту или иную задачу удобнее и эффективнее, чем zabbix. Но это не умоляет остальных достоинств системы. Я их вижу в первую очередь в том, что в ней можно настроить мониторинг всего, что угодно. Главное научиться подавать значения в систему. А для этого есть масса инструментов — как самих агентов, так и скриптов, которые можно подключать к сбору данных.

Система мониторинга Zabbix позволяет так или иначе завести на нее все обслуживаемые сервисы. Где-то это может быть не очень просто, но в любом случае, один универсальный инструмент удобнее, чем несколько. Мне всегда удавалось настроить желаемый мониторинг с помощью заббикса. Если не было готовых шаблонов или подходящих агентов для сбора, писал скрипты и передавал ими данные агенту. С моими (и не только) решениями по мониторингу можете познакомиться в отдельном разделе zabbix.

Чем меня еще подкупает zabbix — хорошая документация и большое комьюнити. Много выступлений от различных специалистов с описанием внедрений. Все это облегчает работу с системой. Проще принять решение как поступить в той или иной ситуации. Сами разработчики постоянно проводят встречи, приглашают выступающих, потом выкладывают видео. В общем, система со всех сторон оставляет благоприятное впечатление.

Я буду устанавливать и настраивать работу сервера zabbix на nginx, что несколько отличается от дефолтной установки, которая включает в себя веб сервер apache. В связи с этим, нам необходимо будет подготовиться.

Подготовка сервера CentOS к установке

Centos 7

Первым делом вам необходимо установить и настроить сервер CentOS 7. Перед установкой сервера Zabbix нам также нужно подготовить Web сервер. У меня есть отдельная статья по настройке web сервера на centos. Там все подробно описано. Сейчас же я кратко и без лишних комментариев выполню минимум необходимых действий для работы заббикса. Так же я не буду останавливаться на настройке iptables. Эта отдельная тема и мне не хочется ее касаться в этой статье. Либо настройте сами по моим инструкциям, либо просто отключите firewall:

# systemctl stop firewalld
# systemctl disable firewalld

Подключаем репозиторий nginx и устанавливаем его:

# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install nginx

Запускаем nginx и добавляем в автозагрузку.

# systemctl start nginx
# systemctl enable nginx

Проверяем, работает ли он. Для этого открываем в браузере ссылку http://192.168.13.117/, где 192.168.13.117 — ip адрес настраиваемого сервера.

Стартовая страница Nginx

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

Дальше устанавливаем php-fpm. Для этого подключаем репозиторий remi и epel-release.

# yum install epel-release
# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Активируем репу remi-php71, для этого выполняем команды:

# yum install yum-utils
# yum-config-manager --enable remi-php71

Устанавливаем php 7.1 и модули к нему.

# yum install php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath

Запускаем php-fpm и добавляем в автозагрузку.

# systemctl start php-fpm
# systemctl enable php-fpm

Проверяем, запустился ли он.

# netstat -tulpn | grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      13261/php-fpm: mast

Все в порядке, запустился на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:

# mcedit /etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000

Вместо нее добавляем несколько других:

listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx

Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx, отредактировав соответствующие параметры.

user = nginx
group = nginx

Перезапускаем php-fpm.

# systemctl restart php-fpm

Проверяем, стартовал ли указанный сокет.

# ll /var/run/php-fpm/php-fpm.sock 
srw-rw----. 1 nginx nginx 0 Oct  4 15:08 /var/run/php-fpm/php-fpm.sock

На текущий момент с настройкой php-fpm закончили. Продолжаем подготовку сервера к установке zabbix.

Устанавливаем свежую версию MariaDB. Подключаем репозиторий. Для этого создаем файл /etc/yum.repos.d/mariadb.repo следующего содержания.

# mcedit /etc/yum.repos.d/mariadb.repo
# MariaDB 10.3 CentOS repository list - created 2018-10-04 12:10 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Устанавливаем последнюю версию mariadb на centos.

# yum install MariaDB-server MariaDB-client

Запускаем mariadb и добавляем в автозагрузку.

# systemctl start mariadb
# systemctl enable mariadb

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

# /usr/bin/mysql_secure_installation

Внесем некоторые изменения в стандартный конфиг mariadb, чтобы потом не заниматься очисткой и оптимизацией базы для zabbix. Для этого открываем конфиг mysql /etc/my.cnf.d/server.cnf и приводим его к следующему виду.

# mcedit /etc/my.cnf.d/server.cnf
[client]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
character_set_server=utf8
collation-server=utf8_bin
init_connect="SET NAMES utf8 collate utf8_bin"
port		= 3306
socket		= /var/lib/mysql/mysql.sock

innodb_file_per_table=1
innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb-strict-mode = OFF

[server]

[galera]

[embedded]

[mariadb]

[mariadb-10.3]

Я добавил минимум настроек, отличных от дефолта. В статье про оптимизацию mysql их приведено гораздо больше, но со временем я понял, что зря это сделал. Реально у меня нет большого опыта в тонкой настройке mysql. Никаких тестов и проверок я не делал, а данные брал на основе других статей в интернете. Не факт, что там не было ошибок. В итоге сейчас тут только заданы некоторые важные параметры по innodb, в частности указание хранить каждую таблицу в отдельном файле, задан размер и количество бинарных логов и еще пару настроек, которые явно будут к месту (innodb_buffer_pool_size, innodb_buffer_pool_instances и innodb_flush_log_at_trx_commit). При желании, вы можете сами заняться тюнингом mysql. В общем случае, достаточно будет текущих настроек.

Перезапустите mariadb и убедитесь, что она запустилась.

# systemctl restart mariadb
# systemctl status mariadb.service

Сервер баз данных mysql для нашего zabbix сервера готов. На этом предварительные настройки сервера закончены. Можно приступать к установке.

Centos 8

Как установить Centos 8 читайте в отдельной статье. Его подготовка к установке zabbix будет проще, так как в базовых репозиториях более свежий софт, который нам подходит. Вначале либо отключите firewalld, либо выполните его настройку. Я не буду на этом останавливаться, так как это тема отдельной статьи.

# systemctl stop firewalld
# systemctl disable firewalld

То же самое касается SELinux. В Centos 8 я еще не разбирался, как его корректно настроить для работы с zabbix-server. Пока отключите, либо сами поищите информацию по настройке. Когда найдете, буду рад, если поделитесь в комментариях.

# mcedit /etc/sysconfig/selinux

Устанавливаем параметр:

SELINUX=disabled

Применяем изменение:

# setenforce 0

Дальше подключаем репозиторий epel.

# dnf install epel-release

Теперь подключим репозиторий nginx. Для этого создаем файл /etc/yum.repos.d/nginx.repo следующего содержания.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Устанавливаем nginx, запускаем и добавляем в автозагрузку.

# dnf install nginx
# systemctl start nginx
# systemctl enable nginx

Зайдите по адресу http://ip-сервера/ и убедитесь, что nginx запустился. Теперь отдельно установим php и модули к нему, которые понадобятся.

# dnf install php php-fpm php-cli php-mysqlnd php-gd php-ldap php-odbc php-pdo php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath

Запускаем php-fpm и добавляем в автозагрузку.

# systemctl start php-fpm
# systemctl enable php-fpm

Проверяем, стартовал ли указанный в конфиге сокет.

# ll /run/php-fpm/www.sock
srw-rw----+ 1 root root 0 Oct  4 13:14 /run/php-fpm/www.sock

На текущий момент с настройкой php-fpm закончили. Продолжаем подготовку сервера к установке zabbix.

Устанавливаем сервер баз данных Mariadb.

# dnf install mariadb-server mariadb

Запускаем mariadb и добавляем в автозагрузку.

# systemctl start mariadb
# systemctl enable mariadb

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

# /usr/bin/mysql_secure_installation

Внесем некоторые изменения в стандартный конфиг mariadb, чтобы потом не заниматься очисткой и оптимизацией базы для zabbix. Для этого открываем конфиг mysql /etc/my.cnf.d/server.cnf и приводим его к следующему виду.

# mcedit /etc/my.cnf.d/mariadb-server.cnf
[client]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
character_set_server=utf8
collation-server=utf8_bin
init_connect="SET NAMES utf8 collate utf8_bin"
port		= 3306
socket		= /var/lib/mysql/mysql.sock

innodb_file_per_table=1
innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb-strict-mode = OFF

Тут заданы некоторые важные параметры по innodb, в частности указание хранить каждую таблицу в отдельном файле, задан размер и количество бинарных логов и еще пару настроек, которые явно будут к месту (innodb_buffer_pool_size, innodb_buffer_pool_instances и innodb_flush_log_at_trx_commit). При желании, вы можете сами заняться тюнингом mysql. В общем случае, достаточно будет текущих настроек.

Перезапустите mariadb и убедитесь, что она запустилась.

# systemctl restart mariadb
# systemctl status mariadb.service

Сервер баз данных mysql для нашего zabbix сервера готов. На этом предварительные настройки сервера закончены. Можно приступать к установке.

Установка сервера Zabbix 4.0 в CentOS

Для того, чтобы установить Zabbix Server 4.0 на Centos 7 нужно подключить репозиторий актуальной версии.

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.fCWryx: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-4.0-1.el7         ################################# [100%]

То же самое делаем для Centos 8.

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm

Устанавливаем сам сервер заббикса.

# yum install zabbix-server-mysql zabbix-web-mysql

В зависимостях пакетов будет httpd, который нам не нужен, так как у нас будет nginx и php7.1, но я не разбирался, как поставить без него. После установки пакетов, создадим базу данных, пользователя zabbix и заполним базу.

# mysql -uroot -p
Enter password:
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabpassword';
exit
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.

# mcedit /etc/zabbix/zabbix_server.conf

Изменяем указанные строки, остальные не трогаем:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabpassword
ListenIP=0.0.0.0
Timeout=10

Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется для получения метрики. Поставьте секунд 10.

Запускаем zabbix и добавляем в автозагрузку.

# systemctl start zabbix-server
# systemctl enable zabbix-server

Проверяем лог файл на наличие ошибок.

# cat /var/log/zabbix/zabbix_server.log

Лог запуска Zabbix Server

Настройка SELinux с zabbix

Если у вас включен SELinux, получите ошибку.

cannot start preprocessing service: Cannot bind socket to "/var/run/zabbix/zabbix_server_preprocessing.sock": [13] Permission denied.

Это нормально, сейчас настроим SELinux для нормальной работы Zabbix. Для этого устанавливаем пакет policycoreutils-python, скачиваем готовый модуль для SELinux и применяем его.

# yum install policycoreutils-python
# cd ~
# curl https://support.zabbix.com/secure/attachment/53320/zabbix_server_add.te > zabbix_server_add.te
# checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te
# semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp
# semodule -i zabbix_server_add.pp

Теперь нам надо перезапустить zabbix-server.

# systemctl restart zabbix-server

Если у вас это не получится сделать через systemctl, значит служба зависла. Завершаем ее принудительно и запускаем снова.

# kill -9 `pidof zabbix_server`
# systemctl start zabbix-server

Снова проверяйте log файл. Теперь ошибок быть не должно. Как я уже сказал, если у вас отключен SELinux, то делать описанные выше манипуляции с модулем не надо.

С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix на сервере с Centos 7. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/conf.d/default.conf. Приводим его к следующему виду:

# mcedit /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;
    root /usr/share/zabbix;

    location / {
	index index.php index.html index.htm;
    }

    location ~ \.php$ {
	fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
	include fastcgi_params;
	fastcgi_param PHP_VALUE "
	max_execution_time = 300
	memory_limit = 128M
	post_max_size = 16M
	upload_max_filesize = 2M
	max_input_time = 300
	date.timezone = Europe/Moscow
	always_populate_raw_post_data = -1
	";
	fastcgi_buffers 8 256k;
	fastcgi_buffer_size 128k;
	fastcgi_intercept_errors on;
	fastcgi_busy_buffers_size 256k;
	fastcgi_temp_file_write_size 256k;
        }
}

Для Centos 8 конфиг будет другой, так как из репозитория zabbix прилетает готовый конфиг для php-fpm. Он находится тут — /etc/php-fpm.d/zabbix.conf. Там указан другой сокет — /run/php-fpm/zabbix.sock, который мы будем использовать.Поменяем в этом конфиге пользователя с apache на nginx и укажем свой часовой пояс.

user = nginx
group = nginx
php_value[date.timezone] = Europe/Moscow

После этого php-fpm надо перезапустить.

# systemctl restart php-fpm

Конфиг nginx default.conf для centos 8 будет таким:

server {
    listen       80;
    server_name  localhost;
    root /usr/share/zabbix;

    location / {
    index index.php index.html index.htm;
    }

    location ~ \.php$ {
    fastcgi_pass unix:/run/php-fpm/zabbix.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_buffers 8 256k;
    fastcgi_buffer_size 128k;
    fastcgi_intercept_errors on;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
        }
}

Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# nginx -s reload

Маленький, но важный нюанс. Нам надо изменить права доступа на некоторые папки. Назначить владельца nginx.

# chown -R nginx:nginx /var/lib/php/session
# chown -R nginx:nginx /etc/zabbix/web

Этот шаг нужно будет проделывать после каждого обновления php или zabbix. Связано с тем, что по-умолчанию zabbix идет в комплекте с apache и рассчитан на работу с ним. Поэтому после установки или обновления, он делает его владельцем директории /etc/zabbix/web.

Даем разрешения SELinux для работы заббикса с web сервером и базой данных.

# setsebool -P httpd_can_connect_zabbix on
# setsebool -P httpd_can_network_connect_db on

Я не знаю, насколько последняя настройка актуальна, если подключение к БД локальное. У разработчиков в инструкции сказано, что в случае с postgresql даже если подключаетесь через 127.0.0.1, разрешение выдавать нужно. Насчет mysql нет комментариев.

С серверной частью закончили. Для продолжения установки zabbix сервера переходим к настройке Zabbix Frontend.

Установка сервера Zabbix 4.0 в Ubuntu, Debian

С установкой Zabbix на сервер с Ubuntu или Debian попроще, так как в стандартных репозиториях посвежее версии софта, можно использовать их. Подключаем репозитории zabbix 4.0.

Ubuntu 18:

# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb

Debian 9:

# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+stretch_all.deb
# dpkg -i zabbix-release_4.0-3+stretch_all.deb

Debian 10:

# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb
# dpkg -i zabbix-release_4.0-3+buster_all.deb

Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/4.0/ Дальнейшая установка не будет отличаться от текущей.

Обновляем информацию о репозиториях, а заодно и последние обновления поставим:

# apt update && apt upgrade

Устанавливаем zabbix сервер:

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

Он по-умолчанию ставится с apache, который сразу же запускается. Остановим его и отключим:

# systemctl stop apache2
# systemctl disable apache2

Ставим отдельно nginx и php-fpm:

# apt install nginx php-fpm

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

# /usr/bin/mysql_secure_installation

Отредактируем некоторые параметры Mariadb в конфиге /etc/mysql/mariadb.conf.d/50-server.cnf. Добавляем туда в секцию [mysqld]:

# mcedit /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_file_per_table=1
innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_log_files_in_group = 3

Перезапустите mariadb и убедитесь, что она запустилась.

# systemctl restart mariadb
# netstat -tulnp | grep mysqld
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      16753/mysqld

Cоздадим базу данных, пользователя zabbix, и заполним базу.

# mysql -uroot -p
Enter password:
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabpassword';
exit
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.

# mcedit /etc/zabbix/zabbix_server.conf

Изменяем указанные строки, остальные не трогаем:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabpassword
ListenIP=0.0.0.0
Timeout=10

Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.

Запускаем zabbix и добавляем в автозагрузку.

# systemctl start zabbix-server
# systemctl enable zabbix-server

Проверяем запустился ли.

# netstat -tulnp | grep zabbix_server
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      16847/zabbix_server

Все в порядке. Запускаем nginx, который у нас будет выступать в качестве web сервера.

# systemctl start nginx
# systemctl enable nginx

Убедимся, что в качестве web сервера работает nginx.

# netstat -tulnp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17075/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      17075/nginx: master 

Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/sites-available/default. Приводим его к следующему виду:

# mcedit /etc/nginx/sites-available/default
server {
    listen       80;
    server_name  localhost;
    root /usr/share/zabbix;

    location / {
    index index.php index.html index.htm;
    }

    location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock; # проверьте этот путь, для разных версий php он будет разный
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param PHP_VALUE "
    max_execution_time = 300
    memory_limit = 128M
    post_max_size = 16M
    upload_max_filesize = 2M
    max_input_time = 300
    date.timezone = Europe/Moscow
    always_populate_raw_post_data = -1
    ";
    fastcgi_buffers 8 256k;
    fastcgi_buffer_size 128k;
    fastcgi_intercept_errors on;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
        }
}

Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# nginx -s reload

С серверной частью закончили. Для продолжения установки zabbix сервера переходим к настройке Zabbix Frontend.

Настройка Zabbix Frontend

Идем в браузер и открываем адрес http://192.168.13.117. Вы должны увидеть установщик Zabbix 4.0.

Установка Zabbix сервера

Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.

Проверка системных требований к web интерфейсу заббикса

На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.

Завершение установки zabbix server

После нажатия на Finish увидите окно авторизации Zabbix сервера.

Авторизация в Zabbix

Стандартная учетная запись для входа в web интерфейс zabbix следующая:

  • Пользователь Admin
  • Пароль zabbix

После логина увидите стандартный dashboard.

Начальный экран мониторинга Zabbix

На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.

Настройка Zabbix Server

Создание учетной записи и смена пароля

Первое, что нужно сделать — сменить стандартные учетные данные для входа. Можно просто поменять пароль пользователя admin, но лучше создать новую учетную запись с правами суперпользователя, а админа удалить. Для этого идем в раздел Administration -> Users и нажимаем Create User.

Добавление нового пользователя в Zabbix

Заполняем все необходимые поля. Можно выбрать русский язык. Обычно я стараюсь работать в английском, но в случае с заббиксом можно сделать исключение. Он очень качественно локализован и проблем не возникает. Не забудьте зайти во вкладку Permissions и выбрать User type — Zabbix Super Admin.

Теперь можно зайти под новым пользователем, а Admin удалить. Но система не даст его удалить, так как он является владельцем некоторых объектов:

  • карты сети — Local Network
  • комплексного экрана Zabbix server
  • панелей Global view и Zabbix server health

Они создаются автоматически при установке заббикса. Вам нужно сменить у них владельца на нового пользователя. После этого стандартного админа можно будет удалить.

Настройка email оповещений

Дальше нужно настроить очень важную часть системы мониторинга — уведомления на email. Без нее система мониторинга не выглядит целостной и полноценной. Zabbix сервер поддерживает отправку почты через сторонние smtp серверы. Настроим один из них. Для этого идем в раздел Администрирование -> Способы оповещений и нажимаем на Email.

Настройка email оповещений в zabbix

Покажу на примере настроек ящика в Яндексе.

Параметры ящика Яндекс для отправки уведомлений

Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем в Администрирование -> Пользователи, выбираем своего пользователя. Идем во вкладку Оповещения и жмем Добавить. Добавляйте свой ящик и нажимайте Обновить.

Добавление адреса получателя уведомлений

Зайдите еще раз в учетную запись и убедитесь, что ящик добавили.

Профиль пользователя с подключенным ящиком для оповещений

Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Настройка -> Действия и жмем на Деактивировано, чтобы стало Активировано.

Включение оповещений в заббиксе

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

Если вам нужны оповещения в telegram, то читайте отдельную статью на эту тему. Так же рекомендую ознакомиться с материалом на тему настройки повторяющихся уведомлений в заббиксе. Для многих триггеров может оказаться очень полезной возможностью. Например, можно каждый день напоминать об окончании времени делегирования домена, пока он не будет продлен.

Так же zabbix умеет звонить через asterisk для оповещения о событиях.

Изменение шаблона стандартных оповещений

Я обычно изменяю стандартный шаблон уведомлений заббикса. Располагается он в разделе Настройка -> Действия, называется Report problems to Zabbix administrators.

Настройка шаблона почтовых сообщений

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

Разница в шаблонах писем-уведомлений

Мне мой вид кажется более наглядным. Шаблон меняет на следующий:

{HOST.NAME} - {TRIGGER.STATUS}: {TRIGGER.NAME}

Настройка темы в письмах zabbix

Он одинаковый и для проблемы, и для восстановления.

Изменение стандартных шаблонов мониторинга

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

  1. В шаблоне Template App Zabbix Agent отключаю триггер Version of zabbix_agent(d) was changed on {HOST.NAME}. Если его оставить, то после каждого обновления zabbix агента вы будете получать уведомление. Лично мне эта информация не нужна.
  2. В шаблоне Template OS Linux меняю в триггере Disk I/O is overloaded on {HOST.NAME} значение со стандартных 20% до 50%. Я считаю, что начинать беспокоиться и смотреть на машину надо при этом значении. Но вы можете подобрать под свои нужды.
  3. В этом же шаблоне в правиле обнаружения Mounted filesystem discovery добавляю еще один прототип триггера, скопировав Free disk space is less than 20% on volume {#FSNAME}. Новый шаблон полностью идентичен скопированному, только вместо 20% указываю 5% и ставлю важность с «Предупреждение» на «Высокая». Я добавляю еще одно оповещение, если свободного места на дисках остается меньше 5%. Стандартные 20% очень высокий порог, особенно если большой диск. Оперативное решение проблемы не требуется. Из-за этого часто откладываешь чистку диска на потом и забываешь о ней. Теперь будет еще один страховочный триггер, после которого точно надо идти и прямо сейчас разбираться с местом. В триггере на 20% свободного места ставлю разрешение на закрытие триггера вручную.
  4. В этом же шаблоне в триггере Lack of free swap space on {HOST.NAME} меняю порог срабатывания с 50% до 20%, либо вообще отключаю его. Сейчас много серверов работают без swap. Хотя лично я всегда его создаю и подключаю.
  5. В шаблоне Template OS Windows отключаю Правило обнаружения Windows service discovery. В дефолтном варианте оно генерирует очень много ненужных итемов и оповещений. Если нужен мониторинг какой-то службы windows, я делаю для этого отдельный шаблон.

Общие настройки

В общих настройках zabbix server, которые располагаются в разделе Администрирование -> Общие я меняю следующие параметры:

  1. В разделе Рабочее время выставляю актуальные рабочие часы.
  2. В разделе Опции отображения триггеров меняю значения Отображать триггеры в состоянии ОК в течении и Мигание триггеров при изменении состояния на 1 минуту. Это просто мои предпочтения. Мне не нравится, когда триггеры долго мигают, либо висят уже закрытые.
  3. В разделе Прочее меняю Обновление неподдерживаемых элементов данных на 1 минуту. Это актуально во время отладки новых шаблонов.

Установка Zabbix Agent на Linux

Если вы хотите установить zabbix-agent на сам сервер мониторинга, то ничего делать не надо, кроме самой установки. Для других систем необходимо подключить репозитории заббикса, которые мы использовали во время установки сервера. Можете посмотреть их в соответствующих разделах для своей системы.

Установка zabbix agent в Centos:

# yum install zabbix-agent

Тоже самое в Ubuntu/Debian:

# apt install zabbix-agent

Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на другую машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.13.117
ServerActive=192.168.13.117
Hostname=srv10 # имя вашего узла мониторинга, которое будет указано на сервере zabbix, Zabbix server если это сам сервер заббикса

Запускаем агент и добавляем в автозагрузку:

# systemctl start zabbix-agent
# systemctl enable zabbix-agent

Проверяем лог файл.

# cat /var/log/zabbix/zabbix_agentd.log
 14154:20181004:201307.800 Starting Zabbix Agent [Zabbix server]. Zabbix 4.0.0 (revision 85308).
 14154:20181004:201307.800 **** Enabled features ****
 14154:20181004:201307.800 IPv6 support:          YES
 14154:20181004:201307.800 TLS support:           YES
 14154:20181004:201307.800 **************************
 14154:20181004:201307.800 using configuration file: /etc/zabbix/zabbix_agentd.conf
 14154:20181004:201307.800 agent #0 started [main process]
 14157:20181004:201307.801 agent #3 started [listener #2]
 14159:20181004:201307.802 agent #5 started [active checks #1]
 14155:20181004:201307.804 agent #1 started [collector]
 14158:20181004:201307.806 agent #4 started [listener #3]
 14156:20181004:201307.810 agent #2 started [listener #1]

Все в порядке. Идем в веб интерфейс и проверяем поступление данных. Для этого идем в раздел Мониторинг -> Последние данные. Указываем в разделе Узлы сети Zabbix Server и ждем поступления первых данных. Они должны пойти через 2-3 минуты после запуска агента.

Просмотр поступающих данных

Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:

# systemctl stop zabbix-agent

Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем главную панель, виджет Проблемы.

Проверка отправки уведомлений о проблемах

Проверяйте email ящик. Туда должно прийти уведомление от заббикс сервера.

Установка zabbix агент на Windows

Для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок https://www.zabbix.com/download_agents и скачиваем самую последнюю версию агента для Windows.

Распаковываем архив. Создаем на диске С: папку zabbix и купируем туда следующие файлы:

  • zabbix_agentd.exe
  • zabbix_get.exe
  • zabbix_sender.exe
  • zabbix_agentd.win.conf

Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:

c:/zabbix/zabbix_agentd.exe --config c:/zabbix/zabbix_agentd.win.conf --install

Установка zabbix agent на Windows

Открываем файл zabbix_agentd.win.conf любым текстовым редактором и изменяем следующие параметры:

LogFile=c:\zabbix\zabbix_agentd.log
LogFileSize=1
Server=192.168.13.117
ServerActive=192.168.13.117
Hostname=win10-01

Открываем оснастку со службами, ищем службу с именем Zabbix agent и запускаем ее.

Запуск службы Zabbix Agent в Windows

Не забываем создать разрешающее правило в Брандмауэр, если он у вас включен. Для этого идем в Панель управления\Система и безопасность\Брандмауэр Windows — Дополнительные параметры — Правило для входящих подключений — Создать правило.

  • Тип правила: Для порта;
  • Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
  • Действие: Разрешить подключение;
  • Профиль (ставим галочки): Доменный, Частный, Публичный;
  • Имя: Zabbix Agent;

Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Настройка -> Узлы сети и жмем Создать узел.

Добавление нового хоста Windows в Zabbix

На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.

Параметры хоста

Потом переходим на вкладку Шаблоны и нажимаем Выбрать. Выбираем шаблон Template OS Windows и жмем маленькую ссылку Добавить, затем большую Добавить.

Подключение шаблона к хосту

Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Последних данных, выбрав новый хост.

Поступление данных с windows машины

На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом установка и базовая настройка сервера мониторинга zabbix 4.0 завершена. Советы, замечания, исправления прошу оставлять в комментариях.

Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться. Бывают, конечно, исключения, но редко.

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

Мониторинг в Zabbix:

Онлайн курс Безопасность Linux

Если у вас есть желание детальнее разобраться в процессах настройки и обеспечения безопасности локальной и сетевой инфраструктуры, построенной на базе ОС Linux, рекомендую познакомиться с онлайн-курсом «Безопасность Linux» в OTUS. Обучение длится 3 месяца, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Программа курса разработана в виде серии практических воркшопов и ориентирована на подготовленных слушателей, уже обладающих знаниями и опытом в администрировании Linux. Чему научитесь:
  • Применять лучшие мировые практики и стандарты ИБ (Debian, RedHat, MitRE);
  • Использовать средства для обнаружения и эксплуатации уязвимостей в ОС Linux;
  • Устанавливать и конфигурировать сетевые системы обнаружения и предотвращения атак;
  • Работать с системами мониторинга и контейнеризации на базе Docker;
Проверьте себя на вступительном тесте и смотрите детальнее программу по .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

267 комментариев

  1. Аватар

    всё делал по вашей инструкции

    после того как добавляю в автозагрузку , появляется ошибка
    [root@localhost]# systemctl enable zabbix-server
    Failed to lookup unit file state: Invalid argument

    что делать?

  2. Аватар

    Добрый день, поставил centos 8 minimal на hyper-V
    пробую поставить zabbix
    появляется ошибка
    curl: (22) The requested URL returned error: 404

    всё что я пытаюсь установить через rpm -Uvh https://
    не получается
    ping на все сайты идут

    • Zerox

      Попробуйте загрузить через wget и установить через rpm, указывая локальный файл. А вообще — 404 это ошибка веб сервера. Либо урл неправильный, либо удаленный сервер не отвечает. Можно попробовать скачать пакеты с другого компьютера и потом скопировать на целевой сервер.

      • Аватар

        на обычном компьютере когда centos ставил всё нормально скачивает.
        Проблема в hyper V скорее всего

  3. Аватар

    Пиздец,я 3 дня возился с разными мануалами по теме установки заббикса.
    И знаете что?
    Это просто восхитительная статья,которая помогла мне черт подери его установить!
    если что у меня бунта 18.04 . устанавливал на виртуалке.
    среди проблем были проблемы с загрузкой служб,и я скажу вам одно — читайте логи!большинство проблем было связано с грамматическими ошибками при редактировании конфигов!
    Автор ты боженька!
    спсибо

  4. Аватар

    Добрый день. Мониторю Микротики 3 шт. (2 во внутренней сети и 1 внешний). Шаблон скопировал стандартный (для модификации при необходимости). Данный шаблон создает прототипы графиков по трафику на интерфейсах микротика. Создаю панель мониторинга для 1 микротика в вэб интерфейсе с графиками (графики динамические) другими ИД. При выборе в этой же панели другого микрота графики остаются прежними от ! микротика. В комплексных экранах работает нормально, графики меняются в зависимости от выбранного роутера. подскажите плиз в чем может быть проблема?

  5. Аватар

    Приветствую! Спасибо за хорошую статью. Заббикс сервер запустил, но до css и js нет доступа. для папки /usr/share/zabbix выдал права 755 и привязал к группе и пользователю www-data. Но это не помогло/ Помогите советом.

  6. Аватар
    Александр

    # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
    очевидно опечатка
    # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u zabbix -p zabbix
    Ну и указать какой пароль именно потом вводить
    А так — ПРОСТО ШИКАРНАЯ СТАТЬЯ! СПАСИБО!

  7. Аватар

    Привет всем. Есть вопрос: установил все работает, но не могу зайти по адресу http://192.168.2.233/zabbix пишет (404 Not Found) ,вхожу только если ввожу этот адрес с http://192.168.2.233/zabbix.php?action=dashboard.view Я так понимаю нужно до настроить NGINX. Куда копать? спасибо

    • Zerox

      192.168.2.233/zabbix это линк на директорию /zabbix, а 192.168.2.233/zabbix.php?action=dashboard.view линк на корень домена, где вызывается скрипт zabbix.php

      Вы заббикс установили в корень сервера. Просто откройте http://192.168.2.233 и увидите дашборд.

      • Аватар

        вот что выскакивает http://file.sampo.ru/qsdqgk/

        • Zerox

          Что-то в nginx не донастроили, проверяйте внимательно. Пример конфига в статье есть, он 100% рабочий. Если что-то не понятно, есть видео. Там наглядно показана вся настройка. Ошибиться нет шанса, если внимательно проверить и сделать по статье и видео.

          У вас вместо заббикса дефолтная страница nginx грузится. Возможно путь к root разделу с исходниками заббикса не указали или ошиблись в нем.

  8. Аватар

    Привет ,в системе zabbix при выборе Способы оповещений я выбираю по Email, и там уже включаю функцию Аутентификация имя пользователя и пароль email который я открыл для zabbix, все данные вроде бы прописаны правильно но оповещения по email не приходит . а вот если Аутентификация отключить оповещений работает просто без Аутентификация. в чём может быть проблема и как её решить?

    • Zerox

      Надо смотреть лог zabbix сервера, там могут быть подсказки, почему не уходит оповещение по email. Если без аутентификации уходят сообщения, это повод повнимательнее посмотреть на почтовый сервер. Он не должен позволять отправлять почту без аутентификации. Это большая дыра в безопасности.

  9. Аватар

    Здраствуйте. Во первых хотель бы сказать спосибо за статю:) У меня вот такая сетуациа и я прашу помоч мне
    У меня zabbix 4.2.6, php 9.3, mariadb 10.3
    все хорошо работает около 300 хастов, вот толко когда хачу настроить Action то прападает связ с базой

    Details Media type test failed.
    Cannot read the response, check connection with the Zabbix server «localhost».
    лог maria db Oct 04 16:27:15 zabbixnew mysqld[3639]: 2019-10-04 16:27:15 48 [Warning] Aborted connection 48 to db: ‘zabbix’ user: ‘zabbix’ host: ‘localhost’ (Got an error reading communication packets)

    max-connection I set 300

    • Zerox

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

      Aborted connection 48 to db: ‘zabbix’ user: ‘zabbix’ host: ‘localhost’ (Got an error reading communication packets)

      Может лимиты на соединения кончаются или еще что-то.

  10. Zerox

    Обновил статью, добавил описание установки на новую CentOS 8.

  11. Аватар

    Добрый день. Помогите разобраться. Застрял на этапе запуска mariadb. Выводятся следующие сообщения: Failed to execute operation: No such file or directory и Failed to start mysql.service: Unit not found. Спасибо.

    • Zerox

      Судя по всему установка либо вообще не прошла, либо были ошибки. Попробуйте переустановить mariadb. Если нужна более детальная помощь, создайте тему на форуме и выложите подробности ошибки и ваших действий.

      • Аватар

        Просмотрел лог установки и обнаружил, что не хватает пакета deltarpm. После установки пакета все стартануло. Спасибо!

  12. Аватар

    Добрый день! Столкнулся вот с чем:
    rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    Retrieving http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    warning: /var/tmp/rpm-tmp.KYE33M: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
    error: Failed dependencies:
    epel-release = 7 is needed by remi-release-7.7-1.el7.remi.noarch

    Если выполнить rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-8.rpm, то команда выполняется успешно, но потом
    yum-config-manager —enable remi-php71
    Error: No matching repo to modify: remi-php71.

    Помогите угадать версию yremi-php

    • Аватар

      В общем вот, что я сделал:
      yum-config-manager —enable remi-php74

      Потом
      yum install php74

      А вот при выполнении команды на установку остальных модулей пхп получаем это:
      Last metadata expiration check: 0:01:00 ago on Thu 26 Sep 2019 10:44:25 AM EEST.
      No match for argument: php-fpm
      No match for argument: php-cli
      No match for argument: php-mysql
      No match for argument: php-gd
      No match for argument: php-ldap
      No match for argument: php-odbc
      No match for argument: php-pdo
      No match for argument: php-pecl-memcache
      No match for argument: php-opcache
      No match for argument: php-pear
      No match for argument: php-xml
      No match for argument: php-xmlrpc
      No match for argument: php-mbstring
      No match for argument: php-snmp
      No match for argument: php-soap
      No match for argument: php-zip
      Error: Unable to find a match

    • Zerox

      Только что проверил, у меня без проблем установился этот репозиторий.

      rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

      Только перед этим не забудьте поставил epel-release. В статье это указано, а вы, похоже, не выполнили, вот и получили ошибку.

      epel-release = 7 is needed

      • Аватар

        [11:57:58] root@zabbix:~ $ yum install epel-release
        Last metadata expiration check: 1:17:34 ago on Thu 26 Sep 2019 10:44:25 AM EEST.
        Package epel-release-8-5.el8.noarch is already installed.
        Dependencies resolved.
        Nothing to do.
        Complete!

        [12:02:00] root@zabbix:~ $ rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm
        Retrieving http://rpms.remirepo.net/enterprise/remi-release-7.rpm
        warning: /var/tmp/rpm-tmp.0TXn5I: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
        error: Failed dependencies:
        epel-release = 7 is needed by remi-release-7.7-1.el7.remi.noarch

        Еще забыл уточнить — у меня CentOS 8, если это имеет значение.

        • Zerox

          Ну как по статье то, если в статье Centos 7 а у вас 8, который вышел два дня назад. Для него еще и реп то может не быть в том же заббиксе. Я не проверял еще.

  13. Аватар
    Алексей

    Владимир, день добрый.
    Споткнулся на настройке Zabbix Frontend. В самом начале. На третьем шаге выдал ошибку: The frontend does not match Zabbix database.
    Пока на форумах ничего, кроме переустановки BD не нашел. Может Вы что подскажете? Может сталкивались с этой проблемой?

    Заранее благодарен.

    • Zerox

      Сам не сталкивался. Я бы просто поставил предыдущую версию, а потом обновил до последней, если нужна именно самая свежая. Но в общем случае достаточно LTS версии 4.0

      • Аватар
        Алексей

        Скажите, а нормально, что на этапе создания базы данных, пользователя zabbix, и заполнения базы…

        # mysql -uroot -p
        Enter password:
        > create database zabbix character set utf8 collate utf8_bin;
        > grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabpassword’;
        exit

        После ввода:
        # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

        выдает ошибку?
        ERROR 1118 (42000) at line 1278: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

        Спасибо

        • Zerox

          Это известная ошибка, исправляется вот так — https://serveradmin.ru/ustanovka-i-nastroyka-zabbix-4-0/#comment-10283

          • Аватар

            То ли я «кто-то», то ли лыжи не едут. Я Все делаю согласно инструкции и согласно всех комментарий и ответов к ним, но я не могу пройти дальше (zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix). Все равно ошибка ТА ЖЕ (ERROR 1118 (42000) at line 1278: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.) Я и в строке innodb-strict-mode= ставил и OFF и 0. Все равно. Удалял и пересоздавал базу уже 5 раз. Что я делаю не так, люди добрые. Подскажите пожалуйста!

            • Zerox

              Mysql перезапускал после внесения изменений в конфиг?

              • Аватар

                Ну конечно НЕТ. как говорится «умная мысля, приходит опосля». Извиняюсь, что не разобравшись до конца вопросы тыкаю.

  14. Аватар
    Александр

    Добрый день!
    Есть проблема при выполнении команды zcat, после создания базы для заббикса
    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
    Выходит ошибка «ERROR 1118 (42000) at line 1278: Row size too larg (>8126). Changing some colums to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.»
    Нужно в zabbix_server.conf добавить строчку ниже [mysqld] innodb-strict-mode=OFF
    После этого zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix отработает правильно.

    • Zerox

      Спасибо за информацию. Я такую ошибку ни разу не встречал.

    • Аватар
      Станислав

      а где именно вписать строку [mysqld] innodb-strict-mode=OFF в самом конце?.

      • Zerox

        Нужно строку

        innodb-strict-mode=OFF

        вставить в ту секцию конфига, которая начинается с

        [mysqld]

        То есть это не целиковый параметр. Должно быть вот так:

        [mysqld]
        innodb-strict-mode=OFF

        • Аватар
          Станислав

          просто я не могу найти в конфиге mcedit /etc/zabbix/zabbix_server.conf
          вообще такую секцию

          • Zerox

            Этот параметр нужно добавлять в конфиг mysql, автор начального комментария ошибся. Этот конфиг обычно находится в /etc/my.cnf

            • Аватар
              Станислав

              да уже разобрался спасибо этот параметр нужно вносить вот сюда /etc/my.cnf.d/server.cnf

  15. Аватар

    Добрый день, все установилось по статье отлично на Ubuntu18.04 Zabbix4.0.12/ Подскажите, хочу русскую версию, по подсказкам из интернета все установилось, но в панели не появляется русский язык. В какую сторону смотреть? Спасибо

  16. Аватар

    Configure DB connection
    Please create database manually, and set the configuration parameters for connection to this database. Press «Next step» button when done.

    Details Cannot connect to the database.
    The frontend does not match Zabbix database.

    Помогите плис, я уже весь инет обшарил

    • Zerox

      Так тут же прямым текстом написано, что нет доступа к БД. Инет шарить не обязательно, достаточно повторить все по статье. Даже видео есть, чтобы наглядно все увидеть.

  17. Аватар
    Александр

    Добрый день. Почему-то при вводе «yum-config-manager —enable remi -php741» выходит yum-config-manager: команда не найдена

    • Zerox

      Вы не установили пакет yum-utils. Команда на его установку дана выше той, что вы привели. Смотрите внимательнее статью.

  18. Аватар
    Алексей

    Владимир, а зачем вообще мы совершаем это лишнее телодвижение по установке и настройке nginx? Почему бы не оставить дефолтный apache? Чем продиктовано это. Очень интересно)))

    • Zerox

      В принципе, ничем особенным. Это мое предпочтение. Считается, то связка nginx + php-fpm работает быстрее апача. Но конкретно для Zabbix это вообще не принципиально, плюс тестов никто не делал. Узкое место zabbix — база, а не интерфейс. Я zabbix чаще ставлю на nginx, потому что с nginx больше работаю, он мне привычней.

  19. Аватар
    Алексей

    Владимир, день добрый!
    Подскажите, пожалуйста. Спотыкаюсь на этом моменте:
    ___________________
    В зависимостях пакетов будет httpd, который нам не нужен, так как у нас будет nginx и php7.1, но я не разбирался, как поставить без него. После установки пакетов, создадим базу данных, пользователя zabbix и заполним базу.

    # mysql -uroot -p
    Enter password:
    > create database zabbix character set utf8 collate utf8_bin;
    > grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabpassword’;
    exit
    # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

    ___________________
    ‘zabpassword’ — это мной придуманный пароль? Или здесь нужно не задумываясь копипастить?

    Спасибо.

    • Аватар

      1. «‘zabpassword’ — это мной придуманный пароль?» — именно так!
      2. «В зависимостях пакетов будет httpd, который нам не нужен, так как у нас будет nginx и php7.1, но я не разбирался, как поставить без него.»
      Если планируете в дальнейшем использовать веб-сервер Nginx (вместо Apache (httpd)), тогда просто отключите его в системе! Для отключения Apache в CentOS 7 нужно выполнить две команды:
      systemctl stop httpd
      systemctl disable httpd

      Первая команда остановит сервис Apache (httpd), а вторая исключит его из автозапуска ОС CentOS 7. И пусть он себе лежит тихонько, т.к. удалять его пока не рекомендуется (могут нарушиться зависимости других пакетов, установленных в системе).

      • Аватар
        Алексей

        Спасибо.
        А правильно ли Я понимаю, что в этом же месте:
        _______________
        grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabpassword’;
        _______________

        вместо zabbix@localhost указывается то имя узла, что было задоно при установке CentOS? Т.е. если при установке сменить дефолтный localhost на, допустим, myserver, то значение нужно указывать — zabbix@myserver?
        Т.е строчка будет выглядеть так:
        > grant all privileges on zabbix.* to zabbix@myserver identified by ‘mypassword’;

      • Аватар
        Алексей

        Еще одну инструкцию в сети нашел. В ней сказано, что пользователя zabbix@localhost и пароль zabbixpassword вы можете задать любые. А как формируется имя пользователя? Интуитивно догадываюсь, что @localhost — это часть зависит от имени узла нашего сервака. А первая часть zabbix@ — получается придумывается от фонаря? Любое? К примеру могу задать: beshenytarakan@localhost ?

        • Аватар

          1.Вам для начала нужно изучить основы работы с базой данных MySQL иначе дальше Вас ждут ещё больше трудностей…
          Вот тут очень просто и доступно для понимания новичкам об основах работы с MySQL:
          https://interface31.ru/tech_it/2016/02/osnovy-administrirovaniya-mysql-pri-pomoschi-komandnoy-stroki.html

          2. «вместо zabbix@localhost указывается то имя узла, что было задоно при установке CentOS»
          «localhost» в данном случае значит, что создаете пользователя в базе данных MySQL на текущем сервере (компьютере) и оно не зависит от имени компьютера!!!

          3. «zabbix@localhost и пароль zabbixpassword вы можете задать любые.»
          Тут «zabbix» — это имя пользователя в базе данных MySQL, который собственно и нужен для подключения Вашего сервера мониторинга к этой самой базе данных! Вы можете задать его на свое усмотрение, тот же «beshenytarakan».
          Спец символ «@», если вы не знаете, используется для подключение к удалённому серверу/хосту (в той же самой почте когда отправляете кому-то письмо) и расшифровывается как «at» (что с английского означает — «на»). Ну, а об «localhost» я написал Вам выше.

          • Аватар
            Алексей

            Спасибо. Уже начал ознакомление.
            Что ж поделать. Жизнь так сложилась, что учусь — как могу. Вот благодаря Владимиру с его блогом уже сделал первые шаги в постижении Linux-а, за что ему крайне благодарен.
            Да и вообще, спасибо всем тем, кто не прячет знания за непроницаемой завесой, а делится им и помогает таким новичкам, как Я =) Вот и Вас благодарю)

  20. Аватар

    Добрый день!
    На главном экране в виджете «Информация о системе» параметр «Zabbix сервер запущен» стоит в значении «нет» и в деталях параметра прописано «Zabbix-server:10051», хотя все данные и пинги отображаются и все работает. Также внизу экрана периодически выскакивает сообщение «Zabbix сервер не запущен: отображаемая информация может быть не актуальной». Вопрос: эти сообщения выскакивают потому что в деталях параметра прописано «Zabbix-server:10051», а не «localhost:10051» как у вас, или у меня реально не запущен сервер? В логах все в порядке, ошибок никаких нет

    • Zerox

      Собственно, а почему у вас указан Zabbix-server а не localhost? В данном случае это dns запись, по которой идет обращение к серверу. Если у вас Zabbix-server не резолвится в ip адрес сервера, то будут ошибки.

      • Аватар

        Подскажите, где этот параметр меняется, а то не могу найти где она прописана

        • Zerox

          Не помню, не менял никогда. Если все делать по статье, то не нужно ничего менять. Этот параметр по-дефолту выставляется так, как надо.

          • Аватар

            Я вспомнил: менял ее во время первоначальной инициализации(Welcome to Zabbix) в разделе «zabbix server details». Можно ли сбросить сервер или где расположен этот файл конфига?

        • Zerox

          Вот тут конфиг, в котором надо исправить — /etc/zabbix/web/zabbix.conf.php

  21. Аватар

    Добрый день.
    Debian 10 устанавливаю zabbix по вашей инструкции и после того когда ввожу:
    zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
    далее указываю пароль, выполнение команды «подвисает»? , затем нажимаю ctrl+c и выдает ERROR 1064 (42000) at line 2058: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near » at line 1

    Пробовал несколько раз установить с нуля по данной инструкции и не выходит, zabbix-server не стартует.

    В линуксе не слишком силен, прошу помощи может кто сможет подсказать в чем проблема
    mysql —version
    mysql Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

    • Zerox

      Только что проверил на debian 10, у меня все получилось точно по инструкции. Создалась база по указанным выше командам, потом сделал экспорт команд из create.sql как у вас в команде через zcat. Потом запустил zabbix-server, ошибок не было.

  22. Аватар

    # nano /etc/my.cnf.d/server.cnf
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    innodb_file_per_table=1
    innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
    innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
    innodb_flush_log_at_trx_commit = 0
    innodb_log_file_size = 512M
    innodb_log_files_in_group = 3
    innodb_strict_mode = 0 # внимание! без него БД может не создаваться. Ошибка 1118: Row size too large (> 8126)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Поставил на один комп 4.2 по инстркцкии, все сразу заработало, а вот на втором после создания базы мускула
    команда zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p example выдавала ошибку 1118.
    Потратил полдня, чтобы найти правильное решение, может кому-то этот опыт пригодится)
    А может сразу добавите строчку в инструкцию

    • Zerox

      Спасибо. Мне на днях как раз один человек жаловался на похожую ошибку:

      [Warning] InnoDB: Cannot add field `poc_2_phone_b` in table `zabbix`.`host_inventory` because after adding it, the row size is 8246 which is greater than maximum allowed size (8126) for a record on index leaf page.

      Похоже, корни проблемы одни и те же.

  23. Аватар
    Алексей

    Приветствую.
    Zerox, делал по вашей инструкции, и, после изменения конфига /etc/php-fpm.d/www.conf выдало
    _____
    [root@web ~]# systemctl restart php-fpm
    Job for php-fpm.service failed because the control process exited with error code. See «systemctl status php-fpm.service» and «journalctl -xe» for details.
    [root@web ~]# ll /var/run/php-fpm/php-fpm.sock
    ls: невозможно получить доступ к /var/run/php-fpm/php-fpm.sock: Нет такого файла или каталога
    _____
    Я что-то упустил? Надо было /var/run/php-fpm/php-fpm.sock создать в ручную?

    Спасибо.

    • Аватар

      В конфиге пропустил строчку
      listen = /var/run/php-fpm/php-fpm.sock
      ее надо прописать, остальные раскоментить/закоментить

      • Аватар

        Добрый день!
        Подскажите обновил CentOS 7 через команду «# yum update»

        Прилетела ошибка, после перезагрузки: MySQL database «zabbix» on «localhost» is not available: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2 «No such file or directory»)

        Подскажите в чем может быть проблема ?

        • Zerox

          Не запущен mysql сервер по какой-то причине, поэтому не получается подключиться к базе. Смотрите лог mysql и messages. Так же можно посмотреть вывод:
          systemctl status mysql

          • Аватар

            [root@localhost ~]# systemctl status mysql
            ● mariadb.service — MariaDB 10.3.17 database server
            Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
            Drop-In: /etc/systemd/system/mariadb.service.d
            └─migrated-from-my.cnf-settings.conf
            Active: active (running) since Пт 2019-09-06 22:21:14 +07; 5min ago
            Docs: man:mysqld(8)
            https://mariadb.com/kb/en/library/systemd/
            Process: 1364 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
            Process: 1046 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
            Process: 1024 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
            Main PID: 1184 (mysqld)
            Status: «Taking your SQL requests now…»
            CGroup: /system.slice/mariadb.service
            └─1184 /usr/sbin/mysqld

            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] Plugin ‘FEEDBACK’ is disabled.
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] Server socket created on IP: ‘::’.
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] Reading of all Master_info entries succeeded
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] Added new Master_info » to hash table
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:14 0 [Note] /usr/sbin/mysqld: ready for connections.
            сен 06 22:21:14 localhost.localdomain mysqld[1184]: Version: ‘10.3.17-MariaDB’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MariaDB Server
            сен 06 22:21:14 localhost.localdomain systemd[1]: Started MariaDB 10.3.17 database server.
            сен 06 22:21:16 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:16 0 [Note] InnoDB: Buffer pool(s) load completed at 190906 22:21:16
            сен 06 22:21:23 localhost.localdomain mysqld[1184]: 2019-09-06 22:21:23 10 [Warning] InnoDB: Cannot add field `poc_2_phone_b` in table `zabbix`.`host_inv…eaf page.
            Hint: Some lines were ellipsized, use -l to show in full.
            [root@localhost ~]#

  24. Аватар

    Доброго времени суток! У меня установлен Zabbix 4.2.3 на CentOS 7. Хочу мониторит Windows. Настроил агент: LogFile=c:\zabbix\zabbix_agentd.log; Server=192.168.10.10; Hostname=001-015015; (192.168.10.10= zabbix server), телнет со стороны агнета (Windows) на порт 10050 проходит но агент не подключается к серверу (Get value from agent failed: cannot connect to [[192.168.15.15]:10050]: [4] Interrupted system call) Мониторинг маршрутизатор (Mikrotik) по SNMP проходит без проблем. В чем может быт проблема?

    • Zerox

      На самом сервере windows хост добавлен? Его адрес верно указан?

      • Аватар

        zabbix_agentd.win.conf

        Я даже попробовал вместо имя хоста ip address калиента (Windows)-а прописал, но бесполезно.

        # This is a configuration file for Zabbix agent service (Windows)
        # To get more information about Zabbix, visit http://www.zabbix.com
        
        ############ GENERAL PARAMETERS #################
        
        ### Option: LogType
        #	Specifies where log messages are written to:
        #		system  - Windows event log
        #		file    - file specified with LogFile parameter
        #		console - standard output
        #
        # Mandatory: no
        # Default:
        # LogType=file
        
        ### Option: LogFile
        #	Log file name for LogType 'file' parameter.
        #
        # Mandatory: no
        # Default:
        # LogFile=
        
        LogFile=c:\zabbix\zabbix_agentd.log
        
        ### Option: LogFileSize
        #	Maximum size of log file in MB.
        #	0 - disable automatic log rotation.
        #
        # Mandatory: no
        # Range: 0-1024
        # Default:
        # LogFileSize=1
        
        ### Option: DebugLevel
        #	Specifies debug level:
        #	0 - basic information about starting and stopping of Zabbix processes
        #	1 - critical information
        #	2 - error information
        #	3 - warnings
        #	4 - for debugging (produces lots of information)
        #	5 - extended debugging (produces even more information)
        #
        # Mandatory: no
        # Range: 0-5
        # Default:
        # DebugLevel=3
        
        ### Option: SourceIP
        #	Source IP address for outgoing connections.
        #
        # Mandatory: no
        # Default:
        # SourceIP=
        
        ### Option: EnableRemoteCommands
        #	Whether remote commands from Zabbix server are allowed.
        #	0 - not allowed
        #	1 - allowed
        #
        # Mandatory: no
        # Default:
        # EnableRemoteCommands=0
        
        ### Option: LogRemoteCommands
        #	Enable logging of executed shell commands as warnings.
        #	0 - disabled
        #	1 - enabled
        #
        # Mandatory: no
        # Default:
        # LogRemoteCommands=0
        
        ##### Passive checks related
        
        ### Option: Server
        #	List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
        #	Incoming connections will be accepted only from the hosts listed here.
        #	If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally and '::/0' will allow any IPv4 or IPv6 address.
        #	'0.0.0.0/0' can be used to allow any IPv4 address.
        #	Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.domain
        #
        # Mandatory: yes, if StartAgents is not explicitly set to 0
        # Default:
        # Server=
        
        Server=192.168.10.10
        
        ### Option: ListenPort
        #	Agent will listen on this port for connections from the server.
        #
        # Mandatory: no
        # Range: 1024-32767
        # Default:
        # ListenPort=10050
        
        ### Option: ListenIP
        #		List of comma delimited IP addresses that the agent should listen on.
        #		First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
        #
        # Mandatory: no
        # Default:
        # ListenIP=0.0.0.0
        
        ### Option: StartAgents
        #	Number of pre-forked instances of zabbix_agentd that process passive checks.
        #	If set to 0, disables passive checks and the agent will not listen on any TCP port.
        #
        # Mandatory: no
        # Range: 0-100
        # Default:
        # StartAgents=3
        
        ##### Active checks related
        
        ### Option: ServerActive
        #	List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
        #	If port is not specified, default port is used.
        #	IPv6 addresses must be enclosed in square brackets if port for that host is specified.
        #	If port is not specified, square brackets for IPv6 addresses are optional.
        #	If this parameter is not specified, active checks are disabled.
        #	Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
        #
        # Mandatory: no
        # Default:
        # ServerActive=
        
        ServerActive=192.168.10.10
        
        ### Option: Hostname
        #	Unique, case sensitive hostname.
        #	Required for active checks and must match hostname as configured on the server.
        #	Value is acquired from HostnameItem if undefined.
        #
        # Mandatory: no
        # Default:
        # Hostname=
        
        Hostname=001-015015
        
        ### Option: HostnameItem
        #	Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
        #	Does not support UserParameters or aliases.
        #
        # Mandatory: no
        # Default:
        # HostnameItem=system.hostname
        
        ### Option: HostMetadata
        #	Optional parameter that defines host metadata.
        #	Host metadata is used at host auto-registration process.
        #	An agent will issue an error and not start if the value is over limit of 255 characters.
        #	If not defined, value will be acquired from HostMetadataItem.
        #
        # Mandatory: no
        # Range: 0-255 characters
        # Default:
        # HostMetadata=
        
        ### Option: HostMetadataItem
        #	Optional parameter that defines an item used for getting host metadata.
        #	Host metadata is used at host auto-registration process.
        #	During an auto-registration request an agent will log a warning message if
        #	the value returned by specified item is over limit of 255 characters.
        #	This option is only used when HostMetadata is not defined.
        #
        # Mandatory: no
        # Default:
        # HostMetadataItem=
        
        ### Option: RefreshActiveChecks
        #	How often list of active checks is refreshed, in seconds.
        #
        # Mandatory: no
        # Range: 60-3600
        # Default:
        # RefreshActiveChecks=120
        
        ### Option: BufferSend
        #	Do not keep data longer than N seconds in buffer.
        #
        # Mandatory: no
        # Range: 1-3600
        # Default:
        # BufferSend=5
        
        ### Option: BufferSize
        #	Maximum number of values in a memory buffer. The agent will send
        #	all collected data to Zabbix server or Proxy if the buffer is full.
        #
        # Mandatory: no
        # Range: 2-65535
        # Default:
        # BufferSize=100
        
        ### Option: MaxLinesPerSecond
        #	Maximum number of new lines the agent will send per second to Zabbix Server
        #	or Proxy processing 'log', 'logrt' and 'eventlog' active checks.
        #	The provided value will be overridden by the parameter 'maxlines',
        #	provided in 'log', 'logrt' or 'eventlog' item keys.
        #
        # Mandatory: no
        # Range: 1-1000
        # Default:
        # MaxLinesPerSecond=20
        
        ############ ADVANCED PARAMETERS #################
        
        ### Option: Alias
        #	Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
        #	Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
        #	Different Alias keys may reference the same item key.
        #	For example, to retrieve paging file usage in percents from the server:
        #	Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]
        #	Now shorthand key pg_usage may be used to retrieve data.
        #	Aliases can be used in HostMetadataItem but not in HostnameItem or PerfCounter parameters.
        #
        # Mandatory: no
        # Range:
        # Default:
        
        ### Option: Timeout
        #	Spend no more than Timeout seconds on processing.
        #
        # Mandatory: no
        # Range: 1-30
        # Default:
        # Timeout=3
        
        ### Option: PerfCounter
        #	Syntax: ,"",
        #	Defines new parameter  which is an average value for system performance counter  for the specified time period  (in seconds).
        #	For example, if you wish to receive average number of processor interrupts per second for last minute, you can define new parameter "interrupts" as following:
        #	PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
        #	Please note double quotes around performance counter path.
        #	Samples for calculating average value will be taken every second.
        #	You may run "typeperf -qx" to get list of all performance counters available in Windows.
        #
        # Mandatory: no
        # Range:
        # Default:
        
        ### Option: Include
        #	You may include individual files in the configuration file.
        #
        # Mandatory: no
        # Default:
        # Include=
        
        # Include=c:\zabbix\zabbix_agentd.userparams.conf
        # Include=c:\zabbix\zabbix_agentd.conf.d\
        # Include=c:\zabbix\zabbix_agentd.conf.d\*.conf
        
        ####### USER-DEFINED MONITORED PARAMETERS #######
        
        ### Option: UnsafeUserParameters
        #	Allow all characters to be passed in arguments to user-defined parameters.
        #	The following characters are not allowed:
        #	\ ' " ` * ? [ ] { } ~ $ ! & ; ( )  | # @
        #	Additionally, newline characters are not allowed.
        #	0 - do not allow
        #	1 - allow
        #
        # Mandatory: no
        # Range: 0-1
        # Default:
        # UnsafeUserParameters=0
        
        ### Option: UserParameter
        #	User-defined parameter to monitor. There can be several user-defined parameters.
        #	Format: UserParameter=,
        #
        # Mandatory: no
        # Default:
        # UserParameter=
        
        ####### TLS-RELATED PARAMETERS #######
        
        ### Option: TLSConnect
        #	How the agent should connect to server or proxy. Used for active checks.
        #	Only one value can be specified:
        #		unencrypted - connect without encryption
        #		psk         - connect using TLS and a pre-shared key
        #		cert        - connect using TLS and a certificate
        #
        # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
        # Default:
        # TLSConnect=unencrypted
        
        ### Option: TLSAccept
        #	What incoming connections to accept.
        #	Multiple values can be specified, separated by comma:
        #		unencrypted - accept connections without encryption
        #		psk         - accept connections secured with TLS and a pre-shared key
        #		cert        - accept connections secured with TLS and a certificate
        #
        # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
        # Default:
        # TLSAccept=unencrypted
        
        ### Option: TLSCAFile
        #	Full pathname of a file containing the top-level CA(s) certificates for
        #	peer certificate verification.
        #
        # Mandatory: no
        # Default:
        # TLSCAFile=
        
        ### Option: TLSCRLFile
        #	Full pathname of a file containing revoked certificates.
        #
        # Mandatory: no
        # Default:
        # TLSCRLFile=
        
        ### Option: TLSServerCertIssuer
        #		Allowed server certificate issuer.
        #
        # Mandatory: no
        # Default:
        # TLSServerCertIssuer=
        
        ### Option: TLSServerCertSubject
        #		Allowed server certificate subject.
        #
        # Mandatory: no
        # Default:
        # TLSServerCertSubject=
        
        ### Option: TLSCertFile
        #	Full pathname of a file containing the agent certificate or certificate chain.
        #
        # Mandatory: no
        # Default:
        # TLSCertFile=
        
        ### Option: TLSKeyFile
        #	Full pathname of a file containing the agent private key.
        #
        # Mandatory: no
        # Default:
        # TLSKeyFile=
        
        ### Option: TLSPSKIdentity
        #	Unique, case sensitive string used to identify the pre-shared key.
        #
        # Mandatory: no
        # Default:
        # TLSPSKIdentity=
        
        ### Option: TLSPSKFile
        #	Full pathname of a file containing the pre-shared key.
        #
        # Mandatory: no
        # Default:
        # TLSPSKFile=
        • Zerox

          Вы пишите, что агент не подключается к серверу, а приводите лог с сервера, где он не может подключиться к агенту.
          (Get value from agent failed: cannot connect to [[192.168.15.15]:10050]: [4] Interrupted system call)

          Кто куда в итоге подключиться не может? Проверьте телнетом подключения в обе стороны, с агента на сервер и с сервера на агент. Чудес не бывает, где-то ошибка.

          • Аватар

            Добрый день Владимир! Немного запутала агента с сервером. Проблема решено. Причина: между сервером и клиентом стоит Router MikroTik, на нем было прописано правила только в одно сторону, добавил еще одно правило (в обратную сторону), и все заработало. Спасибо за отзыв. Удачи!!!

  25. Аватар

    Здраствуйте, я думаю многим будет интересно ешо настротки https, вход в zabbix по ssl, если моё это ето то дабавте pleese:)

  26. Аватар

    После 1 перезагрузки debian 9 перестал заходить на zabbix. (заходил так: htttp://ip/zabbix). До этого нормально все заходил, там все делал как было написано у вас.
    Сейчас пишет 404 not found. zabbix-server работает, nginx работает.
    Failed to start The Apcache HTTP Server — влияет как то на это?
    Если да, то как исправить?
    Заранее спасибо за ответы.

    • Zerox

      Не понял, откуда взялась ошибка с Apache. Я в статье использую nginx, а apache удаляю. Похоже, вы что-то напутали во время установки и настройки.

      • Аватар

        Где вы удаляете apache? в инструкции к дебиан только это. Делал все по инструкции. Переустанавливал еще 2 раза. Знаете ли вы возможные решения данной проблемы?
        1 строчка останавливает его, а 2 убирает из автозагрузки. Верно?
        Он по-умолчанию ставится с apache, который сразу же запускается. Остановим его и отключим:

        # systemctl stop apache2
        # systemctl disable apache2

      • Аватар

        Делал все по инструкции к дебиан. Сначала мы останавливаем apache затем убираем его из автозагрузки.
        Переустанавливал все по новой два раза. Безуспешно. Есть ли у вас идеи для решения этой проблемы?

  27. Аватар

    Подскажите пожалуйста, как примерно это лечить?
    Заббикс устанавливал по вашему мануалу.
    Только щас обратил внимание в логаг сервера, что скл ругается . И не пойму, что это такое.

    Jun 14 11:45:08 zabbix systemd: Started Cleanup of Temporary Directories.
    Jun 14 12:16:54 zabbix mysqld: 2019-06-14 12:16:54 476479 [Warning] Aborted connection 476479 to db: ‘zabbix’ user: ‘zabbix’ host: ‘localhost’ (Got timeout reading communication packets)

    • Zerox

      Прямым текстом написана проблема:
      Got timeout reading communication packets
      Что-то с mysql, либо тормозит сильно, либо падает. Соединение по таймауту отваливается.

  28. Аватар

    Zabbix на ubuntu 18 по этому мануалу залетела без проблем. Все вроде бы хорошо, но уже неделю не могу одолеть данную проблему — клиентские пк (win7) в домене AD не отдают запросы серверу. UPD любые устройства в 10.16.107.0/24

    Сервер крутится на ip 10.16.0.2 (iptables default)
    Хосты в динамическом пуле 10.16.107.0/24

    По ICMP с заббикс сервера контакт есть, по ZBX, SNMP — нет

    Файрвол на хостах выключен, snmp и zabbix агент настроены. На веб морду с хостов не пускает, командой ping видит. Уже гуглояндекс перекопал, даже в домен завел убунту. Не помогает. Грешу на AD, у кого какие идеи, советы будут?

  29. Аватар

    Zerox. Доброго времени суток и спасибо тебе за такие прекрасные статьи! Очень помогают!

    По статье установил CentOS, по другой статье его настроил (IPTables).
    В этой статье установил NGINX и добавил его в автозагрузку.
    Но при обращении к nginx со своего компа страница не открывается. nginx слушает 80й порт, я открыл порт в IPTables но все равно не могу до него достучаться. nginx запущен. В access и error все пусто. Подскажи пожалуйста куда копать и извиняюсь сразу!

    Заранее благодарен!

    • Zerox

      Раз в access и error лог пусто, значит запросы до nginx не доходят. Либо фаервол блочит, либо nginx не запущен.

      • Аватар

        Nginx со статусом (Active (running))
        Открыл порт 80 как на входящие, так и исходящие. Правила вроде как применились, может не так открыл.
        $IPT -A OUTPUT -o $WAN -p tcp -m tcp —dport 80 -j ACCEPT
        $IPT -A INPUT -i $WAN -p tcp -m tcp —sport 80 -j ACCEPT

        в /var/log/messages идут записи
        Jun 11 09:34:57 zabbix kernel: — IN — DROP IN=ens33 OUT= MAC=00:0c:29:f0:d9:36:8c:89:a5:36:9a:a6:08:00 SRC=192.168.101.188 DST=192.168.101.10 LEN=60 TOS
        =0x00 PREC=0x00 TTL=64 ID=21788 DF PROTO=TCP SPT=15577 DPT=10051 WINDOW=8192 RES=0x00 SYN URGP=0
        где 192.168.101.188 — моя тачка
        192.168.101.10 — виртуальная тачка с CentOS

        И вот такие записи еще есть
        Jun 11 09:34:16 zabbix kernel: — IN — DROP IN=ens33 OUT= MAC=ff:ff:ff:ff:ff:ff:cc:2d:e0:b6:43:a3:08:00 SRC=192.168.101.1 DST=255.255.255.255 LEN=161 TOS
        =0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=5678 DPT=5678 LEN=141

  30. Аватар

    Всем доброго времени суток, накатил zabbix на ubuntu 18 по этому мануалу. В итоге столкнулся с проблемой — не отображается легенда на графиках. На просторах интернета нашел лечилку, но увы не помогает. Подскажите, пжл, что не так делаю?

    sudo apt install fonts-dejavu
    sudo cp /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf_bcp
    sudo cp /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf /usr/share/zabbix/fonts/graphfont.ttf

    п÷п╬пЄпЁп╬я┌п╬п╡п╨п╟ п╨ я─п╟я│п©п╟п╨п╬п╡п╨п╣ Б─і/fonts-dejavu-extra_2.37-1_all.deb Б─і
    п═п╟я│п©п╟п╨п╬п╡я▀п╡п╟п╣я┌я│я▐ fonts-dejavu-extra (2.37-1) Б─і
    п▓я▀п╠п╬я─ я─п╟пҐп╣п╣ пҐп╣ п╡я▀п╠я─п╟пҐпҐп╬пЁп╬ п©п╟п╨п╣я┌п╟ fonts-dejavu.
    п÷п╬пЄпЁп╬я┌п╬п╡п╨п╟ п╨ я─п╟я│п©п╟п╨п╬п╡п╨п╣ Б─і/fonts-dejavu_2.37-1_all.deb Б─і
    п═п╟я│п©п╟п╨п╬п╡я▀п╡п╟п╣я┌я│я▐ fonts-dejavu (2.37-1) Б─і
    п²п╟я│я┌я─п╟п╦п╡п╟п╣я┌я│я▐ п©п╟п╨п╣я┌ fonts-dejavu-extra (2.37-1) Б─і
    п²п╟я│я┌я─п╟п╦п╡п╟п╣я┌я│я▐ п©п╟п╨п╣я┌ fonts-dejavu (2.37-1) Б─і
    root@zabbix:/etc# cp /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf_bcp
    root@zabbix:/etc# cp /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf /usr/share/zabbix/fonts/graphfont.ttf
    cp: ‘/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf’ and ‘/usr/share/zabbix/fonts/graphfont.ttf’ are the same file

    • Аватар

      Решил проблему копированием шрифтов в директорию /usr/share/zabbix/assets/fonts/

      cp /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/assets/fonts/

    • Аватар

      Аналогичная проблема появилась сегодня после обновления до 4.2.2
      не помогло: update-alternatives —install /usr/share/zabbix/fonts/graphfont.ttf zabbix-frontend-font /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf 10

      • Zerox

        К сожалению, не знаю чем помочь. Как раз из-за таких мелких глюков я в проде всегда инфраструктуру ставлю на centos, а ubuntu идет под web приложения разработчиков.

  31. Аватар

    Здравствуйте ,все шаги по инструкции ,дошло дело до Настройка Zabbix Frontend ,открывается первая старица установки получаю сообщение (Directory «/usr/share/zabbix/assets» must be writable.),пробовал sudo chmod -R 777 /usr/share/zabbix/assets; chown zabbix:zabbix /usr/share/zabbix/assets;chown -R nginx:nginx /usr/share/zabbix/assets; Вроде мелочь такая ,а не могу разобраться.(Centos 7)Спасибо

    • Zerox

      Повторите все аккуратно. Есть же даже видео, где наглядно показаны все шаги. Ошибка из-за невнимательности. Не знаю, чем тут помочь.

      • Аватар

        Здравствуйте ,решил проблему

        chown -R nginx:nginx /usr/share/zabbix/assets/
        semanage fcontext -a -t httpd_sys_rw_content_t ‘/usr/share/zabbix/assets’
        restorecon -vvR /usr/share/zabbix/assets

        • Аватар

          Тоже столкнулся с этой проблемой во время установки, хотя вроде всё делал по мануалу. В общем всем у кого Directory «/usr/share/zabbix/assets» must be writable. делаем: chown -R nginx:nginx /usr/share/zabbix/assets/

          • Zerox

            Возможно что-то в пакете установочном поменялось, но вообще странно. Обычно у заббикса изменений по установке не возникает. Ни разу не сталкивался. Все статьи по установке заббикса до сих пор актуальны.

  32. Аватар

    Добрый день! Вопрос в следующем — почему-то при проверке
    nginx -s reload
    возникает ошибка

    conflicting server name «localhost» on 0.0.0.0:80, ignored

    Подскажите — почему такое произошло, вроде всё по инструкции, я не понимаю почему он ругается на локалхост и где это подправить.

    • Zerox

      У вас имя виртуального хоста localhost используется 2 раза в конфигурации nginx. Вы 100% где-то ошиблись. Напутали с конфигами.

      • Аватар

        Подскажите, пожалуйста, о каком конфиге идет речь? В nginx вообще не упоминается localhost, в /etc/nginx/conf.d/default.conf он используется один раз.

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

  33. Аватар

    Спасибо, попробую. Жаль, конечно, что не сталкивались с mqtt. Уж больно у вас всё точно по полкам разложено и всё работает. mqtt довольно широко используется в системах «усного дома».

  34. Аватар

    Добрый день, Zerox!
    Премного благодарен за такую выверенную статью. Всё встает и на Centos и на Ubuntu. Хочу прикрутить заббикс собирать данные от домашней метеостанции на ESP8266. Не хватает одного звена — принятие данных заббиксом по протоколу MQTT. Вам не приходилость сталкиваться с такими задачами?

  35. Аватар
    Александр

    Здравствуйте, подскажите пожалуйста как создать базу zabbix на удалённом сервере mysql ???

    • Zerox

      Перекинуть туда файл /usr/share/doc/zabbix-server-mysql/create.sql.gz и залить дамп из этого файла, так же как в инструкции.

      • Аватар
        Александр

        А как же учётки zabbix, они же создаются при установке zabbix сервера ?

        • Zerox

          Каков вопрос, таков ответ. Я сказал, как создать базу. Конечно, туда надо добавить пользователя, а еще разрешить в mysql удаленные подключения. По-умолчанию они только с localhost разрешены.

          • Аватар

            Владимир, здравствуйте!
            я устанавливаю , согласно Вашей статье, Zabbix через WMware, у меня на WMware только Zabbix.
            Выдаётся ошибка — 502 Bad Gateway
            Вопрос: наверно другие настройки должны быть в конфигурационном файле nginx при таком расскладе?

          • Аватар

            разобрался, нет опыта работы в Linux

      • Аватар
        Александр

        15504:20190520:135019.334 [Z3001] connection to database ‘zabbix’ failed: [1130] Host ‘192.168.10.232’ is not allowed to connect to this MariaDB server
        15504:20190520:135019.334 Cannot connect to the database. Exiting…

  36. Аватар

    поставил php73, в итоге у меня щас установлено две версии. Что в таком случае делать? УДалять старую?
    php71.x86_64 2.0-1.el7.remi @remi-safe
    php71-php-cli.x86_64 7.1.29-1.el7.remi @remi-safe
    php71-php-common.x86_64 7.1.29-1.el7.remi @remi-safe
    php71-php-json.x86_64 7.1.29-1.el7.remi @remi-safe
    php71-runtime.x86_64 2.0-1.el7.remi @remi-safe
    php73.x86_64 2.0-1.el7.remi @remi-safe
    php73-php-cli.x86_64 7.3.5-1.el7.remi @remi-safe
    php73-php-common.x86_64 7.3.5-1.el7.remi @remi-safe
    php73-php-json.x86_64 7.3.5-1.el7.remi @remi-safe
    php73-runtime.x86_64 2.0-1.el7.remi @remi-safe

  37. Аватар

    Сейчас доступен php73. Стоит эту версию ставить вместо php71?

    • Zerox

      Не знаю, насколько это актуально для zabbix. Я не заморачиваюсь, не обновлял. Это же не веб сайт, а закрытый фронтенд для нескольких человек. Думаю, на глаз вы разницы все равно не заметите.

      • Аватар

        Спасибо за ваш ответ. Я только недавно начал изучать линукс и данная ситуация вызвала логичный вопрос. Допустим я поставил как вы рекомендовали # yum install php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath -y
        И я допустим хочу обновить релиз до php73. Что я должен сделать?
        yum update или yum insyall hph73? должен ли я начало удалить пакет php71.
        Может быть есть статья на тему работу с релизами и пакетами включающая в себя данную информацию?

        • Zerox

          Обновить php с 7.1 до 7.3 нужно было так.

          # yum-config-manager --enable remi-php71
          # yum update php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath
  38. Аватар

    Здравствуйте! Сразу прошу прощения за глупый вопрос, если нет существующего домена,тогда выходит я не смогу создать сертификаты SSL и запустит nginx?
    Ниже ошибка

    [root@localhost ~]# nginx -t
    nginx: [emerg] cannot load certificate «/etc/letsencrypt/live/hl.zeroxzed.ru/fullchain.pem»: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/letsencrypt/live/hl.zeroxzed.ru/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)

    • Zerox

      Да, если домен не существует, то получить валидный сертификат от let’s encrypt не получится. Можно использовать самоподписные, но браузеры будут на них ругаться.

  39. Аватар
    Александр

    Здравствуйте, подскажите пожалуйста, как создать базу на другом разделе например /dev/sdb1

    • Аватар
      Александр

      Сообразил.
      — Выключаем mysql и zabbix

      — Переносим базу в новое место (переносил копированием # cp -pR /var/lib/mysql/zabbix /ZabbixSQL/sqlbase/);

      — Создаём ln -s /ZabbixSQL/sqlbase/zabbix /var/lib/mysql/zabbi

      — Удаляем БД со старого места (для освобождения места в разделе)

      — chown на файлы в новом месте и на ln (необязательно)
      — reboot

      • Аватар
        Александр

        Создаём ln -s /ZabbixSQL/sqlbase/zabbix /var/lib/mysql/

      • Zerox

        Можно и так. Я тоже обычно просто переношу каталог с mysql и делаю символьную ссылку. Но можно в параметрах указать другой рабочий каталог для баз.

        • Аватар
          Александр

          Какой каталог ? Расскажите пожалуйста подробно, я попробую по другому.

          • Zerox

            В настройках mysql сервера есть параметр:

            [mysqld]
            datadir=/mnt/mysql

            Через который можно задать директорию для данных. Необходимо остановить сервер, перенести /var/lib/mysql/ на новое место. В конфиге указать через datadir новое место и запустить заново сервер.

            • Аватар

              Владимир, приветствую!

              Как по Вашему, сколько часов должно уйти у сетевого инженера с момента настойки Zabbix’а (установки Centos’a) до создания простой топологии мониторинга (маршрутизатор-коммутатор) ?

            • Аватар

              дошел до Вашего видео, Вы это делаете за 17 мин ))

        • Аватар
          Александр

          Просто иногда возникает проблема с входом и выдаёт вот такую ошибку : {SQL statement execution has failed «INSERT INTO sessions (sessionid,userid,lastaccess,status) VALUES (‘f07b92c0a6df7c6a6595a0a3f710d48a’,’1′,’1557216885′,’0′)».}
          Не могу понять что это такое и решение проблемы это перезагрузка сервера

        • Аватар
          Александр

          И в systemctl status zabbix-server.service Выдаёт вот такое сообщение: Process: 4553 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=1/FAILURE)

  40. Аватар
    Иван Краев

    > Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/conf.d/default.conf.

    Подскажите, пожалуйста, как настроить nginx, чтобы доступ к веб-сервису zabbix осуществлялся по адресу типа: http://llocalhost/zabbix, а не напрямую через http://localhost?

    • Аватар
      Иван Краев

      а по http://localhost должна быть доступна, например, начальная страница nginx

    • Zerox

      Добавьте zabbix как отдельный location в виртуальном хосте. Подробнее об этом читайте в моей статье про настройку nginx — https://serveradmin.ru/ustanovka-i-nastrojka-nginx/#_location

      • Аватар
        Иван Краев

        Что-то не получается. С таким конфигом начальная страница nginx открывается при запросе http://llocalhost, а при запросе http://llocalhost/zabbix происходит скачивание страницы index.php (без ошибок в логе):
        server {
        listen 80;
        server_name localhost;
        root /usr/share/nginx/html;

        location / {
        index index.html index.htm;
        }

        location /zabbix/ {
        root /usr/share;
        index index.php index.html index.htm;
        }

        location ~ /zabbix/\.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        • Zerox

          Если скачивается php страница, то 100% не работает интерпретатор php, либо ошибка в конфиге nginx. Смотрите в эту сторону.

  41. Аватар
    Александр

    Здравствуйте, всё отлично заработало! Но я не могу понять как теперь сюда поставить phpmyadmin. Пытаюсь по другим инструкциям на этом сайте nginx перестаёт работать. Помогите пожалуйста как мне решить мою задачу ??????????????????HELP?????????????????

    • Zerox

      Скачиваете исходники phpmyadmin и кладете в директорию, где лежат исходники zabbix. И обращаетесь к это директории со скриптами phpmyadmin. Никаких особых настроек веб сервера делать не надо. Подойдут те, что сделаны для zabbix. phpmyadmin это просто набор php скриптов.

      • Аватар
        Александр

        У вас есть желание дать пример ? Готового конфига nginx

      • Аватар
        Александр

        Не подскажите где лежат исходники zabbix когда он уже установлен и работает ?

        • Zerox

          Исходники тут лежат — /usr/share/zabbix
          Этот путь указан в настройках виртуального хоста nginx, который приведен в статье. Просто создайте в этой папке еще одну, например /usr/share/zabbix/pma, положите туда скрипты, скачанные отсюда — https://www.phpmyadmin.net/downloads/
          После этого можно зайти по адресу, к примеру, http://192.168.13.117/pma и попасть в phpmyadmin.

          • Аватар
            Александр

            ln -s /usr/share/phpMyAdmin /usr/share/zabbix
            Помогло Спасибо Большое!

            • Zerox

              Или так. Забыл про символьную ссылку. Я обычно просто скачиваю скрипты. Не ставлю через yum, особого смысла в этом нет.

  42. Аватар

    connection to database ‘Zabbix’ failed: [1045] Access denied for user ‘Zabbix’@’localhost’ (using password: YES)

  43. Аватар

    ДОбрый вечер, подскажите куда копать вот такая ошибка cannot use database «zabbix»: database is not a Zabbix database

  44. Аватар
    Александр

    Добрый день!
    Поднял Заббикс настроил мониторинг кластера vmware. Настроил адреса и уведомления по электронной почте — всё приходит, замечательно. Вопрос: как настроить ежедневный отчет в 20:00 по двум серверам. Нужна информация о свободном месте на жестких дисках.

    З.Ы Статья просто замечательная. Спасибо!

    • Zerox

      Хороший вопрос с отчетом. Мне так сходу в голову не приходит простое решение. Никогда не было такой задачи.

  45. Аватар

    Помогите пожалуйста, После пункта в инструкции:

    «Вместо нее добавляем несколько других:

    listen = /var/run/php-fpm/php-fpm.sock
    listen.mode = 0660
    listen.owner = nginx
    listen.group = nginx
    »

    делаю рестарт php-fpm

    выдает ошибку:
    Job for php-fpm.service failed because the control process exited with error code. See «systemctl status php-fpm.service» and «journalctl -xe» for details.

    из статуса :

    мар 28 11:31:36 localhost.localdomain php-fpm[14658]: [28-Mar-2019 11:31:36] ERROR: [/etc/php-fpm.d/www.conf:48] value is NULL for a ZEND_INI_PARSER_ENTRY
    мар 28 11:31:36 localhost.localdomain php-fpm[14658]: [28-Mar-2019 11:31:36] ERROR: Unable to include /etc/php-fpm.d/www.conf from /etc/php-fpm.conf at line 48
    мар 28 11:31:36 localhost.localdomain php-fpm[14658]: [28-Mar-2019 11:31:36] ERROR: failed to load configuration file ‘/etc/php-fpm.conf’
    мар 28 11:31:36 localhost.localdomain php-fpm[14658]: [28-Mar-2019 11:31:36] ERROR: FPM initialization failed

    48 линия это как раз
    listen = /var/run/php-fpm/php-fpm.sock

  46. Аватар

    Я извиняюсь. А в команде «# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix» не должно быть пробела между -u и zabbix? Это же указание имени пользователя, параметр -u, и его значение zabbix.. Или я все не так понимаю?)

    • Zerox

      Мне кажется, в данном случае проверить быстрее, чем написать комментарий. Просто проверьте, да и все. К чему вопрос? Думаете тут неправильная команда и никто из десятков тысяч людей это не заметил и не написал?

      • Аватар

        Оно отрабатывает. И в этом-то и вся загвоздка) Я просто удивился синтаксису.

        • Zerox

          Еще больше удивитесь, если после ключа -p так же напишите пароль без пробела и он сработает :) На самом деле можно и так, и так. Работает одинаково.

  47. Аватар

    Доброго времени суток,

    Спасибо автору за статью, но хотел уточнить, возможно что то не то сделал, но после установки и настройки узлов, сервер перезагружаю, у меня не открывается панель управления zabbix, как будто база обнулилась и не работает забикс.
    Подскажите пжл в чем может быть проблема?

    Спасибо заранее,

    • Zerox

      Скорее всего веб сервер не запускается автоматически после перезагрузки. В данном случае nginx. Запустите его руками и проверьте. База вряд ли обнуляется. Не представляю, что может вызывать такое поведение.

      • Аватар

        Делал старт nginx, но без результата.
        Вэб интерфейс не запускается, но так вроде все живет и работает, но контролировать не могу :( через вэб-морду. Поднят сервак на центос.

  48. Аватар

    Добрый день!
    подскажите, где поменять параметры в zabbix какой ip слушать
    у меня сервер zabbix доступен по ip 192.168.7.27 а слушает zabbix агент
    Server=192.168.7.20
    ServerActive=192.168.7.20

  49. Аватар

    Добрый день! отличная работающая статья, автор просто красавчик!!
    Подскажите как мониторить сервер Windows 2008/2012 из другой локальной сети (другой провайдер)
    В zabbix я новичок!

    • Zerox

      Либо порты пробрасывать в локальную сеть с сервером, чтобы был доступ к нему, либо в той сети, где windows server разворачивать zabbix-proxy.

  50. Аватар

    Спасибо за инструкцию. Все хорошо идет вплоть до наполнения БД:
    #zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz

    У меня никакой директории кроме: /usr/share/doc/zabbix-release-4.0/, в которой находится только один файл GPL.

    CentOS 7.6, чистая установка.

    Где найти create.sql.gz?

  51. Аватар

    К сожалению, что-то идет не так
    [root@zbx ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
    Enter password:
    ERROR 1050 (42S01) at line 1: Table ‘users’ already exists

    В чем может быть проблема?

    • Аватар

      Пишет же проблема в пароле.
      Вы пароль от чего вводите?

      • Аватар

        Когда ввожу не тот пароль, пишет
        ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES)

        так что проблема cудя по всему не в нем. Ввожу пароль zabpassword.

        А пишет он, что проблема в том, что таблица юзерс уже существует.

    • Zerox

      Проблема не в пароле. У вас база уже создана. Вам же пишет, что таблица users уже существует. То есть вы ранее базу и таблицы в ней уже создали.

      • Аватар

        Спасибо за ответ. Но впоследствие у меня в логе cat /var/log/zabbix/zabbix_server.log ошибка

        115194:20190227:131732.250 cannot use database «zabbix»: its «users» table is empty (is this the Zabbix proxy database?)

        Юзер вроде как заведен, насколько я понял.

        [root@zbx lib]# cat /etc/zabbix/zabbix_server.conf | grep DBUser
        ### Option: DBUser
        DBUser=zabbix

        • Zerox

          Я даже не знаю, чем вам помочь. У вас полное непонимание того, что происходит :) Советую еще раз внимательно все начать с начала. В статье все четко расписано и если внимательно повторить, то все получится. Даже видео есть с демонстрацией.

        • Аватар

          Такая же проблема была у меня, потратил почти день (((. В общем скорее всего проблема в том что бы при импорте базы не дожидаемся полного импорта. Сделал вот что
          1) # mysql -uroot -p
          Enter password:
          2) > DROP DATABASE zabbix;
          > create database zabbix character set utf8 collate utf8_bin;
          > grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabpassword’;
          exit
          3) zcat /usr/share/doc/zabbix-server-mysql-4.0.7/create.sql.gz | mysql -uzabbix -p zabbix
          (Узнал в китайском сайте что нужно удалить базу и создать заново и грузить схему указав полный путь к шаблону.
          4) systemctl start zabbix-server

          и дальше как в этом мануале. Спасибо автору за статью!

        • Аватар

          в ответе выше есть уточнённый конфиг:

          # nano /etc/my.cnf.d/server.cnf
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
          innodb_file_per_table=1
          innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
          innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
          innodb_flush_log_at_trx_commit = 0
          innodb_log_file_size = 512M
          innodb_log_files_in_group = 3
          innodb_strict_mode = 0 # внимание! без него БД может не создаваться. Ошибка 1118: Row size too large (> 8126)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~

          дропните таблицу и создайте заново, как в соседнем ответе.

          • Аватар

            Вагон всяческих ништяков тебе, добрый человек!) Пол дня маялся с этой фигней!

  52. Аватар
    Александр

    Здравствуйте, настроил zabbix для мониторинга сетевых принтеров, заббикс данные получает показывает и отправляет письмо на почту в заданное время, НО в этом письме можно увидеть только имя хоста Host: {HOST.HOST} , хотелось бы увидеть кол-во тонера и отпечатаных страниц , не пойму как правильно настроить макрос для вывода … :(

  53. Аватар

    При настройке mariadb есть строка «collation-server=utf8_bin»
    ошибка в параметре! надо «collation_server=utf8_bin»

    • Zerox

      У меня именно так работает, как указано, через тире, а не подчеркивание.

      • Аватар

        В параметрах 10.3 именно так пораметр в хелпе выглядит.

        • Zerox

          Подозреваю, что разрешены оба написания, так как у меня нет ошибки и параметр работает. При этом он написан через тире. Проверил на паре серверов.

          • Аватар

            Оказывается в настройках надо писать именно «collation-server=utf8_bin» (и в хелпе именно так указанно) а вот в выводе рабочих параметров это показывает как «collation_server=utf8_bin» что меня и сбило с толку.

  54. Аватар
    Аврил Лавин

    Не понимаю, как работают Discovery rules и прототипы внутри шаблона.
    Например, должны ли айтемы создаваться автоматически на основе этих прототипов? Если нет, то где я увижу данные, собранные по прототипам (в latest data их нет)?

    Где об этом можно почитать/посмотреть?
    В документации инфы именно о прототипах очень мало.

    • Zerox

      На примерах. У меня есть статьи с autodiscovery. Я сам долго не доходил до работы этого механизма. Потом просто собрался, посмотрел примеры, написал свой пример и после этого стал понимать, как все это работает. Теперь постоянно использую. Нужно просто потрудиться и изучить :)

  55. Аватар

    Привет. Спасибо за хорошую статью. А как добавить cisco switch или router в заббих?

  56. Аватар

    помогите разобраться: У меня была версия 3.4.15, сделал апдейт до 4.0.3, но проблема в том? что при запуске сервера — сервер запускается старый:
    10589:20190116:093325.889 syncing trend data done
    10589:20190116:093326.011 Zabbix Server stopped. Zabbix 3.4.15 (revision 86739).
    3332:20190116:093333.295 Starting Zabbix Server. Zabbix 3.4.15 (revision 86739).
    3332:20190116:093333.295 ****** Enabled features ******
    3332:20190116:093333.295 SNMP monitoring: YES
    3332:20190116:093333.295 IPMI monitoring: YES
    3332:20190116:093333.295 Web monitoring: YES
    3332:20190116:093333.295 VMware monitoring: YES
    3332:20190116:093333.295 SMTP authentication: YES
    3332:20190116:093333.295 Jabber notifications: YES
    3332:20190116:093333.295 Ez Texting notifications: YES
    3332:20190116:093333.295 ODBC: YES
    3332:20190116:093333.295 SSH2 support: YES
    3332:20190116:093333.295 IPv6 support: YES
    3332:20190116:093333.296 TLS support: YES
    3332:20190116:093333.296 ******************************
    3332:20190116:093333.296 using configuration file: /etc/zabbix/zabbix_server.conf
    3332:20190116:093334.193 current database version (mandatory/optional): 03040000/03040007
    3332:20190116:093334.194 required mandatory version: 03040000
    А когда переходишь на веб то там сета нового у которого выходит ошибка на версию БД:
    The frontend does not match Zabbix database. Current database version (mandatory/optional): 3040000/3040007. Required mandatory version: 4000000. Contact your system administrator.

    база pgsql
    Помогите пожалуйста

  57. Аватар

    Добрый день.
    Устанавливаю по вашей инструкции
    Дошел до
    [root@localhost ~]# yum install MariaDB-server MariaDB-client
    Loaded plugins: fastestmirror

    File contains no section headers.
    file: file:///etc/yum.repos.d/mariadb.repo, line: 1
    ‘riaDB 10.3 CentOS repository list — created 2018-10-04 12:10 UTC\n’
    И ошибка .Куда копать?

  58. Аватар
    Александр

    13:23:21 Zabbix server Zabbix agent on Zabbix server is unreachable for 5 minutes 3м Нет 1 действие
    Мое время 12:28

  59. Аватар
    Александр

    Статья классная, но у меня маленькая проблема, время оповещения отличается от времени сервера, уже все php.ini переколбасил с тайм зонами, без изменений, может подскажите где еще можно проверить, разворачивал на Ubuntu 18.04, главное на дешборде в заббиксе циферблат показывает правильно время а оповещение с проблемой на час в перед. Где еще может быть проблема?

    • Zerox

      Отличие какого порядка? Часовой пояс не тот? Он задается в свойствах виртуального хоста, в настройках php.

      • Аватар
        Александр

        отличие именно в системе оповещения, время на самом сервере Ubuntu (тут же на нем развернут заббикс) стоит допустим 12:34 — это правильное время, на веб морде заббикса у часов тоже правильное стоит время, а вот когда останавливаю агент на сервере с заббиксом, оповещение приходит с временем 13:48, разница в час с копейками. Уже перелопатил кучу сайтов, все писали настроить часовой пояс в php, везде настроил, даже в апаче который не используется. Вариантов пока не нашел больше.

        • Zerox

          Время 13:48 в тексте самого оповещения, или это время письма? Может быть почтовый сервер ставит неправильное время.

          • Аватар
            Александр

            Время когда возникла проблема, в письме приходит все нормально, только отличается время когда появилась проблема.
            Вот: Это когда агент выкл, пришло сообщение в событиях, то что проблема с сервером заббикс, время проблемы 12:28 но у меня время 11:28, в сообщение это видно.

            10.01.2019 12:28:22 Report problems to Zabbix administrators Email romstal
            oleksandr.osadtsia@romstal.ua Zabbix server — PROBLEM: Zabbix agent on Zabbix server is unreachable for 5 minutes

            Problem started at 11:28:21 on 2019.01.10
            Problem name: Zabbix agent on Zabbix server is unreachable for 5 minutes
            Host: Zabbix server
            Severity: Average

            Original problem ID: 17
            Отправлено

            • Аватар

              Для решения Вашей проблемы (если таки используете Nginx) необходимо в файле виртуального хоста Zabbix отдельно указать нужный Вам часовой пояс, например, date.timezone = Europe/Moscow
              Если Вы из Украины, тогда у Вас должна быть вот такая строчка —
              date.timezone = Europe/Kiev (т.к. Kyiv – выдает ошибку)

  60. Аватар
    Владимир

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

    root@mon:/home/mon# service php7.0-fpm status
    ● php7.0-fpm.service — The PHP 7.0 FastCGI Process Manager
    Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor prese
    Active: active (running) since Sun 2018-12-23 15:57:47 +04; 18min ago
    Docs: man:php-fpm7.0(8)
    Main PID: 440 (php-fpm7.0)
    Status: «Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 4915)
    CGroup: /system.slice/php7.0-fpm.service
    ├─440 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
    ├─546 php-fpm: pool www
    └─547 php-fpm: pool www

    дек 23 15:57:46 mon systemd[1]: Starting The PHP 7.0 FastCGI Process Manager…
    дек 23 15:57:47 mon systemd[1]: Started The PHP 7.0 FastCGI Process Manager.

    root@mon:/home/mon# netstat -tulnp | grep zabbix_server
    tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 463/zabbix_server

    root@mon:/home/mon# netstat -tulnp | grep 80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 487/nginx: master p

    root@mon:/home/mon# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    в итоге: 502 bad gateway. заранее, спасибо.

    • Zerox

      Открываете не тот url, который настроен в nginx для zabbix. Либо там вообще не настроена работа с zabbix. В статье все верно, проверяйте внимательно свои конфиги. Можно еще лог errors в nginx посмотреть. Там будет указано, откуда берется 502.

  61. Аватар
    Вячеслав

    Добрый день!
    20384:20181221:191642.448 item «Zabbix server:zabbix[process,ipmi poller,avg,busy]» became not supported: No «ipmi poller» processes started.
    20382:20181221:191643.449 item «Zabbix server:zabbix[process,java poller,avg,busy]» became not supported: No «java poller» processes started.
    20381:20181221:191648.452 item «Zabbix server:zabbix[process,ipmi manager,avg,busy]» became not supported: No «ipmi manager» processes started.
    20381:20181221:191648.452 item «Zabbix server:zabbix[process,snmp trapper,avg,busy]» became not supported: No «snmp trapper» processes started.
    20386:20181221:191649.453 item «Zabbix server:zabbix[process,vmware collector,avg,busy]» became not supported: No «vmware collector» processes started.
    20384:20181221:191656.458 item «Zabbix server:zabbix[vmware,buffer,pused]» became not supported: No «vmware collector» processes started.

    как с этим бороться?

    • Zerox

      Зачем с этим бороться? Если вам нужны эти сборщики данных, то включите их в конфиге. Если не ошибаюсь, по-умолчанию они отключены.

  62. Аватар

    Здравствуйте. Спасибо за статью. Поднял zabbix 4 без проблема и с первого раза.

  63. Аватар

    Добрый день! Спасибо за статью, очень помогли разобраться, все пошагово, для новичков. Спасибо большое!

  64. Аватар
    Vladimir Chehun

    Доброго дня.
    Спасибо большое, все установилось и работает. Супер.
    Но на графиках и в последних полученных данных время +1 час. Как это побороть?

    • Zerox

      Явно где-то время неправильное стоит. Скорее всего на сервере, может на агенте. Если меняли часовой пояс на сервере, то лучше его перезагрузить полностью, так как некоторые сервисы после изменения продолжают использовать старое время.

      • Аватар
        Vladimir Chehun

        Время и зону ставил только при установке операционной системы. В других местах даже не представляю где может быть.
        На агенте время 100% правильное.

  65. Аватар

    принтеры по snmp2

  66. Аватар

    Zerox мониторинг принтеров и серверов по ipmi делать не приходилось? Столкнулся с проблемой мониторинга количества тонера на kyocera 2100 и 2135

      • Аватар

        Статью видел, спасибо, но, как выясняется, для 2135 есть нюансы, если используется заправленный картридж, то по snmp отдается неверное значение. Попробую поиграться, хотя бы информацию о необходимости замены правильно получать.
        А с ipmi не работали? Никак не удается получить состояние smart с корзины на dl180g6 se, подключенной через внешний контроллер, хотя сами диски в web-морду свое состояние отправляют. И состояние мониторится правильно.

  67. Аватар

    Здравствуйте, не рассматриваете возможность сделать статью с установкой zabbix 4.0+nginx+postgresql?

    • Zerox

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

  68. Аватар

    Возникает ошибка при инсталяции php-pear.

    Error: Package: 1:php-pear-1.10.6-1.el7.remi.noarch (remi-php71)
    Requires: php-composer(fedora/autoloader)
    You could try using —skip-broken to work around the problem
    You could try running: rpm -Va —nofiles —nodigest

  69. Аватар
    Аврил Лавин

    А что делать с конфликтом пакетов?
    При вводе yum install zabbix-server-mysql zabbix-web-mysql

    Error: php72u-common conflicts with php-common-7.1.24-1.el7.remi.x86_64

    • Zerox

      Не знаю, что точно надо делать. По месту разбираться, откуда конфликт возник. В статье я ставлю только php7.1, который устраивает zabbix. Либо это изменилось, либо у вас на сервере уже стоит 7.2. Возможно zabbix с 7.2 не работает. Я не проверял.

      • Аватар
        Аврил Лавин

        Проблема решена.
        Не знаю почему, но удаление стороннего репозитория (IUS repo) из списка мне помогло.

        Я сделал:
        1. yum remove php*
        2. yum clean all
        3. rm /etc/yum.repos.d/ius*

        После этого, yum install zabbix-web-mysql сработал и установился с php7.1 зависимостями.
        Те же действия (очистка кеша и удаление php) без 3 пункта не работали.

  70. Аватар

    Доброго времени суток. Столкнулся с небольшой проблемой — при попытке поставить Zabbix 4.0 на Astra Linux CE server v.Orel до момента с переходом на страницу по адресу 0.0.0.0( или по ip a — 192.168.234.130) не вызывается окно установки zabbix, а выдает ошибку 502 Bad Gateway nginx/1.14.0. Всё делал по инструкции, все указанные проверки были успешно пройдены.
    P.S. Я студент, первый раз занимаюсь этим делом, по заданию дипломного руководителя, поэтому прошу сильно стульями в меня не кидаться.

    • Zerox

      Это ошибка nginx. Смотрите логи nginx в /var/log/nginx, разбирайтесь, в чем там проблема. Скорее всего ошибка в конфигурационном файле.

    • Аватар

      У меня, например, была не правильная версия php-fpm (в инструкции 7.2 у меня оказалась 7.0)

  71. Аватар

    Доброго времени суток.
    Может подскажете, где недоработка.
    Дано: два сервака под centos 7
    на одном сервер приложения zabbix 4, на втором postgres10 с базой этого zabbix
    изначально пробовал с включенными firewalld и selinux на обеих машинах (и там и там настраивал дабы дать доступ). потом отключал их, но на результат не повлияло.
    в логах zabbix идет сначала:
    [Z3005] query failed: [0] PGRES_FATAL_ERROR:ВАЖНО: закрытие подключения по команде администратора
    server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
    [select h.hostid,h.status,h.tls_accept,h.tls_issuer,h.tls_subject,h.tls_psk_identity,a.host_metadata from hosts h left join autoreg_host a on a.proxy_hostid is null and a.host=h.host where h.host=’Zabbix.rawenstvo.ru’ and h.status in (0,1) and h.flags2 and h.proxy_hostid is null]

    и далее:
    connection to database ‘zabbix’ failed: [0] ВАЖНО: оставшиеся слоты подключений зарезервированы для подключений суперпользователя (не для репликации)

    в логах postgres
    ВАЖНО: извините, уже слишком много клиентов
    и
    ВАЖНО: оставшиеся слоты подключений зарезервированы для подключений суперпользователя (не для репликации)

    при рестарте постгреса минут 5 полет нормальный.
    куда копать?
    ЗЫ: разнесение базы и сервера приложения чисто эксперимента ради. так сказать для повышения своих скилов.

  72. Аватар
    Владимир

    Отлично! Спасибо за инструкцию! Очень кстати

  73. Аватар

    Отличная инструкция , но не хватает > yum install nmap -y
    и агента(win) надо рестартовать
    + для агента win64 нужно ставить openssl 1.1.1

    • Zerox

      Я, кстати, определением версии системы, не пользовался вообще никогда. Это, наверно, актуально для огромных сетей с автообнаружением. Обычно все, что я обслуживаю, так или иначе задокументировано и неведомых устройств там нет.

  74. Аватар
    Евгений

    Поставил zabbix (nginx+pgsql) и столкнулся маленькой с проблемой. При первом входе, после проверки php, там где делаются настройки на базу данных, присутствует выбор только mysql, хотя установлен пакет именно zabbix-web-pgsql.
    Если кто сталкивался.
    Не хочется ковыряться в файлах фронтенда. Может есть какое то простое решение?

    • Zerox

      Похоже на ошибку пакета. Думаю, тут вопрос без правки исходников не решится. Я рекомендую создать тему на форуме заббикса и задать вопрос. Я так делал, когда возникали вопросы. По идее, надо сразу в трекер, но там сходу не разберешься, как все оформить. Я не осилил.

      • Аватар
        Евгений

        Разобрался. Где то видимо я накосячил.
        Наличие настроек на определенную базу зависит от доступности определенных команд php, а у меня почему то php-fpm просто не видел модуля php_pgsql и соответственно отсутствовали команды для работы с pgsql.
        Перенастроил заново и все заработало.

  75. Аватар

    «Вам нужно сменить у них владельца на нового пользователя. После этого стандартного админа можно будет удалить.»
    Пожалуйста, покажите, как.

  76. Аватар
    Владимир

    А как насчет обновить уже существующий и работающий заббикс версии 3.4 на апаче?

  77. Аватар

    При попытке войти в zabbix появляется ошибка «403 forbidden». Не подскажете как исправить?

  78. Аватар

    Доброго.

    А Redis в связку добавить ?

    Пример. Переделать под Цент:

    Как настроить Redis в качестве кэширующего сервера

    apt install -y -t jessie-backports redis-server redis-tools
    
    nano /etc/redis/redis.conf
    
    В первую очередь необходимо исправить ошибку с некорректно указанным максимальным количеством
    tcp соединений. Это актуально в случае использования tcp-сокетов.
    Печатаем в консоли команду cat /proc/sys/net/core/somaxconn и выставляем соответствующее
    количество:
    tcp-backlog 128
    
    Для более быстрой работы подключаем возможность работы с unix-сокетом.
    unixsocket /var/run/redis/redis.sock
    unixsocketperm 777
    
    Ограничиваем максимальное количество подключаемых клиентов. Если необходимо больше 1024-х
    подключений, также потребуется изменить ограничение на количество одновременно открытых файлов
    (ulimit).
    maxclients 1024
    
    Определяем количество выделяемой оперативной памяти для кэша. В случае указания нулевого
    значения, будет использована вся доступнуая оперативную память для кэша.
    maxmemory 256mb
    
    Определяем политику работы с памятью. При данной политике, во время нехватки памяти, будут
    удаляться наиболее старые и наименее используемые ключи, чтобы освободить место для новых.
    maxmemory-policy allkeys-lru
    
    # Accept connections on the specified port, default is 6379.
    # If port 0 is specified Redis will not listen on a TCP socket.
    port 0
    
    Так же, во избежание проблем с работой Redis (пункт 3 руководства, англ), следует отключить функцию
    ядра Transparent HugePages.
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    
    Перезапускаем для вступления изменений в силу.
    systemctl daemon-reload
    systemctl restart redis
    systemctl enable redis
    
    И добавляем в файл /etc/rc.local следующие строки, чтобы после перезагрузки сервера данная функция
    была отключена.
    
    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
       echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
       echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    
    Кэширование php сессий
    Настроить php на хранение сессий можно несколькими путями, в зависимости от используемой связки.
    
    Напрямую в php.ini
    [Session]
    session.save_handler = redis
    session.save_path = "unix:///run/redis/redis.sock"
    • Zerox

      Я не понимаю, зачем заббиксу redis. Вы можете пример привести работы redis + zabbix и какой конкретно достигается эффект от этой связки. Сам редис я много раз ставил. Это не вызывает никаких проблем.

  79. Аватар

    Пардон. Можно ещё вопрос ? После настроек файла /etc/zabbix/zabbix_server.conf теми, что были Вами предложены, и старта Заббикса собственно старт-то и не происходит !!!

    [root@e3 ~]# systemctl status zabbix-server
    ● zabbix-server.service - Zabbix Server
       Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
       Active: activating (auto-restart) (Result: exit-code) since Sat 2018-10-06 18:09:41 +05; 1s ago
      Process: 1948 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=1/FAILURE)
      Process: 1944 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
     Main PID: 1946 (code=exited, status=1/FAILURE)
    
    Oct 06 18:09:41 e3 kill[1948]: -q, --queue       use sigqueue(2) rather than kill(2)
    Oct 06 18:09:41 e3 kill[1948]: -p, --pid              print pids without signaling them
    Oct 06 18:09:41 e3 systemd[1]: zabbix-server.service: control process exited, code=exited status=1
    Oct 06 18:09:41 e3 kill[1948]: -l, --list [=] list signal names, or convert one to a name
    Oct 06 18:09:41 e3 kill[1948]: -L, --table            list signal names and numbers
    Oct 06 18:09:41 e3 kill[1948]: -h, --help     display this help and exit
    Oct 06 18:09:41 e3 kill[1948]: -V, --version  output version information and exit
    Oct 06 18:09:41 e3 kill[1948]: For more details see kill(1).
    Oct 06 18:09:41 e3 systemd[1]: Unit zabbix-server.service entered failed state.
    Oct 06 18:09:41 e3 systemd[1]: zabbix-server.service failed.
    [root@e3 ~]# systemctl start zabbix-server
    [root@e3 ~]# systemctl status zabbix-server
    ● zabbix-server.service - Zabbix Server
       Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
       Active: activating (auto-restart) (Result: exit-code) since Sat 2018-10-06 18:10:11 +05; 3s ago
      Process: 1981 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=1/FAILURE)
      Process: 1977 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
     Main PID: 1979 (code=exited, status=1/FAILURE)
    
    Oct 06 18:10:11 e3 kill[1981]: -q, --queue       use sigqueue(2) rather than kill(2)
    Oct 06 18:10:11 e3 kill[1981]: -p, --pid              print pids without signaling them
    Oct 06 18:10:11 e3 kill[1981]: -l, --list [=] list signal names, or convert one to a name
    Oct 06 18:10:11 e3 kill[1981]: -L, --table            list signal names and numbers
    Oct 06 18:10:11 e3 kill[1981]: -h, --help     display this help and exit
    Oct 06 18:10:11 e3 kill[1981]: -V, --version  output version information and exit
    Oct 06 18:10:11 e3 kill[1981]: For more details see kill(1).
    Oct 06 18:10:11 e3 systemd[1]: zabbix-server.service: control process exited, code=exited status=1
    Oct 06 18:10:11 e3 systemd[1]: Unit zabbix-server.service entered failed state.
    Oct 06 18:10:11 e3 systemd[1]: zabbix-server.service failed.

    Что бы ещё попробовать ?

    • Zerox

      Все, что надо пробовать описано в статье. Советую внимательно ее прочитать и повторить то, что там представлено. Я же говорю, есть видео, где все шаги, которые приводят к успеху, описаны.

  80. Аватар

    Спасибо. С SSH-доступом разобрался. Заработало.

  81. Аватар

    Спасибо. Лихо это Вы разобрались с установкой zabbix-web и zabbix-web-pgsql. Поздравляю. А у меня так не выходит. Пробую следующее:

    [~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.0-2.el7.noarch.rpm
    --2018-10-06 15:46:58--  http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.0-2.el7.noarch.rpm
    Resolving repo.zabbix.com (repo.zabbix.com)... 162.243.159.138
    Connecting to repo.zabbix.com (repo.zabbix.com)|162.243.159.138|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2868840 (2.7M) [application/x-redhat-package-manager]
    Saving to: ‘zabbix-web-4.0.0-2.el7.noarch.rpm’
    
    100%[=========================================================================================================>] 2,868,840    984KB/s   in 2.8s
    
    2018-10-06 15:47:02 (984 KB/s) - ‘zabbix-web-4.0.0-2.el7.noarch.rpm’ saved [2868840/2868840]
    
    [~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.0-2.el7.noarch.rpm
    --2018-10-06 15:47:55--  http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.0-2.el7.noarch.rpm
    Resolving repo.zabbix.com (repo.zabbix.com)... 162.243.159.138
    Connecting to repo.zabbix.com (repo.zabbix.com)|162.243.159.138|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 7948 (7.8K) [application/x-redhat-package-manager]
    Saving to: ‘zabbix-web-mysql-4.0.0-2.el7.noarch.rpm’
    
    100%[=========================================================================================================>] 7,948       --.-K/s   in 0s
    
    2018-10-06 15:47:55 (396 MB/s) - ‘zabbix-web-mysql-4.0.0-2.el7.noarch.rpm’ saved [7948/7948]
    
    [~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-pgsql-4.0.0-2.el7.noarch.rpm
    --2018-10-06 15:48:27--  http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-pgsql-4.0.0-2.el7.noarch.rpm
    Resolving repo.zabbix.com (repo.zabbix.com)... 162.243.159.138
    Connecting to repo.zabbix.com (repo.zabbix.com)|162.243.159.138|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 7960 (7.8K) [application/x-redhat-package-manager]
    Saving to: ‘zabbix-web-pgsql-4.0.0-2.el7.noarch.rpm’
    
    100%[=========================================================================================================>] 7,960       --.-K/s   in 0s
    
    2018-10-06 15:48:27 (389 MB/s) - ‘zabbix-web-pgsql-4.0.0-2.el7.noarch.rpm’ saved [7960/7960]
    
    [~]# rpm -ivh --nodeps zabbix-web-4.0.0-2.el7.noarch.rpm zabbix-web-pgsql-4.0.0-2.el7.noarch.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:zabbix-web-pgsql-4.0.0-2.el7     ################################# [ 50%]
       2:zabbix-web-4.0.0-2.el7           ################################# [100%]
    [root@e3 ~]# yum install zabbix-server-mysql zabbix-web-mysql
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: centos-mirror.rbc.ru
     * epel: fedora-mirror01.rbc.ru
     * extras: centos-mirror.rbc.ru
     * nux-dextop: mirror.li.nux.ro
     * remi-php71: remi.mirror.wearetriple.com
     * remi-safe: remi.mirror.wearetriple.com
     * updates: mirror.satellite-service.ru
    Resolving Dependencies
    --> Running transaction check
    ---> Package zabbix-server-mysql.x86_64 0:4.0.0-2.el7 will be installed
    ---> Package zabbix-web-mysql.noarch 0:4.0.0-2.el7 will be installed
    --> Processing Dependency: php-mysql for package: zabbix-web-mysql-4.0.0-2.el7.noarch
    Package php-mysql-5.4.16-45.el7.x86_64 is obsoleted by php-mysqlnd-7.1.22-1.el7.remi.x86_64 which is already installed
    --> Finished Dependency Resolution
    Error: Package: zabbix-web-mysql-4.0.0-2.el7.noarch (zabbix)
               Requires: php-mysql
               Available: php-mysql-5.4.16-45.el7.x86_64 (base)
                   php-mysql = 5.4.16-45.el7
               Available: php-mysqlnd-5.4.16-45.el7.x86_64 (base)
                   php-mysql = 5.4.16-45.el7
               Available: php-pecl-mysql-1.0.0-0.14.20160428git45881bd.el7.remi.7.1.x86_64 (remi-php71)
                   php-mysql = 1:1.0.0
               Available: php-pecl-mysql-1.0.0-0.15.20160812git230a828.el7.remi.7.1.x86_64 (remi-php71)
                   php-mysql = 1:1.0.0
               Installed: php-mysqlnd-7.1.22-1.el7.remi.x86_64 (@remi-php71)
                   Not found
               Available: php-mysqlnd-7.1.21-1.el7.remi.x86_64 (remi-php71)
                   Not found
     You could try using --skip-broken to work around the problem
    ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
    zabbix-web-pgsql-4.0.0-2.el7.noarch has missing requires of php-pgsql

    Можно ли опять разъяснить среди меня — что я делаю не так и куда двигаться далее ?

  82. Аватар

    В добавление к вопросам — перед самой установкой Zabbix4 сразу после установки MariaDB пропал доступ к исходному серверу CentOS7 удалённо по SSH ! Отныне сервер управляется только и только локально с консоли. Работал и работаю только с IPTABLES. FirewallD изначально после первичной установки сервера дезактивизирован. В IPTABLES ничего не менял. На всякий случай залез туда посмотреть перед отправкой Вам этого вопроса — все настройки доступа по SSH как были, так и остались. Судя по ним я должен бы получать доступ к серверу удалённо. Ан нет. Он заблокирован ! Что бы проверить/подкрутить ?

    • Zerox

      Я не знаю что там у вас происходит, но если пропадает доступ по ssh, то с сервером точно что-то не то. Разберитесь с ним сначала, прежде чем zabbix настраивать.

  83. Аватар

    Здравствуйте, Zerox. Я первый раз устанавилваю Zabbix на CentOS7. Сегодня только начал. Строго по Вашей статье. Всё установилось. До тех пор, пока не начал устанавливать сам Zabbix.
    Споткнулся вот где:

     [~]# yum install zabbix-server-mysql zabbix-web-mysql
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: centos-mirror.rbc.ru
     * epel: fedora-mirror01.rbc.ru
     * extras: centos-mirror.rbc.ru
     * nux-dextop: mirror.li.nux.ro
     * remi-php71: remi.mirrors.arminco.com
     * remi-safe: remi.mirrors.arminco.com
     * updates: mirror.satellite-service.ru
    Resolving Dependencies
    --> Running transaction check
    ---> Package zabbix-server-mysql.x86_64 0:4.0.0-2.el7 will be installed
    ---> Package zabbix-web-mysql.noarch 0:4.0.0-2.el7 will be installed
    --> Processing Dependency: zabbix-web = 4.0.0-2.el7 for package: zabbix-web-mysql-4.0.0-2.el7.noarch
    --> Processing Dependency: php-mysql for package: zabbix-web-mysql-4.0.0-2.el7.noarch
    Package php-mysql-5.4.16-45.el7.x86_64 is obsoleted by php-mysqlnd-7.1.22-1.el7.remi.x86_64 which is already installed
    --> Running transaction check
    ---> Package zabbix-web.noarch 0:4.0.0-2.el7 will be installed
    ---> Package zabbix-web-mysql.noarch 0:4.0.0-2.el7 will be installed
    --> Processing Dependency: php-mysql for package: zabbix-web-mysql-4.0.0-2.el7.noarch
    Package php-mysql-5.4.16-45.el7.x86_64 is obsoleted by php-mysqlnd-7.1.22-1.el7.remi.x86_64 which is already installed
    --> Finished Dependency Resolution
    Error: Package: zabbix-web-mysql-4.0.0-2.el7.noarch (zabbix)
               Requires: php-mysql
               Available: php-mysql-5.4.16-45.el7.x86_64 (base)
                   php-mysql = 5.4.16-45.el7
               Available: php-mysqlnd-5.4.16-45.el7.x86_64 (base)
                   php-mysql = 5.4.16-45.el7
               Available: php-pecl-mysql-1.0.0-0.14.20160428git45881bd.el7.remi.7.1.x86_64 (remi-php71)
                   php-mysql = 1:1.0.0
               Available: php-pecl-mysql-1.0.0-0.15.20160812git230a828.el7.remi.7.1.x86_64 (remi-php71)
                   php-mysql = 1:1.0.0
               Installed: php-mysqlnd-7.1.22-1.el7.remi.x86_64 (@remi-php71)
                   Not found
               Available: php-mysqlnd-7.1.21-1.el7.remi.x86_64 (remi-php71)
                   Not found
     You could try using --skip-broken to work around the problem

    Yum рапортует о каких-то неустановленных зависимостях ! Как это исправить ?

    • Zerox

      У вас вот эта ошибка — https://serveradmin.ru/oshibka-ustanovki-zabbix-na-nginx-i-php-fpm7/
      Не знаю, откуда взялась. Я вчера 2 раза проверил все на чистой системе. Никаких проблем с зависимостями не было. Сегодня видео запишу всего процесса, чтобы можно было убедиться и перепроверить себя.

      • Аватар

        У меня была аналогичная ошибка. Сделал вывод что было какое то не согласование, т.к. на сервере уже был установлен и настроен LAMP но под другие нужды. Попробовал поднять новую виртуальную (чистую) машину на CentOS7 — далее все по инструкции как по маслу. Осваиваю Zabbix благодаря статье автора (Zerox) — за что ему отдельное спасибо!

    • Zerox

      Обновил статью, добавил видео.

    • Аватар
      Аврил Лавин

      Вы решили эту проблему? Если да, то как?

    • Аватар
      Алексей

      Package php-mysql-5.4.16-45.el7.x86_64 is obsoleted by php-mysqlnd-7.1.22-1.el7.remi.x86_64 which is already installed
      Сервер в данном случае ругается, что у вас уже установлен мусклнд от 7.1, а он пытается поставить 5.4.
      У меня так же было. Решилось тем, что сначала я поставил заббикс (он установил необходимые ему php пакеты), а потом поверх уже установли все пакеты связанные с php7

  84. Аватар

    Добрый день, а мб планируете написать статью об установке агентов через гпо, мониторинг компьютеров пользователей, что бы заббикс сам хосты нашел и т.д. связанное с обынчыми виндовыми машинами в домене)

    • Zerox

      Вряд ли, я просто этим не занимаюсь. Негде проверять и отлаживать. Да я и не думаю, что заббиксом стоит мониторить компьютеры пользователей. Какой в этом смысл? Какие метрики вам нужны от пользователей и для чего? С пользователями главное обеспечить регулярный бэкап данных или хранение на сетевых дисках и возможность оперативной замены и подготовки подменного компьютера.

      • Аватар

        ох это история об экономии начальства т.е. то что компьютеру 5-7 лет и он уже списан это не аргумент, фразы пользователя о том что лагает тоже не особо и вот требуют информацию о средней нагрузке.

        • Zerox

          Средняя нагрузка тоже ничего не даст. Старые компьютеры лагают из-за медленной работы hdd дисков и нехватки оперативной памяти. Для того, чтобы это понять, не нужен мониторинг. Надо просто все компы, где hdd и меньше 4 гб оперативной памяти апгрейдить — менять диски на ssd и добавлять память, желательно до 8 гб. Я уже это проходил 100 раз, никакие уловки и ухищрения в виде мониторинга не помогут. Пока не сделать апгрейд, компы тормозить не перестанут. У современных браузеров такие требования к железу, а какая работа сейчас без браузера.

    • Аватар

      Через GPO не делал, но когда надо было развернуть на 20 компьютеров (сервера + рабочие станции) то использовал PsExec.exe

      1. В zabbix_agentd.win.conf опция Hostname=Windows host , в этом случае агент автоматически возьмет host имя в домене
      Это чтобы не прописывать отдельный conf для каждого компьютера.

      2. Имена машин , куда надо установить zabbix прописываем в файл compsall.txt
      Делаем bat файл
      FOR /F » tokens=1 » %%i in (compsall.txt) do (
      xcopy /Y /E /H /R /i «C:\Downloads\bat\zabbix\win64» «\\%%i\c$\Program Files\zabbix\»

      PsExec.exe \\%%i «C:\Program Files\zabbix\zabbix_agentd.exe» —config «C:\Program Files\zabbix\zabbix_agentd.win.conf» —install
      PsExec.exe \\%%i net start «zabbix agent»

      )
      3. На сервере zabbix добавляем машины.

    • Аватар

      Я занимался подобной задачей буквально на днях. Ничего сложного в этом нет. Политикой раскидываете агента на все машины домена, проще всего сделать это логон скриптом. У меня используется скомпилированный EXE файл, ключи к нему из серии /server 192.168.x.x /serveractive 192.168.x.x /rmtcm=1 , потом настраивается шаблон с тем, что вы, собственно, хотите мониторить, создается правило обнаружения иавторегистрации, в котором будет прописано, что всем новым ПК надо прикрутить этот шаблон.. И все. Тут проблема в том, что агент будет ставиться каждый раз при запуске ПК, так что я писал все в Kix, с условием несуществования exe файла установленного агента. Но если в конфиг агента ничего дописывать не надо, то и не важно, ставится он каждый раз, или нет.
      У меня задача стояла сложнее, мне надо было в конфиг заббикс агента дописать 2 строки, я для этого использовал KixTarter, но можно воспользоваться и PoSh скриптами, тут кому как удобней, и скопировать на все машины папку с утилитой smartmontools, что я так же делал Kix’ом.
      Кстати, за науку спасибо автору статьи.

  85. Аватар

    Отличная статья! Спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.