Zabbix. Установка Zabbix 4 + Centos 7: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| Строка 385: | Строка 385: | ||
server { | server { | ||
listen 80; | listen 80; | ||
server_name zabbix | server_name zabbix.loc; | ||
root /usr/share/zabbix; | root /usr/share/zabbix; | ||
location / { | location / { | ||
| Строка 440: | Строка 440: | ||
<code>nano /etc/hosts</code> | <code>nano /etc/hosts</code> | ||
... | ... | ||
192.168.0.103 zabbix | 192.168.0.103 zabbix.loc | ||
... | ... | ||
Порты работы Zabbix | Порты работы Zabbix | ||
Текущая версия на 17:26, 21 августа 2023
Ссылки
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.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.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>/