Zabbix. Установка Zabbix 4 + Centos 7: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
Строка 200: Строка 200:
<code>systemctl status mariadb</code>
<code>systemctl status mariadb</code>


=== Установка Zabbix ===
=== Установка и настройка Zabbix ===
Установка состоит из двух частей. Вначале надо установить сам сервер zabbix и позже настроить web лицо для работы в системе мониторинга.
Установка состоит из двух частей. Вначале надо установить сам сервер zabbix и позже настроить web лицо для работы в системе мониторинга.


Подключаем репозиторий версии Zabbix 4.2
=== Установка Zabbix ===
Подключаем репозиторий версии Zabbix 4.4


rpm -Uvh <nowiki>https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm</nowiki>
rpm -Uvh <nowiki>https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm</nowiki>
Строка 211: Строка 212:
  Подготовка...               ################################# [100%]
  Подготовка...               ################################# [100%]
  Обновление / установка...
  Обновление / установка...
     1:zabbix-release-4.2-1.el7         ################################# [100%]
     1:zabbix-release-4.4-1.el7         ################################# [100%]
  ...
  ...
Очищаем и пересоздаем кэш yum:
Очищаем и пересоздаем кэш yum:

Версия 21:50, 31 января 2022


Ссылки

https://sevo44.ru/ustanovka-zabbix-4-2/

Установка

Selinux disable

nano /etc/sysconfig/selinux

...
SELINUX=disabled
...

Перезагрузим машину для применения изменений.

reboot

После перезагрузки проверяем статус:

sestatus

...
SELinux status: disabled
...

Установка NGINX

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

yum -y install nginx

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

systemctl start nginx

systemctl enable nginx

Gроверка nginx

curl http://localhost

...

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

   body {

       width: 35em;

       margin: 0 auto;

       font-family: Tahoma, Verdana, Arial, sans-serif;

   }

</style>

</head>

<body>

<h1>Welcome to nginx!</h1>

<p>If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.</p>

<p>For online documentation and support please refer to

<a href="http://nginx.org/">nginx.org</a>.<br/>

Commercial support is available at

<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

</body>

</html>

...

Установка PHP

yum -y install epel-release

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

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

yum -y install yum-utils

yum-config-manager --enable remi-php72

Устанавливаем php 7.2 и необходимые модули выполнив команду:

yum -y install php72 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

Перемещение оригинальной конфигурации

mv /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.ORIG

Настроим работу php-fpm через unix сокет. Открываем необходимый конфиг и приведем его к следующему виду:

nano /etc/php-fpm.d/www.conf

[www]
user = nginx
group = nginx
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache

Перезапускаем 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
...

Установка MariaDB

Подключаем свежий репозиторий создав необходимый файл следующего содержания:

nano /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 выполнив команду:

yum -y install MariaDB-server MariaDB-client

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

systemctl start mariadb

systemctl enable mariadb

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root выполнив команду:

/usr/bin/mysql_secure_installation

Перемещение оригинальной конфигурации

mv /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.ORIG

Откроем конфигурационный файл сервера MariaDB  и приводим его к следующему виду:

nano /etc/my.cnf.d/server.cnf

[mysqld]
bind-address = 0.0.0.0 # разрешает подключение со всех хостов
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_format=barracuda
innodb_file_per_table=1
innodb_buffer_pool_size = 1G # установить примерно в 2 раза меньше объема оперативной памяти сервера
innodb_buffer_pool_instances=1
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_strict_mode = 0
innodb_log_files_in_group = 3

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

Перезапускаем MariaDB и проверяем статус работы:

systemctl restart mariadb

systemctl status mariadb

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

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

Установка Zabbix

Подключаем репозиторий версии Zabbix 4.4

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

...
Загружается https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
предупреждение: /var/tmp/rpm-tmp.W8KoVE: Заголовок V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Подготовка...               ################################# [100%]
Обновление / установка...
   1:zabbix-release-4.4-1.el7         ################################# [100%]
...

Очищаем и пересоздаем кэш yum:

yum clean all

yum makecache

Произведем установку введя в консоли следующую команду:

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

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

mysql -uroot -p

> create database zabbix character set utf8 collate utf8_bin;

> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';

> exit

Заполнение базы данных необходимыми параметрами

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Редактируем файл конфигурации сервера Zabbix. Прописываем данные для подключения к БД и некоторые другие параметры:

nano /etc/zabbix/zabbix_server.conf

...
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
ListenIP=0.0.0.0
Timeout=10
...

Параметр Timeout увеличен, так как он отвечает за время ожидания ответа от агента.

Стандартного значения в 3 секунды бывает недостаточно, когда используется Zabbix proxy или скрипт который долго выполняется для получения метрики.

В случае переодических отсутсвиях данных в графиках поиграйте с этим параметром.

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

systemctl start zabbix-server

systemctl enable zabbix-server

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

cat /var/log/zabbix/zabbix_server.log

...

2373:20190416:222404.662 Starting Zabbix Server. Zabbix 4.2.0 (revision 91746).

  2373:20190416:222404.667 ****** Enabled features ******

  2373:20190416:222404.667 SNMP monitoring:           YES

  2373:20190416:222404.667 IPMI monitoring:           YES

  2373:20190416:222404.668 Web monitoring:            YES

  2373:20190416:222404.668 VMware monitoring:         YES

  2373:20190416:222404.669 SMTP authentication:       YES

  2373:20190416:222404.669 Jabber notifications:       NO

  2373:20190416:222404.670 Ez Texting notifications:  YES

  2373:20190416:222404.671 ODBC:                      YES

  2373:20190416:222404.671 SSH2 support:              YES

  2373:20190416:222404.672 IPv6 support:              YES

  2373:20190416:222404.672 TLS support:               YES

  2373:20190416:222404.673 ******************************

  2373:20190416:222404.673 using configuration file: /etc/zabbix/zabbix_server.conf

  2373:20190416:222404.720 current database version (mandatory/optional): 04020000/04020000

  2373:20190416:222404.721 required mandatory version: 04020000

  2373:20190416:222404.838 server #0 started [main process]

  2374:20190416:222404.846 server #1 started [configuration syncer #1]

  2375:20190416:222404.855 server #2 started [alerter #1]

  2379:20190416:222404.865 server #6 started [timer #1]

  2377:20190416:222404.872 server #4 started [alerter #3]

  2378:20190416:222404.882 server #5 started [housekeeper #1]

  2376:20190416:222404.891 server #3 started [alerter #2]

  2380:20190416:222404.899 server #7 started [http poller #1]

  2381:20190416:222404.907 server #8 started [discoverer #1]

  2393:20190416:222404.916 server #20 started [poller #4]

  2395:20190416:222404.934 server #22 started [unreachable poller #1]

  2384:20190416:222404.944 server #11 started [history syncer #3]

  2399:20190416:222404.954 server #26 started [trapper #4]

  2387:20190416:222405.009 server #14 started [proxy poller #1]

  2386:20190416:222405.018 server #13 started [escalator #1]

  2388:20190416:222405.030 server #15 started [self-monitoring #1]

  2389:20190416:222405.041 server #16 started [task manager #1]

  2390:20190416:222405.051 server #17 started [poller #1]

  2407:20190416:222405.064 server #34 started [lld manager #1]

  2392:20190416:222405.077 server #19 started [poller #3]

  2394:20190416:222405.089 server #21 started [poller #5]

  2409:20190416:222405.119 server #36 started [lld worker #2]

  2383:20190416:222405.152 server #10 started [history syncer #2]

  2396:20190416:222405.160 server #23 started [trapper #1]

  2385:20190416:222405.172 server #12 started [history syncer #4]

  2398:20190416:222405.187 server #25 started [trapper #3]

  2397:20190416:222405.198 server #24 started [trapper #2]

  2400:20190416:222405.208 server #27 started [trapper #5]

  2401:20190416:222405.215 server #28 started [icmp pinger #1]

  2403:20190416:222405.225 server #30 started [preprocessing manager #1]

  2402:20190416:222405.233 server #29 started [alert manager #1]

  2391:20190416:222405.241 server #18 started [poller #2]

  2408:20190416:222405.252 server #35 started [lld worker #1]

  2382:20190416:222405.260 server #9 started [history syncer #1]

  2406:20190416:222406.068 server #33 started [preprocessing worker #3]

  2404:20190416:222406.104 server #31 started [preprocessing worker #1]

  2405:20190416:222406.135 server #32 started [preprocessing worker #2]

...

Настройка Nginx

Перемещаем оргинальный конфиг

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.ORIG

Отредактируем дефолтный фал приведя его к виду:

nano /etc/nginx/conf.d/default.conf

server {
   listen       80;
   server_name  zabbix.sevo44.loc;
   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

nginx -s reload

Настройка Zabbix для работы с Nginx

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

Этот шаг нужно будет проделывать после каждого обновления php или zabbix.

Связано с тем, что по-умолчанию zabbix идет в комплекте с apache и рассчитан на работу с ним.

Поэтому после установки или обновления, он делает его владельцем директории /etc/zabbix/web.

chown -R nginx:nginx /var/lib/php/session

chown -R nginx:nginx /etc/zabbix/web

Настройка DNS для работы с сервером Zabbix

Осталось добавить домен в DNS или как к моем случае добавим строчку в файл /etc/hosts на компьютере с которого будем открыват

nano /etc/hosts

...
192.168.0.103 zabbix.sevo44.loc
...

Порты работы Zabbix

В система Zabbix используется два порта:

   10050 — порт по которому zabbix опрашивает клиентов (пасивный агент);

   10051 — порт на котором zabbix получает данные от активных клиентов (активный агент).

На сервре Zabbix должен быть открыт порт 10051, на клиенте порт 10050.

На сервере работающем с Firewalld необходимо выполнить следующие команды:

Открыть порт 10051

firewall-cmd --permanent --zone=public --add-service=zabbix-server

Применить изминения

firewall-cmd --reload

или

systemctl stop firewalld

systemctl disable firewalld

Zabbix-agent install and run

yum -y install zabbix-agent

systemctl start zabbix-agent

systemctl enable zabbix-agent

Далее приступаем к настройке из веб-интерфейса

http://<IP>/