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 у меня рассказано отдельно.
Дальше устанавливаем 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.log
Настройка 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.
Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.
На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.
После нажатия на Finish увидите окно авторизации Zabbix сервера.
Стандартная учетная запись для входа в web интерфейс zabbix следующая:
• Пользователь Admin
• Пароль zabbix
После логина увидите стандартный dashboard.
На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.
Настройка Zabbix Server
Создание учетной записи и смена пароля
Первое, что нужно сделать — сменить стандартные учетные данные для входа. Можно просто поменять пароль пользователя admin, но лучше создать новую учетную запись с правами суперпользователя, а админа удалить. Для этого идем в раздел Administration -> Users и нажимаем Create User.
Заполняем все необходимые поля. Можно выбрать русский язык. Обычно я стараюсь работать в английском, но в случае с заббиксом можно сделать исключение. Он очень качественно локализован и проблем не возникает. Не забудьте зайти во вкладку Permissions и выбрать User type — Zabbix Super Admin.
Теперь можно зайти под новым пользователем, а Admin удалить. Но система не даст его удалить, так как он является владельцем некоторых объектов:
• карты сети — Local Network
• комплексного экрана Zabbix server
• панелей Global view и Zabbix server health
Они создаются автоматически при установке заббикса. Вам нужно сменить у них владельца на нового пользователя. После этого стандартного админа можно будет удалить.
Настройка email оповещений
Дальше нужно настроить очень важную часть системы мониторинга — уведомления на email. Без нее система мониторинга не выглядит целостной и полноценной. Zabbix сервер поддерживает отправку почты через сторонние smtp серверы. Настроим один из них. Для этого идем в раздел Администрирование -> Способы оповещений и нажимаем на Email.
Покажу на примере настроек ящика в Яндексе.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем в Администрирование -> Пользователи, выбираем своего пользователя. Идем во вкладку Оповещения и жмем Добавить. Добавляйте свой ящик и нажимайте Обновить.
Зайдите еще раз в учетную запись и убедитесь, что ящик добавили.
Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Настройка -> Действия и жмем на Деактивировано, чтобы стало Активировано.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.
Если вам нужны оповещения в telegram, то читайте отдельную статью на эту тему. Так же рекомендую ознакомиться с материалом на тему настройки повторяющихся уведомлений в заббиксе. Для многих триггеров может оказаться очень полезной возможностью. Например, можно каждый день напоминать об окончании времени делегирования домена, пока он не будет продлен.
Так же zabbix умеет звонить через asterisk для оповещения о событиях.
Изменение шаблона стандартных оповещений
Я обычно изменяю стандартный шаблон уведомлений заббикса. Располагается он в разделе Настройка -> Действия, называется Report problems to Zabbix administrators.
Я вношу следующие изменения. Меняю шаблон темы письма при проблеме и восстановлении. В стандартном шаблоне в теме письма нет информации об имени хоста. В некоторых шаблонах триггера указано имя хоста, но есть и такие, где нет этой информации. В итоге в оповещении сразу не видно, о каком хосте идет речь. В моем же шаблоне сразу в теме будет указано имя хоста далее статус, а потом все остальное. Вот пример старого и нового оповещения:
Мне мой вид кажется более наглядным. Шаблон меняет на следующий:
{HOST.NAME} — {TRIGGER.STATUS}: {TRIGGER.NAME}
Он одинаковый и для проблемы, и для восстановления.
Изменение стандартных шаблонов мониторинга
На своих серверах мониторинга я изменяю некоторые параметры стандартных шаблонов, чтобы было меньше бесполезных и неинформативных срабатываний. Вот список того, что я делаю.
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 минуты после запуска агента.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
# 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_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 и запускаем ее.
Не забываем создать разрешающее правило в Брандмауэр, если он у вас включен. Для этого идем в Панель управления\Система и безопасность\Брандмауэр Windows — Дополнительные параметры — Правило для входящих подключений — Создать правило.
• Тип правила: Для порта;
• Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
• Действие: Разрешить подключение;
• Профиль (ставим галочки): Доменный, Частный, Публичный;
• Имя: Zabbix Agent;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Настройка -> Узлы сети и жмем Создать узел.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладку Шаблоны и нажимаем Выбрать. Выбираем шаблон Template OS Windows и жмем маленькую ссылку Добавить, затем большую Добавить.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Последних данных, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.