Готовое решение zabbix

Готовое решение zabbix Хостинг

Готовое решение zabbix

В прошлой статье
мы рассказали, что нужно учитывать при мониторинге SAAS-сервиса интернет-магазинов. Теперь займемся практикой — установкой сервера Zabbix.

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

Время на прочтение

Готовое решение zabbix

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

С 5-ой версией в Zabbix пришло множество улучшений, среди которых множество новых шаблонов и плагинов для различных сервисов, новые интеграции с системами оповещений и уведомлений, улучшена визуализация, а так же улучшена безопасность, за счет добавления пользовательских секретных макросов для хранения такой чувствительной информации как пароли и API-ключи и возможности включить шифрование между компонентами Zabbix с использованием TLS.


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

Готовое решение zabbix

Опционально можно настроить использование сертификатов Let’s Encrypt с помощью ранее установленного certbot’a, для этого необходимо указать действующее доменное имя сервера в файле /etc/nginx/conf.d/zabbix.conf
исправив параметр server, например:

 server_name zabbix.mydomainname.ru; 
 service nginx restart 
 /usr/local/bin/certbot-auto --nginx 

Введем свой e-mail, cогласимся с условиями сервиса ( A
), Подписка на рассылку (опционально) ( N
), выберем доменные имена для которых нужно издать сертификат ( Enter
для всех).

В случае если все прошло без ошибок, мы увидим сообщение об успешной выдаче сертификатов и настройке сервера:

 Congratulations! You have successfully enabled ... 

После этого подключения на 80 порт будут перенаправляться на 443 (https).

Добавим в /etc/crontab
для автоматического обновления сертификатов:

 # Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload" 

Готово, теперь у нас есть готовый сервер Zabbix с настроенными сертификатами Let’s Encrypt!

Для владельцев бизнеса: предложите свой софт

Если вы — разработчик софта, который разворачивают и используют на VPS, то мы можем включить вас в маркетплейс. Так мы можем помочь вам привести новых клиентов, трафик и узнаваемость. Пишите нам

Просто предложить нам образ в комментариях

Напишите, какой с каким софтом вы хотели бы иметь возможность разворачивать виртуалки в один клик?

Чего вам не хватает в маркетплейсе RUVDS?

Что каждый уважающий себя хостинг должен обязательно включить в свой маркетплейс?

Готовое решение zabbix

Готовое решение zabbix

Обновим установленные пакеты до последней версии:

 sudo dnf update -y 

Добавим постоянное разрешение для входящего трафика на http/80, https/443, tcp/10051
(zabbix trapper) порты и перезагрузим правила файрвола:

 sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10051/tcp 

Применим новые правила файрвола:

 sudo systemctl reload firewalld 
 dnf install nginx -y 

Запустим и включим сервер Nginx:

 sudo systemctl start nginx
sudo systemctl enable nginx 

Установим PHP, PHP-FPM, и требуемые модули PHP:

 dnf install php-fpm php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip -y 

Установим MySQL Server:

 dnf install mysql-server -y 

Включим и запустим сервер MySQL:

 systemctl start mysqld
systemctl enable mysqld 

Так как мы делаем шаблон для VDS, а они могут быть медленными, добавим задержку старта mysqld 30 секунд, иначе могут быть проблемы со стартом сервера при первоначальной загрузке системы:

 sudo sed -i '/Group=mysql/a \
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service 

Изменим группу и пользователя из под которого будет работать nginx внеся изменения в /etc/php-fpm.d/www.conf
:

 sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf 

Изменим владельца каталога сессий PHP так же соответственно на nginx:

 sudo chown -R nginx. /var/lib/php/session 

Удалим строки с коментариями из файла конфигурации /etc/nginx/nginx.conf
(что бы не было двойных срабатываний для sed):

 sudo sed -i -e '/^[ \t]*#/d' /etc/nginx/nginx.conf 

Добавим в /etc/nginx/nginx.conf
настройки компрессии gzip

 sudo sed -i '/types_hash_max_size 2048;/a \
\ gzip on;\ gzip_static on;\ gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;\ gzip_comp_level 9;\ gzip_proxied any;\ gzip_min_length 1000;\ gzip_disable "msie6";\ gzip_vary on; \
' /etc/nginx/nginx.conf 

Добавим в /etc/nginx/nginx.conf настройки индексного файла index.php
:

 sudo sed -i '/ root \/usr\/share\/nginx\/html;/a \ index index.php index.html index.htm;\
' /etc/nginx/nginx.conf 

Добавим настройки для дефолтного сервера обработку php через сокет php-fpm, отключим лог для статических файлов, увеличим время expire, отключим лог доступа и ошибок для favicon.ico и robots.txt и запретим доступ к файлам .ht для всех:

 sudo sed -i '/ location \/ {/a \	try_files $uri $uri/ /index.php?q=$uri&$args;\ }\ \ location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {\ access_log off;\ expires max;\ }\ \ location ~ \.php$ {\ try_files $uri =404;\ fastcgi_pass unix:/run/php-fpm/www.sock;\ fastcgi_index index.php;\ include fastcgi_params;\ 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;\ }\ \ location = /favicon.ico {\ log_not_found off;\ access_log off;\ }\ \ location = /robots.txt {\ allow all;\ log_not_found off;\ access_log off;\ }\ \ location ~ /\.ht {\ deny all;' /etc/nginx/nginx.conf 

Установим wget требуемый для установки certbot
:

 sudo dnf install wget -y 

Скачаем исполняемый файл certbot
с оффсайта:

 cd ~
wget https://dl.eff.org/certbot-auto 

Переместим certbot в /usr/local/bin/
:

 mv certbot-auto /usr/local/bin/certbot-auto 

И назначим права и владельцем root:

 chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto 

Установим зависимости certbot: (ответ Y в конвеер на вопрос установки зависимостей, и --install-only
, что бы не инициировать установку сертификатов на данном этапе):

 yes | certbot-auto --install-only 

Установим репозиторий Zabbix, что бы дать пользователю возможность его без проблем обновлять:

 dnf install https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm -y 

Установим сервер, агент и утилиты Zabbix:

 dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get -y 

На данном этапе мы создадим пользователя с пустым паролем и базу данных для Zabbix и загрузим схему, что бы минимализировать действия пользователя при запуске VDS из шаблона.

Читайте также:  10 простых советов по выбору идеального домашнего принтера

Пароли будут сгенерированы по запросу пользователя после развертывания сервера из образа, так как, очевидно сохранять какие либо пароли в шаблоне небезопасно.

Создадим базу данных Zabbix (так же можно запустить клиент mysql и вводить команды заключенные в двойные кавычки в интерактивном режиме):

 mysql -uroot -e "CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;" 

Создадим пользователя mysql zabbix с пустым паролем:

 mysql -uroot -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '';" 

Предоставим все привелегии пользователю zabbix на базу zabbix

 mysql -uroot -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';" 

Загрузим схему zabbix в базу данных:

 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix zabbix 

Установим шаблон конфигурации Zabbix для Nginx:

 dnf install zabbix-nginx-conf -y 

Удалим подстроку из дефолтного конфига nginx, т.к. default_server
будет определен в zabbix.conf
:

 sed -i --follow-symlinks 's/default_server//g' /etc/nginx/nginx.conf 

Добавим строку default_server
в конфигурацию сервера zabbix для Nginx:

 sed -i '/# server_name example.com;/a \ listen 80 default_server;\ server_name _;\
' /etc/nginx/conf.d/zabbix.conf 

Изменим пользователя PHP-FPM
с apache на nginx для Zabbix:

 sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/zabbix.conf
sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/zabbix.conf 

Установим временную зону в php.ini (Zabbix проверяет наличие этой настройки при установке):

 sed -i --follow-symlinks 's/;date.timezone =/date.timezone = Europe\/Moscow/g' /etc/php.ini 

Назначим владельцем каталога /etc/zabbix nginx (для корректной записи конфигурации веб-сервером):

 chown -R nginx. /etc/zabbix 

Назначим группу каталога zabbix для /etc/zabbix/zabbix_*
(Для чтения файлов конфигурации Zabbix сервером и агентом):

 chown :zabbix /etc/zabbix/zabbix_* 

Перезапустим и активируем сервисы Zabbix server и Zabbix agent:

 systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent php-fpm 

Далее создадим скрипт в домашнем каталоге root который по запросу пользователя сгенерирует и установит пароли для root и zabbix и скорректирует их в конфигурации сервера Zabbix и веб-интерфейса Zabbix. Воспользуемся перенаправлением heredoc
с делимитером POSTINSTALL
, что бы записать скрипт «как есть», без раскрытия специальных символов:

 cat <<"POSTINSTALL" > /usr/local/bin/secure_mysql
#!/bin/bash
# Сгенерируем пароль для пользователей MySQL root и zabbix, используя openssl с вырезанием символов =+/ и сохраним их в переменных:
ZABBIXPASS="$(openssl rand -base64 29 | tr -d "=+/" | cut -c1-25)"
ROOTPASS="$(openssl rand -base64 29 | tr -d "=+/" | cut -c1-25)"
# Установим новые пароли пользователям:
mysql -uroot -e "ALTER USER 'zabbix'@'localhost' IDENTIFIED BY '$ZABBIXPASS';"
mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$ROOTPASS';"
# И выведем их в консоль
echo "New password for zabbix@localhost: $ZABBIXPASS"
echo "New password for root@localhost: $ROOTPASS"
# Запишем новый пароль zabbix в /etc/zabbix/zabbix_server.conf:
sed -i --follow-symlinks "s/# DBPassword=/DBPassword=${ZABBIXPASS}/g" /etc/zabbix/zabbix_server.conf
# Запишем новый пароль zabbix в /etc/zabbix/web/zabbix.conf.php:
sed -i --follow-symlinks "s/\['PASSWORD'\]\s*=\s''/\['PASSWORD'\] = '${ZABBIXPASS}'/g" /etc/zabbix/web/zabbix.conf.php
# Перезапустим затронутые сервисы:
systemctl restart zabbix-server zabbix-agent nginx php-fpm
# Обнулим переменные
ZABBIXPASS=
ROOTPASS=
# Удалим файл, так как после того как пароли установлены, он более не нужен:
rm -f /usr/local/bin/secure_mysql
POSTINSTALL 

Сделаем скрипт исполняемым:

 chmod +x /usr/local/bin/secure_mysql 

На данном этапе все настройки выполнены, остается выключить сервер и сделать снапшот:

 shutdown -h now 
 secure_mysql 

При выполнении скрипта, мы получим пароли в консоль в таком виде:

 New password for zabbix@localhost: sdfiUB34xudgsRMiwKdd90spW
New password for root@localhost: Z1b0HjjyDJYQEtXqNWPaSySnH 

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

Добавление контролируемого хоста на сервер Zabbix

Откройте главную страницу веб-интерфейса Zabbix, затем выберите из меню Configuration
строку Hosts
. Откроется страница Hosts
, на которой уже добавлен один хост с именем Zabbix server
. Это хост, на котором установлен сам сервер Zabbix, и его адрес IP указан как 127.0.0.1 (рис. 7).

Рис. 7. Страница Hosts сразу после установки сервера Zabbix
Рис. 7. Страница Hosts сразу после установки сервера Zabbix

Для добавления нового контролируемого хоста щелкните кнопку Create host
. Появится форма, где нужно заполнить параметры нового хоста (рис. 8).

Рис. 8. Параметры добавляемого хоста
Рис. 8. Параметры добавляемого хоста

Здесь вам нужно указать в поле Host name
такое же имя хоста, что было задано в файле конфигурации агента Zabbix. 

Для мониторинга обычного физического или виртуального сервера Linux выберите в поле Templates
шаблон Linux by Zabbix agent
.

Далее нужно задать имя группы в поле Host groups
. Сразу после установки в конфигурации Zabbix нет ни одной группы, поэтому вам нужно создать новую группу. Мы рекомендуем отразить в имени группы название дата-центра и тип узла, чтобы по этому имени можно было быстро понять, что это за хосты, где они находятся и для чего предназначены.

В поле Interfaces
щелкните ссылку Add
(на рис. 8 не показана), а затем выберите строку Agent
. Далее в поле Agent
формы укажите адрес IP нового контролируемого хоста, как это показано на рис. 8.

Когда все поля будут заполнены, щелкните кнопку Add
.

Через некоторое время (порядка нескольких минут) напротив добавленного хоста в столбце Availability
появится значок  ZBX 
зеленого цвета (рис. 9).

Читайте также:  Облачные сервисы для гейминга в России в 2022 году: игры, требования и, конечно, цена — Ксюша Цветикова на DTF
Рис. 9. Добавлено два хоста для мониторинга
Рис. 9. Добавлено два хоста для мониторинга

Если этого не произошло, проверьте еще раз файл конфигурации агента Zabbix, состояние сервиса zabbix-agent (или zabbix-agent2, если вы его используете), а также убедитесь, что после редактирования файла конфигурации агента вы перезапустили сервис.

Кроме того, убедитесь, что на контролируемом хосте открыт порт 10050 для сервера Zabbix.

При ошибке вы увидите значок  ZBX 
красного цвета. Щелкните его, и на экране появится сообщение об ошибке (рис. 10).

Рис. 10. Сообщение об ошибке при попытке подключения сервера Zabbix к агенту
Рис. 10. Сообщение об ошибке при попытке подключения сервера Zabbix к агенту

Если вам нужно добавить несколько похожих друг на друга хостов на сервер Zabbix, воспользуйтесь функцией клонирования. Для этого откройте хост в списке хостов, щелкнув по его имени, а затем воспользуйтесь кнопкой Clone
или Full clone
. Измените имя хоста и его адрес IP, отредактируйте список использованных шаблонов, а затем сохраните изменения кнопкой Add
.

Функция Full clone
позволяет дополнительно скопировать элементы данных (items), триггеры, графы и приложения. Это удобно, если для хостов были сделаны индивидуальные настройки. 

Приступаем к внедрению Zabbix

Если вы только приступаете к внедрению Zabbix, то установите сервер мониторинга Zabbix на виртуальную машину, например, арендованную в одном из дата-центров. 

Также необходимо установить на каждый контролируемый сервер (хост) клиентское ПО Zabbix — агент и так называемую программу-траппер zabbix-sender, отправляющую данные мониторинга на сервер Zabbix из командной строки.

Для установки сервера Zabbix мы будем использовать виртуальные машины (ВМ) с ОС Debian 11. Перед тем как приступить к их заказу и установке ПО, нужно выбрать конфигурацию ВМ и дата-центры, где они будут установлены.

Выбор конфигурации виртуальной машины Zabbix

Как выбрать конфигурацию для виртуальной машины Zabbix?

Инструкцию по выбору конфигурации можно найти в документации
(для версии 6.0 есть на русском языке
).

Так как наш SAAS-сервис интернет-магазинов содержит пока только десятки хостов (а не сотни и тысячи, как хотелось бы), то нам будет достаточно ВМ с 4 ядрами, объемом оперативной памяти 4 Гбайт и диском 40 Гбайт. Если же требуется контролировать всего несколько хостов, хватит и двух процессорных ядер.

Заметим, что при размещении ВМ Zabbix в облаке есть возможность управлять количеством ядер и объемом оперативной памяти, выделяя при необходимости больше или меньше ресурсов. 

Тут, однако, имеет смысл сравнить цены — облачные решения могут оказаться дороже простой виртуальной машины при одинаковых конфигурациях. Кроме того, у некоторых хостинг-провайдеров есть гибкие тарифы, которые позволяют изменять количество ядер и объём памяти после создания ВМ. Поэтому перед заказом сервера стоит проконсультироваться со специалистами хостинга и выяснить все детали.

Размещение серверов Zabbix в нескольких дата-центрах

Наличие нескольких серверов мониторинга в разных дата-центрах позволит контролировать доступность узлов из разных мест с учетом связности дата-центров. Когда возникнет проблема с доступностью, вы сможете быстро понять, с чем связана эта проблема — с работоспособностью самих хостов или с каналами передачи данных. Это важно, когда нужно как можно быстрее локализовать проблему.

Если к мониторингу предъявляются повышенные требования, используйте возможность создавать резервные серверы Zabbix (есть в Zabbix версии 6.x). Резервный сервер автоматически возьмет на себя работу при выходе из строя основного сервера мониторинга.

Как мы создавали этот образ

Для использования Zabbix 5 рекомендуется использовать 2 Гб RAM и 2 ядра CPU.

Основные файлы Zabbix занимают около 20 Мб, дополнительно вам понадобится место для хранения базы данных, резервных копий, которое будет зависить от количества узлов которые вы планируете мониторить и количества хранимых метрик.

Веб-интерфейс Zabbix может использовать Apache или Nginx с PHP 7.2+, а в качестве базы данных MySQL, PostgreSQL, Oracle или SQLite.

Мы будем создавать образ с использованием Nginx и MySQL.

Что нужно сделать дальше

В следующей статье мы расскажем о настройке мониторинга дисковых систем и контроллеров диска.

А пока добавьте на свой сервер Zabbix все контролируемые хосты, сгруппировав их по дата-центрам, типам хостов и выполняемым функциям. 

Мы, например, создали группы для каждого дата-центра, для физических серверов и виртуальных машин, для мониторинга сайтов, сроков действия сертификатов и доменных имен.

Также рекомендуем ознакомиться с документацией Zabbix. Для версии 6.2 она доступна на английском языке
, а для версии 6.0 на русском языке
.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

—  15% на все тарифы VDS
 (кроме тарифа Прогрев) —  HABRFIRSTVDS
.

Установка серверного ПО Zabbix

Для получения инструкции по установке откройте страницу https://www.zabbix.com/download

. Выберите здесь нужный вариант установки, платформу и другие параметры (рис. 1).

  Рис. 1. Выбор платформы
  Рис. 1. Выбор платформы

После выбора на странице появятся инструкция по установке в виде команд, которые нужно вводить в консоли ОС виртуальной машины сервера Zabbix.

Мы выбрали установку самой новой на момент написания этой статьи версии Zabbix 6.2 в ОС Debian 11, с базой данных MySQL и веб-сервером nginx.

Начнем с того, о чем не будет сказано в полученной таким способом инструкции.

Обновление ОС

Прежде всего, обновите ОС:

 # apt update
# apt upgrade 

Это нужно делать от пользователя root
или с помощью sudo
.

Установка fail2ban

Далее установите fail2ban для защиты от брутфорса, который начнется сразу, как только ваш виртуальный сервер станет доступен в интернете:

 # apt install fail2ban 

Проверьте, что fail2ban
работает:

 # systemctl status fail2ban 

Включите автоматический запуск fail2ban
при загрузке ОС:

 # systemctl enable fail2ban 

Более подробную инструкцию по настройке fail2ban для Debian 11 вы найдете здесь
.

Установка MySQL

Инструкция по установке Zabbix предполагает, что MySQL (или совместимая с ней MariaDB) уже установлен на виртуальной машине и работает. Если это не так, установите MariaDB:

 # apt install mariadb-server 

Вы, конечно, можете использовать и MySQL.

Читайте также:  SSD хостинг: что это и для чего он нужен - простыми словами

Установка репозитория Zabbix

Далее выполните команды из инструкции, которая появится на странице https://www.zabbix.com/ru/download

после выбора платформы и конфигурации. 

Для начала установите репозиторий Zabbix:

 # wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
# dpkg -i zabbix-release_6.2-1+debian11_all.deb
# apt update 

Установка ПО сервера Zabbix, веб-интерфейса и агента Zabbix

Затем установите ПО сервера Zabbix, веб-интерфейс и агент Zabbix:

 # apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent 

Создание базы данных zabbix

Для создания базы данных пользователем root
запустите утилиту mysql
:

 # mysql -u root 

Если запускать эту утилиту от root, то пароль root от MariaDB вводить не нужно. И вообще при установке сервера Zabbix в Debian 11 этот пароль вам не потребуется.

Далее в приглашении mysql создайте базу данных:

 MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin; 
 MariaDB [(none)]> create user zabbix@localhost identified by 'pAssW0rd'; 

Сохраните использованный пароль, он вам еще потребуется при установке веб-интерфейса Zabbix.

Установите необходимые привилегии для базы данных:

 MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost; 

И, наконец, завершите работу утилиты mysql:

 MariaDB [(none)]> quit; 

Запуск веб-интерфейса

На следующем шаге нужно запустить веб-интерфейс Zabbix. 

Так как мы выбрали вариант установки с использованием Nginx, проверьте, не работает ли на виртуальной машине сервис Apache. Если работает, его нужно остановить, а затем отключить запуск при перезагрузке:

 # systemctl status apache2
# systemctl stop apache2
# systemctl disable apache2 

Дело в том, что Apache обычно занимает порт 80, который нужен нам для веб-интерфейса сервера Zabbix, работающего через более быстрый nginx.

Откройте редактором vim или nano файл /etc/zabbix/nginx.conf. Отредактируйте директивы listen и server_name, указав в первой из них порт 80, а во второй — доменное имя для веб-интерфейса сервера Zabbix (укажите здесь свой домен):

 server {
# listen 8080; listen 80; server_name zbx62.mydomain.ru; …
} 

После редактирования проверьте конфигурацию nginx, перезапустите этот сервис и проверьте его состояние:

 # nginx -t
# systemctl restart nginx
# systemctl status nginx 

Запустите процессы сервера и агента Zabbix и настройте их запуск при загрузке ОС. 

 # systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
# systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm 

Теперь откройте в браузере сайт по ссылке, подобной приведенной ниже:

 http://xxx.xxx.xxx.xxx:/setup.php 
Рис. 2. Первая страница установки в веб-интерфейсе
Рис. 2. Первая страница установки в веб-интерфейсе

Нажмите кнопку Next step
, чтобы проверить выполнение условий для установки (рис. 3). 

Рис. 3. Проверка выполнения условий для установки
Рис. 3. Проверка выполнения условий для установки

Если что-то не так, вы увидите сообщения о необходимости внесения изменений, например, в конфигурацию php.ini. Внесите эти изменения и запустите проверку еще раз.

Рис. 4. Конфигурирование соединения с базой данных
Рис. 4. Конфигурирование соединения с базой данных

На следующем шаге задайте имя сервера Zabbix в поле Zabbix server name
, укажите
свой
часовой пояс и выберите тему для оформления веб-интерфейса Zabbix (рис. 5).

Рис. 5. Установка имени сервера, часового пояса и темы оформления
Рис. 5. Установка имени сервера, часового пояса и темы оформления

Теперь осталось еще два раза нажать кнопку Next step
, подтвердив действия, и установка сервера Zabbix будет завершена.

Подключение к веб-интерфейсу

Если вы все сделали правильно, в браузере появится панель (дашборд) веб-интерфейса Zabbix  (рис. 6).

Рис. 6. Дашборд Zabbix
Рис. 6. Дашборд Zabbix

Установка клиентского ПО Zabbix

На каждый сервер (физический или виртуальный), который вы собираетесь контролировать при помощи Zabbix, нужно установить агент zabbix-agent и программу zabbix-sender. 

Агент позволяет контролировать различные параметры сервера. Программа zabbix-sender представляет собой утилиту командной строки для отправки значений контролируемых параметров на сервер Zabbix.

Существует две версии агента — zabbix-agent и zabbix-agent2. Обе эти версии рабочие и продолжают развиваться. 

Установим обе версии сразу.

Установка агента Zabbix и программы zabbix_sender на ОС Linux

Для начала обновите ОС на контролируемом хосте:

 # apt update
# apt upgrade 

Затем установите репозиторий Zabbix, как мы это делали для сервера:

 # wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
# dpkg -i zabbix-release_6.2-1+debian11_all.deb
# apt update 

Теперь выполните установку агента zabbix-agent и программы zabbix-sender:

 # apt install zabbix-agent zabbix-sender 

Проверьте версии установленных программ:

 # zabbix_agentd -V
# zabbix_sender -V 

Чтобы установить zabbix-agent2, используйте следующую команду:

 # apt install zabbix-agent2 

Теперь вы можете запустить zabbix-agent2, предварительно остановив zabbix-agent:

 # systemctl stop zabbix-agent
# systemctl start zabbix-agent2 

Если нужно вернуться к первой версии zabbix-agent, то это можно сделать так:

 # systemctl stop zabbix-agent2
# systemctl start zabbix-agent 

Когда вы определитесь с версией нужно вам агента Zabbix, сделайте так, чтобы при перезагрузке ОС этот агент запускался автоматически. Например, так вы можете разрешить автозапуск для zabbix-agent2, запретив его для zabbix-agent:

 # systemctl enable zabbix-agent2
# systemctl disable zabbix-agent 

Настройка конфигурации агента Zabbix

Чтобы сервер Zabbix «увидел» контролируемые хосты, на которых вы установили агента Zabbix, нужно правильным образом отредактировать файл конфигурации агента на каждом хосте.

Узнать состояние агента, а заодно и путь к файлу конфигурации можно так:

 # systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-07-15 10:57:21 MSK; 5s ago Process: 2857 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) Main PID: 2859 (zabbix_agentd) Tasks: 6 (limit: 4676) Memory: 3.9M CPU: 32ms CGroup: /system.slice/zabbix-agent.service ├─2859 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf ├─2860 /usr/sbin/zabbix_agentd: collector [idle 1 sec] ├─2861 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] ├─2862 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] ├─2863 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] └─2864 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] 

Как видите, для zabbix-agent конфигурация задается в файле /etc/zabbix/zabbix_agentd.conf
. Для zabbix-agent2 используется другой файл: /etc/zabbix/zabbix_agent2.conf
.

Если вы установили оба агента, отредактируйте эти файлы и перезапустите агенты. Вам нужно найти в файлах конфигурации агентов следующие строки:

 Server=127.0.0.1
Hostname=Zabbix server 

В первой из них укажите адрес IP своего сервера Zabbix, а во второй — имя контролируемого хоста. Когда у вас будет два или несколько серверов Zabbix, укажите здесь адреса IP всех таких серверов через запятую.

Для перезапуска агентов используйте команды:

 # systemctl restart zabbix-agent2
# systemctl restart zabbix-agent 

Оцените статью
Хостинги