Инструменты пользователя

Инструменты сайта


linux:zabbix

Zabbix

Документация:

Описание

Система мониторинга, состоит из нескольких частей, которые можно разнести, в случае большой нагрузки.

  • сервер мониторинга, который выполняет периодическое получение данных, обработку, анализ и запуск скриптов оповещения
  • база данных, реляционная (MySQL, postgres, sqlite, oracle)
  • веб интерфейс
  • агенты, службы работающие на отслеживаемых объектах, отправляющие данные серверу. Так же может использоваться трафик SNMP, внешние скрипты, выдающие данные, и несколько видов встроенных проверок, типа ping/http/ssh..
  • прокси, может применяться для распределения нагрузки на основной сервер

Кроме агентов, есть целый ряд доп возможностей для сбора информации:

  • Simple check - простые операции в т.ч. пинг
  • Zabbix trapper - Траппер элементы данных принимают входящие данные вместо запроса этих данных. Это полезно для любых данных, которые вы возможно захотите «запихнуть» в Zabbix
  • Zabbix aggregate - сбор совокупной информации из БД
  • SSH agent - подключение по SSH, используя указанные команды
  • Calculate - проверки, сопоставляя имеющиеся данные, + можно нивелировать погрешность пинга между агентом и основным сервером, разместив прокси рядом с агентами

Основная логическая единица это Узлы сети (host), наблюдаемые машины. У каждого есть описание и адрес (dns/ip). Узлы объединяются в группы.
Каждый узел имеет несколько элементов данных (items)- параметров, за которыми ведется мониторинг, для каждого можно указать период обновления, способ хранения, множитель, интервал сбора и т.д.

Так же, можно создавать узлы-шаблоны, они так же содержат элементы данных, но не мониторятся, а используются только для сбора в себе и назначения предопределенных (групп) пар-ов.

Триггеры

Логические выражения со значениями False, True, Unknown, используемые для обработки данных.
У каждого существует уровень серьезности угрозы:

  • Без классификации - серый
  • Информация - светло-синий
  • Предупреждение - желтый
  • Средняя - оранжевый
  • Высокая - светло-красный
  • Чрезвычайная - красный

Функции триггеров:

  • abschange, change - разница между последним-предпоследним значениями
  • avg - среднее за определенный интервал
  • count, sum - кол-во отчетов по критерию
  • date, dayofweek, now, time - дата/время
  • last, prev, max\min - определенные значения

Действия

Заданная реакция на событие, авто/созданная в ручную

  • Event source - может служить: авторегистрация, обнаружение или триггер
  • Enable escalations, Period - разрешение на эскалацию, период времени шага эскалации
  • Default subject, Default message - извещенец по умолчанию, стандартный текст сообщения
  • Recovery subject/message - тоже самое, только после устранения
  • Status - вкл/выкл видимо

Операции

Операции/группы операций, указываются для событий

  • Operation type - д-я на определенном шаге
  • Event source - источник события
  • Send message to - отдельное/групповое сообщение
  • Subject/Default message/Message - оповещенец, текст сообщения
  • Remote command - команда для удаленного управления

Низкоуровневое обнаружение

Авто-создание элементов и триггеров, для отслеживания систем, наблюдаемого сервера.
Позволяет обнаружить: OID SNMP, сетевые интерфейсы, процессоры и ядра, файловые системы, службы windows, ODBC
Так же, можно задать собственные типы обнаружения, с применением JSON, типы проверок типа: ssh, ldap, smtp, ftp, http и т.д.

Установка

Подготовка сервера

Автосинхронизация серверного времени
Текущий часовой пояс:

# 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
:!: Установка 11ой версии postgresql
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
:!: Перенос расположения postgresql

При установке директории создаются в /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}

:!: Зависимости указываются сверху вниз т.е. дочернему триггеру ставится зависимость базового, тогда при срабатывании обоих будет показан только базовый. У трех (и более) последовательных зависимостей не обязательно ставить единого предка, если они логически «в цепочке»

zabbix агент

Для использования «JMX» нужен софт «zabbix-java-gateway», ставится отдельно

 
linux/zabbix.txt · Последнее изменение: 2022/11/18 14:25 — admin