Документация:
Система мониторинга, состоит из нескольких частей, которые можно разнести, в случае большой нагрузки.
Кроме агентов, есть целый ряд доп возможностей для сбора информации:
Основная логическая единица это Узлы сети (host), наблюдаемые машины. У каждого есть описание и адрес (dns/ip). Узлы объединяются в группы.
Каждый узел имеет несколько элементов данных (items)- параметров, за которыми ведется мониторинг, для каждого можно указать период обновления, способ хранения, множитель, интервал сбора и т.д.
Так же, можно создавать узлы-шаблоны, они так же содержат элементы данных, но не мониторятся, а используются только для сбора в себе и назначения предопределенных (групп) пар-ов.
Логические выражения со значениями False, True, Unknown, используемые для обработки данных.
У каждого существует уровень серьезности угрозы:
Функции триггеров:
Заданная реакция на событие, авто/созданная в ручную
Операции/группы операций, указываются для событий
Авто-создание элементов и триггеров, для отслеживания систем, наблюдаемого сервера.
Позволяет обнаружить: OID SNMP, сетевые интерфейсы, процессоры и ядра, файловые системы, службы windows, ODBC
Так же, можно задать собственные типы обнаружения, с применением JSON, типы проверок типа: ssh, ldap, smtp, ftp, http и т.д.
Основные ресурсы: https://www.dmosk.ru/miniinstruktions.php?mini=zabbix-server-ubuntu#zabbix
Официальная инструкция на все платформы
Автосинхронизация серверного времени
Текущий часовой пояс:
# timedatectl set-timezone Asia/Omsk
Сервис синхронизации времени:
# apt install chrony && systemctl {enable,start} chrony
Брандмауэр: нужны порты 80/443 и 10050/10051- агенты/трапперы
Установка версии 6.0, alma/postgres/apache
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm dnf clean all dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent dnf install postgresql-server service postgresql initdb либо /usr/pgsql-11/bin/postgresql-11-setup initdb chkconfig postgresql on systemctl enable postgresql systemctl start postgresql sudo -u postgres createuser --pwprompt zabbix sudo -u postgres createdb -O zabbix zabbix zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix "DBPassword=password" >> /etc/zabbix/zabbix_server.conf systemctl restart zabbix-server zabbix-agent httpd php-fpm systemctl enable zabbix-server zabbix-agent httpd php-fpm # Post set "host all all 127.0.0.1/32 password" in /var/lib/pgsql/data/pg_hba.conf sudo su - postgres & psql \c zabbix update users set passwd=md5('ddd') where username='Admin'; # Так же в параметрах возможно нужно указать схему public
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo dnf module disable postgresql sudo dnf clean all sudo dnf -y install postgresql11-server postgresql11
При установке директории создаются в /usr/pgsql-11, там бинарники и /var/lib/pgsql, там данные и папка БД по дефолту
Сама структура создается командой initdb. Путь есть в конфиге службы, /usr/lib/systemd/system/postgresql11.service, так же есть в файле /var/lib/pgsql/.bash_profile
База данных
MariaDB
Установка MariaDB
Cоздаем базу и пользователя:
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit;
Разворачиваем схему базы:
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix
Postgresql
# apt install postgresql postgresql-contrib
Настройка базы
sudo -u postgres createuser --pwprompt zabbix sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix zcat /usr/share/zabbix-server-pgsql/schema.sql.gz | sudo -u zabbix psql zabbix zcat /usr/share/zabbix-server-pgsql/images.sql.gz | sudo -u zabbix psql zabbix zcat /usr/share/zabbix-server-pgsql/data.sql.gz | sudo -u zabbix psql zabbix
Web-сервер
Nginx
Установка Nginx (можно просто поставить, без всего лишнего)
PHP, PHP-FPM
# apt install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath
Редактируем конфиг: /etc/php/7.3/fpm/php.ini
date.timezone = "Asia/Omsk" ... max_execution_time = 300 ... post_max_size = 16M ... max_input_time = 300 ... max_input_vars = 10000
# systemctl {enable,start} php7.3-fpm
Nginx+ php
/etc/nginx/sitex-enabled/default
# В 'Location /' добавляем 'index.php' ... location ~ \.php$ { set $root_path /var/www/html; fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $root_path; }
Проверяем настройки и ребутим
# nginx -t && systemctl restart nginx
Apache
# apt install apache2 apache2-utils
# Отключите информацию о сервере, изменив следующие параметры в /etc/apache2/conf-enabled/security.conf ServerTokens Prod ServerSignature Off # Включите файл конфигурации Zabbix в Apache: cp /etc/apache2/conf-available/zabbix-frontend-php.conf /etc/apache2/conf-enabled/zabbix.conf # Установите часовой пояс для Zabbix в формате /etc/apache2/conf-enabled/zabbix.conf.
Сервер zabbix
Ставим сам zabbix (тут скачивается файл для настройки репозиториев, сам дистр ставится из репы)
$ wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb $ dpkg -i zabbix-release_5.4-1+debian10_all.deb $ apt update && apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Либо, если база postgres:
# apt install zabbix-server-pgsql zabbix-frontend-php
Так же, правим конфиг (все данные от БД): /etc/zabbix/zabbix_server.conf
DBHost=<host> DBName=zabbix DBUser=zabbix DBPassword=<password>
Создаем пару папок (иногда не создаются автоматом) и ребут «zabbix-server»
mkdir /etc/zabbix/zabbix_server.conf.d mkdir /var/log/zabbix-server chown zabbix:zabbix /var/log/zabbix-server
Открываем web-форму (http://ip-addr/zabbix/setup.php) и завершаем ее настройку
После установки пользователь был «Admin» оО
Список пользователей хранится в созданной БД забикса, таблица «user», там же можно сбрасывать пароли:
update users set passwd=md5('new_pass') where alias='test_admin';
Для авто-конвертации данных итема нужно указать ед. измерения. В условии триггера значение (для сравнения) указывается в байтах (по крайней мере из коробки так)
Опер данные в триггере - {ITEM.LASTVALUE1}
Зависимости указываются сверху вниз т.е. дочернему триггеру ставится зависимость базового, тогда при срабатывании обоих будет показан только базовый. У трех (и более) последовательных зависимостей не обязательно ставить единого предка, если они логически «в цепочке»
Для использования «JMX» нужен софт «zabbix-java-gateway», ставится отдельно