Настройка zabbix server linux

Базовая настройка Zabbix 6.4.0 под CentOS 8 / Rocky Linux 8

Вот прошло уже 2 недели с появления новой версии Zabbix, а именно, версии 6.4.0. И поскольку новым версиям посвещено довольно мало статей, а интерфейс и логику работы они поменяли прямо очень сильно, я решил написать кратенькую инструкцию как с актуальной на данный момент времени вообще жить. Сейчас начнём с основ, а там посмотрим на реакцию публики. Итак.

Собственно, установка

Только обратите внимение, что на этой странице в пункте 1 надо выбрать то, что соответствует вашим пожеланиям, в зависимости от выбора каждого пункта инструкция будет изменяться. Я предпочитаю использовать Zabbix в комплекте с Postgres, потому дальнейшие советы будут про него.

Еще для установки на восьмёрку придётся обновить версии пары пакетов относительно штатных системных, иначе установка пройдёт успешно, но потом ничего работать не будет:

dnf install -y epel-release # Устанавливаем сторонний репозиторий, содержащий нужные нам версии php dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm dnf module reset php dnf module enable php:remi-7.4 -y dnf -qy module disable postgresql dnf install -y postgresql15 postgresql15-server

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

# Данные для подключения к базе, должны соответствовать тому, # что использовалось при установке базы: DBName=zabbix DBUser=zabbix DBPassword=password # Параметры, отвечающие за быстродействие, оптимизированы под меня StartDiscoverers=10 StartHTTPPollers=10 StartVMwareCollectors=5 VMwareCacheSize=32M VMwareTimeout=120 StatsAllowedIP=127.0.0.1. 1,2001:db8::/32,zabbix.your-company.ru

Сохраняем изменения, перезагружаем сервер

systemctl restart zabbix-server.service

… и выполняем первый вход через веб, в процессе которого надо будет указать параметры подключения к базе. А потом еще зайти в интерфейс и сменить пароль администратора с Admin/zabbix на что-нибудь более безопасное.

Если почему-то веб-интерфейс не открывается, то «чиним» фаерволл:

firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --add-service=zabbix-agent --permanent firewall-cmd --add-service=zabbix-server --permanent firewall-cmd --reload

Настройка

А дальше начинается самое интересное… Если вы ранее работали с более старой версией (как например я, который до этого использовал версию 4.5), то интерфейс вы можете не узнать вообще.

Для начала зайдём в Data Collection — Discovery. Тут нам нужно пока 2 правила, первое зададим так:

Data Collection — Discovery

Это правило позволит нам обнаруживать все пингующиеся узлы в сети. Если сетей нужно несколько, пишем их через запятую.

Далее, создаём второе правило, которое позволит нам находить все узлы с установленным Zabbix-агентом:

Теперь, если мы зайдём в Monitoring — Discovery, то мы уже увидим какие-то найденные узлы, но сверху можно выбрать конкретное Discovery rule, применить его и мы узнам, какой именно узел, подпадающий под это правило, находится в каком состоянии:

Читайте также:  Работа midnight commander linux

Отличие живых узлов от мертвых

Первые строки соответствуют узлам в статусе «доступен» и отображают непрерывное время доступности, последние же соответствуют узлам в статусе «не доступен» и отображают время недоступности.

Узлы, находящиеся тут, это все узлы, активность которых Zabbix зафиксировал. Реального сбора с них вполне может не идти!

Далее, устанавливаем заббикс-клиент на узел, который мы хотим мониторить. Для этого на каком-то сервере точно также добавляет репозиторий, устанавливаем пакет zabbix-agent, после чего вносим правки в конфиг и перезапускает сервер. В конфиге я лично ограничусь следующими необходимыми и достаточными мне на первое время правками:

Server=zabbix.yourcompany.ru ServerActive=zabbix.yourcompany.ru #Hostname=Zabbix server HostnameItem=system.hostname HostMetadata=Linux

Строчку Hostname надо убрать любым способом, например закомментировать как в моем примере. Конечно, вы можете указать имя сервера и напрямую (и тогда не указывать HostnameItem), но на мой взгляд это неудобно потому, что тогда каждый конфиг будет уникальным, в данном же случае, все конфиги всех серверов оказываются строго идентичными, благодаря чему их можно раскладывать централизованно например при установке через ansible или любой другой механизм. А имя сервера будет браться из его собственного имени хоста, для работы с которым существует две удобные команды:

Однако, пока новый агент в списке доступных серверов не появится. И чтобы это исправить надо произвести еще несколько действий. Во-первых, заходим в «Alerts-Action-Autoregistration actions», создаём новое действие («Create Action» в правом верхнем углу), которое по наличию в Metadata слова «Linux» будет добавлять хост в группу «Linux Servers», при этом там создаём условие («Add» в поле «Condition»)

А после нажатия кнопки сохранения («Add») переходим на вкладке «Operations» и там также жмём «Add», добавляем соответствующее действие и опять сохраняем.

Тут кстати важно заметить, что в отличие от старых версий, сейчас есть возможность добавлять узлы не только по метаданным, но также по PSK-ключам, что конечно гораздо безопаснее и о чём подробнее вы можете почитать тут: https://www.zabbix.com/documentation/current/en/manual/discovery/auto_registration#secure-autoregistration

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

Во-вторых, заходим в «Alerts-Action-Discovery actions», там создаём новое «Discovery action» примерно с такими условиями, как на картинке выше и примерно с такими действиями, как на картинке ниже.

И опять видим что-то новое! Что за «Set host inventory mode?»- спросите вы — Оказывается, если раньше правила автоопределения просто работали, то сейчас мало того, что их поделили на 2 группы, так еще по умолчанию их выполнение не может добавить узел в Inventory! И исправить эту ситуацию можно одним из двух путей: либо через дополнительный пункт в действиях правила автоопределения, как на изображении выше, либо через смену поведения по-умолчанию, которая производится в Administration-General-Other-Default host inventory mode.

Читайте также:  Linux добавить dns сервер через консоль

Теперь те Linux-сервера, на которых установлен Zabbig agent, будут автоматически добавляться в Inventory hosts, хотя и не сразу… В начале узел должен пропинговаться и стать «Доступен», потом к нему попытается сходить правило Autoregistration action, оно уточнит, точно ли агент настоящий, потом хост он будет добавлен в список узлов Data collection-Hosts, потом к нему будет применено Discovery action и только после этого узел появится в Inventory и начнёт отображаться его доступность. При параметрах, которые приведены в примере, это должно занять менее полутора часов.

Если статья окажется интересна и наберёт положительные отзывы, я напишу как подружить Zabbix с VmWare ESXi.

А если будут просто какие-то пожелания или возражения — пишите, с удовольствием исправлю. Я — не частый автор статей для Хабра, потому с большим вниманием отнесусь к критике и постараюсь исправить возможные ошибки. Рука не набита, как говорится.

Источник

Установка и начальная настройка сервера мониторинга Zabbix 6 на Ubuntu Server

Обновлено

Обновлено: 15.11.2022 Опубликовано: 23.05.2019

Тематические термины: Zabbix, MariaDB, MySQL, PHP, NGINX. Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 20.04 LTS (также протестировано на 22.04), версия устанавливаемого Zabbix — 6.

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

1. Правильное время

Для получения актуальной информации необходимо, чтобы на сервере было правильное время. Для этого сначала задаем правильную временную зону:

* в данном примере задается московское время. Затем устанавливаем и запускаем сервис синхронизации времени:

2. Настройка брандмауэра

* где 80 — порт для http запросов (веб-интерфейс); 443 — для https запросов (веб-интерфейс); 10050 — порты для получения информации от zabbix агентов. Для сохранения правил используем

Если наша система чистая и на ней не работают критически важные сервисы, стоит обновить установленные пакеты:

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

СУБД

В данному инструкции мы будем использовать сервер баз данных mariadb. Zabbix версии 6 требует MariaDB версии 10.05.00 и выше. Но слишком свежая версия также может не поддерживаться сервером заббикс. Необходимо уточнить системные требования на официальной странице. В репозитории Ubuntu может не оказаться нужной версии СУБД, поэтому мы подключим репозиторий разработчика. Для этого переходим по ссылке downloads.mariadb.org/mariadb/repositories и выбираем нашу версию операционной системы, последний стабильный и поддерживаемый релиз mariadb и геолокацию репозитория, например: Выбираем нашу версию операционной системы и релиз mariadbНиже появится инструкция по добавлению репозитория и установке СУБД: Инструкция по добавлению репозитория MariaDBСогласно инструкции, создаем файл:

Читайте также:  Linux disable password authentication

# MariaDB 10.8 repository list — created UTC
# https://mariadb.org/download/
deb [arch=amd64,arm64,ppc64el,s390x] https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main
deb-src https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main

Веб-сервер

Окно приветствия NGINX

Открываем веб-браузер и переходим по ссылке http:/// — мы должны увидеть окно приветствия:

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипты, написанные на нем. Zabbix версии 6 требует PHP версии 7.2 и выше. Устанавливаем php и необходимые компоненты:

apt install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-bcmath

* где 7.4 — версия PHP. В вашем случае это может быть другая версия. Проверить можно командой php -v. Редактируем следующие параметры:

date.timezone = «Europe/Moscow»
.
max_execution_time = 300
.
post_max_size = 16M
.
max_input_time = 300
.
max_input_vars = 10000

  • date.timezone — временная зона. В нашем примере выставлено московское время.
  • max_execution_time — разрешенное время выполнения скрипта. Если последний будет выполняться дольше, система прервет его работу.
  • post_max_size — максимальные объем передачи данных методом POST.
  • max_input_time — время в секундах, за которое PHP должен разобрать входные данные GET и POST.
  • max_input_vars — ограничение на количество входных переменных, которые могут быть переданы на сервер в одном запросе.

Разрешим запуск php-fpm и перезапустим его:

systemctl enable php7.4-fpm

systemctl restart php7.4-fpm

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

В секции location добавляем параметр index:

Внутри секции server добавим следующее:

location ~ \.php$ set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>

* где /var/www/html — корневой путь хранения скриптов; /run/php/php7.4-fpm.sock — путь до сокетного файла php-fpm (точное расположение файла можно посмотреть в конфигурационном файле /etc/php/7.4/fpm/pool.d/www.conf).

Проверяем настройки nginx:

Создаем index.php со следующим содержимым:

Открываем веб-браузер и переходим по ссылке http:/// — теперь мы должны увидеть сводную информацию по PHP и его настройкам:

Сводная информация по PHP

* в нашем примере мы работаем с php7.4, а на скриншоте 7.2. Это не принципиально. Для нас важно, что страница отдает phpinfo — значит веб-сервер настроен корректно.

Веб-сервер готов для работы с Zabbix Web.

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

Переходим к установке самого Zabbix сервера.

Установка

Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу https://repo.zabbix.com/zabbix/ и переходим в раздел с самой последней версией пакета — затем переходим в ubuntu/pool/main/z/zabbix-release/ — копируем ссылку на последнюю версию релиза:

Копируем ссылку на нужный релиз Zabbix

Обратите внимание, что необходимо скопировать ссылку на файл для своей версии Ubuntu — в нашем примере это 20.04. Посмотреть свою версию операционной системы можно командой:

cat /etc/os-release | grep VERSION_ID

Скачиваем файл репозитория командой:

Источник

Оцените статью
Adblock
detector