ZABBIX
update-1
---
+ добавлен пакет fping для шаблона ICMP
+ исправлены конфиги ротации логов (su zabbix zabbix)
+ улучшены zabbix-server.service и zabbix-agent.service
+ дополнительное тестирование загрузки/установки bios/efi
Флешка содержит готовую к установке на выделенный сервер систему мониторинга ИТ-инфраструктуры и приложений - Zabbix-5.4.7. Zabbix cобран из исходников в Mageia-7.1-x86_64 (php-7.0.2). После загрузки с флешки можно сразу зайти в Zabbix через браузер (ярлык на РС, Admin/zabbix) и "пощупать" его через web-интерфейс в реальном времени.
Перед установкой с флешки нужно завершить работу всех активных сервисов Zabbix:
Cборка производилась с минимальными опциями по родной инструкции. При желании можно расширить функционал; исходники находятся в /zabbix-5.4.7. Ярлык установки на реальную машину так же находится на Рабочем Столе. В качестве окружения выбран лёгкий и простой LXDE.
Хост-Имя:
---
hostnamectl set-hostname zabbix
Удаление лишнего из Mageia
---
urpme --auto malcontent hexchat shorewall-core msec iptables mgaonline mageiawelcome
Рабочие инструменты:
---
urpmi --auto mc openssh-server firefox-ru htop zstd squashfs-tools wget bind-utils unzip grub2-efi fping
urpmi --auto nginx mysql (php-fpm-nginx для Mageia>7)
Оптимизация MySql /etc/my.cnf
---
sed -i 's/#innodb_buffer_pool_size.*/innodb_buffer_pool_size = 1G/g' /etc/my.cnf (здесь нужно ~50% RAM)
sed -i 's/key_buffer_size.*/key_buffer_size = 128M/g' /etc/my.cnf (если памяти много, прибавить до 512M)
sed -i 's/sort_buffer_size.*/sort_buffer_size = 128M/g' /etc/my.cnf (если памяти много, прибавить до 512M)
sed -i 's/read_buffer.*/read_buffer = 8M/g' /etc/my.cnf
sed -i 's/write_buffer.*/write_buffer = 8M/g' /etc/my.cnf
systemctl restart mysqld
Пользователь и группа zabbix:
---
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
Ребутнём машину для применения юзеров apache (от nginx) и zabbix
---
reboot
Скачиваем и распаковываем исходники zabbix:
---
https://cdn.zabbix.com/zabbix/sources/s … 4.7.tar.gz
tar -C "/" -xzvf zabbix-5.4.7.tar.gz
Пароль root MySql
---
mysql_secure_installation (задать пароль root и всё время Enter)
Создать БД zabbix, юзера zabbix и дать ему права на БД zabbix
---
shell> mysql -uroot -p
> пароль root
#На случай, если БД/юзер пересоздаются - дропнуть
#DROP USER 'zabbix'@'localhost'; DROP DATABASE zabbix;
Создаём юзера zabbix (пароль zabbix_43651) и БД zabbix, даём права
---
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix_43651';
mysql> quit;
Создаём таблицы БД zabbix (идёт долго, смотрим прогресс)
---
cd /zabbix-5.4.7/database/mysql
mysql -v -uzabbix -pzabbix_43651 zabbix < schema.sql
mysql -v -uzabbix -pzabbix_43651 zabbix < images.sql
mysql -v -uzabbix -pzabbix_43651 zabbix < data.sql
Проверяем:
---
mysql -uzabbix -pzabbix_43651
mysql> use zabbix; SHOW TABLES; quit;
Установка Zabbix
---
urpmi --auto autoconf automake gcc make (для bootsrap.sh из git)
Максимум для возможного расширения опций ./configure
---
urpmi --auto mysql-devel libxml2-devel openssl-devel curl-devel gsnmp-devel net-snmp-devel libevent-devel unixODBC-devel ssh2-devel openipmi-devel
cd /zabbix-5.4.7
# В корне исходников (выбрать нужные опции, например --with-proxy)
---
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --prefix=/usr --sysconfdir=/etc/zabbix
make install
cp -f ./src/zabbix_get/zabbix_get /usr/sbin/zabbix_get
cp -f ./src/zabbix_js/zabbix_js /usr/sbin/zabbix_js
cp -f ./src/zabbix_sender/zabbix_sender /usr/sbin/zabbix_sender
Расположение:
---
Configuration file: /etc/zabbix/zabbix_agentd.conf
Modules: /usr/lib/modules
Изменяем DBPassword в /etc/zabbix/zabbix_server.conf
---
sed -i 's/# DBPassword=.*/DBPassword=zabbix_43651/g' /etc/zabbix/zabbix_server.conf
Создаём стартовые скрипты агента и сервера
Агент: /etc/systemd/system/zabbix-agent.service
---
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
Сервер: /etc/systemd/system/zabbix-server.service
---
[Unit]
Description=Zabbix Server
After=syslogd.target
After=network.target
After=mysqld.service
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
Релойд systemd
---
systemctl daemon-reload
Настройка логирования: /etc/logrotate.d/zabbix-agent
---
/tmp/zabbix_agentd.log {
su zabbix zabbix
weekly
rotate 12
compress
delaycompress
missingok
notifempty
create 0664 zabbix zabbix
}
Настройка логирования: /etc/logrotate.d/zabbix-server
---
/tmp/zabbix_server.log {
su zabbix zabbix
weekly
rotate 12
compress
delaycompress
missingok
notifempty
create 0664 zabbix zabbix
}
Web-интерфейс zabbix
---
cp -rf /zabbix-5.4.7/ui/. /usr/share/zabbix; chown -R apache:apache /usr/share/zabbix
Установка php (дополнительно)
---
urpmi --auto php-bcmath php-sockets php-xmlreader php-xmlwriter php-ldap php-ctype php-gettext php-mbstring php-ctype php php-fpm php-iconv
Правка /etc/php.ini для zabbix (требования)
---
sed -i 's/post_max_size =.*/post_max_size = 16M/g' /etc/php.ini
sed -i 's/max_execution_time =.*/max_execution_time = 300/g' /etc/php.ini
sed -i 's/max_input_time =.*/max_input_time = 300/g' /etc/php.ini
Правка конфигурации php-fpm (для nginx)
---
sed -i 's/; listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /etc/php-fpm.d/www.conf;
sed -i 's/listen = \/var\/lib\/php-fpm\/php-fpm.sock/; listen = \/var\/lib\/php-fpm\/php-fpm.sock/g' /etc/php-fpm.d/www.conf
Файл конфигурации nginx для zabbix (из родного пакета Zabbiх): /etc/nginx/conf.d/default.conf
---
server {
# listen 80;
# server_name example.com;
root /usr/share/zabbix;
index index.php;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale|vendor) {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
Чтобы в Zabbix работал traceroute:
---
ln -s /usr/sbin/traceroute /usr/bin/traceroute
Рестарт установленных сервисов и первый запуск
---
systemctl enable zabbix-agent zabbix-server mysqld php-fpm nginx sshd
systemctl restart zabbix-agent zabbix-server mysqld php-fpm nginx sshd
Заходим через браузер: http://127.0.0.1 и попадаем в Zabbix Setup
---
1. Выбираем русский язык
2. Далее-Далее-Вводим пароль к БД (zabbix_43651)-Далее-Вводим имя сервера-Далее-Финиш
3. На странице входа в ZABBIX вводим Логин - Admin, пароль - zabbix (по умолчанию)
Ссылка на MgaRemix-Zabbix: https://cloud.mail.ru/public/Jsyc/jrvfQvsrn




























