Меню Закрыть

Установка Zabbix

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 адрес настраиваемого сервера.

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/1.png

Если у вас не работает 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.rpmRetrieving 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.logfile://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/2.png

Настройка 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.confserver {

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.debDebian 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.debDebian 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.cnfinnodb_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/mysqldCоздадим базу данных, пользователя 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/defaultserver {

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.

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/3.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/4.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/5.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/6.png

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

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

• Пароль zabbix

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/7.png

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

Настройка Zabbix Server

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

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/8.png

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

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

• карты сети — Local Network

• комплексного экрана Zabbix server

• панелей Global view и Zabbix server health

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

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

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/9.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/10.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/11.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/12.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/13.png

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

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

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

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

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/14.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/15.png

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

{HOST.NAME} — {TRIGGER.STATUS}: {TRIGGER.NAME}file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/16.png

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

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

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

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.confServer=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 минуты после запуска агента.

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/17.png

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

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/18.png

Проверяйте 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 —installfile://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/19.png

Открываем файл 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 и запускаем ее.

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/20.png

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

• Тип правила: Для порта;

• Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;

• Действие: Разрешить подключение;

• Профиль (ставим галочки): Доменный, Частный, Публичный;

• Имя: Zabbix Agent;

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/21.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/22.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/23.png

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

file://C:/Users/msa/AppData/Local/Temp/.Z9KWB2/24.png

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