Jump to content
Sign in to follow this  

Zabbix 4 на CentOS 7

Sign in to follow this  
k010v

1,205 views

Считаем, что у нас есть установленный и предварительно минимально настроенный CentOS 7. В качестве web-сервера для Zabbix будет использоваться nginx.

 

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

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

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

systemctl start nginx
systemctl enable nginx

Дальше устанавливаем менеджер процессов FastCGI (FPM) – php-fpm. Для этого подключаем репозиторий remi

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

Активируем remi-php71

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

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

yum install -y 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 14271/php-fpm: mast

Все в порядке, но запустим его через unix сокет. Для этого правим конфиг

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 Jan 14 14:36 /var/run/php-fpm/php-fpm.sock

Дальше установим свежую версию сервера баз данных MariaDB. Подключаем нужный репозиторий – Идем сюда и выбираем нужные параметры операционки

mcedit /etc/yum.repos.d/mariadb.repo

Содержимое файла:

# MariaDB 10.3 CentOS repository list - created 2019-01-15 09:15 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

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

yum install -y MariaDB-server MariaDB-client

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

systemctl start mariadb
systemctl enable mariadb

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

/usr/bin/mysql_secure_installation

Сделаем свой конфиг для mariadb, оптимизированный под zabbix

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
[server]
[galera]
[embedded]
[mariadb]
[mariadb-10.3]

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

systemctl restart mariadb
systemctl status mariadb.service

● mariadb.service - MariaDB 10.3.12 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 Mon 2019-01-14 14:42:35 MSK; 21h ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 5353 (mysqld)
Status: "Taking your SQL requests now..."
CGroup: /system.slice/mariadb.service
└─5353 /usr/sbin/mysqld

Приступим к установке Zabbix Server 4.0, первым делом нужно подключить репозиторий

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Теперь запускаем установку Zabbix-server

yum install -y zabbix-server-mysql zabbix-web-mysql

После установки, создаём базу данных zabbix, пользователя 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 'пароль_для_пользователя_zabbix';
exit
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Отредактируем файл конфигурации сервера zabbix, этих минимальных настроек достаточно, для работы сервера

mcedit /etc/zabbix/zabbix_server.conf

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

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=пароль_для_пользователя_zabbix
ListenIP=0.0.0.0
Timeout=10

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

systemctl start zabbix-server
systemctl enable zabbix-server

Можно проверить лог файл на наличие ошибок

cat /var/log/zabbix/zabbix_server.log

Остается сделать конфиг nginx для работы web интерфейса zabbix. В моем случае nginx работает на том же сервере, где сам zabbix, а других виртуальных хостов нет, правим дефолтный конфиг

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;
 }
}

Проверим конфиг на ошибки и перезапустим 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.

С серверной частью всё, продолжаем установку zabbix сервера через Zabbix Frontend. На одном из этапов указываем параметры доступа к базе данных. После завершения установки, авторизуемся на сервере со стандартной учетной записью

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

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

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

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

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

 

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...