• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
+380 (44) 364 05 71

Грамотно настроенный мониторинг серверов, является своеобразной козырной картой в рукаве администратора. В данной статье мы рассмотрим установку и первоначальную настройку мониторинга средствами Zabbix. Он позволяет осуществлять мониторинг состояния сервера в целом, состояние его отдельных приложений, сетевого коммутационного оборудования, а также аппаратной части. Ключевой особенностью является возможность его использования как начинающим администраторам, так и опытным пользователям, обслуживающим десятки, а то и сотни серверов. Для первых существует достаточное количество уже готовых решений, которые можно добавить через web-интерфейс, для вторых гибкость позволяет мониторить сервисы с помощью своих скриптов.

Идея создания статьи обусловлена анализом обращений клиентов. Хостинг предоставляет гарантированные ресурсы виртуального или физического сервера, но его бесперебойное функционирование на уровне операционной системы опирается на плечи его администратора.

Zabbiх не требователен к ресурсам, но он позволяет не только оперативно проинформировать о возникшей проблеме, но и предотвратить её. Что немаловажно для функционирования сервисов в режиме 24\7\364.

Технические требования следующие:

  • 1 ядро CPU / 1ГБ памяти — до 20 наблюдаемых узлов сети
  • 2 ядра CPU / 2ГБ памяти — до 500 наблюдаемых узлов сети
  • 4 ядра CPU / 8ГБ памяти — более 1000 наблюдаемых узлов сети
  • 8 ядер CPU / 16ГБ памяти — более 10000 наблюдаемых узлов сети

Zabbix протестирован на следующих платформах: Linux, IBM AIX, FreeBSD, NetBS, OpenBSD, HP-UX, Mac X, Solaris, Windows: все версии для настольных компьютеров и серверов начиная с XP (только Zabbix агент)

Внимание! Автор статьи подразумевает, что вы устанавливаете Zabbix на «чистый» сервер. Установка на сервер с уже настроенными сервисами категорически не рекомендуется. Будут затронуты зависимости, которые могут привести к неработоспособности работающих приложений.

Оглавление

  1. Установка сервера Zabbix
  2. Добавление учетной записи администратора
  3. Сброс пароля пользователя Zabbix для Web-интерфейса
  4. Изменение пароля пользователя для доступа к базе данных
  5. Установка zabbix-agent
  6. Настройка мониторинга

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

Подключаем репозиторий свежей версии Zabbix:

 

root@dedicated:~# wget
https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+
buster_all.deb

root@dedicated:~# dpkg -i zabbix-release_4.4-1+buster_all.deb

root@dedicated:~# apt update

 

Приступаем к установке:

 

root@dedicated:~# apt install zabbix-server-mysql

 

Проверим версию mariadb

 

root@dedicated:~# mariadb --version

mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

 

...и выполним конфигурацию базы данных

 

root@dedicated:~# mysql_secure_installation

 

На данном шаге вам будет предложено внести изменения в настройки безопасности вашей MySQL

# Вводим пароль пароль пользователя root

Enter current password for root (enter for none):

# Смена пароля суперпользователя root;

Change the root password? [Y/n] n

# Удаляем анонимного пользователя

Remove anonymous users? [Y/n] Y

# Запретим подключение к базе данных со сторонних серверов

Disallow root login remotely? [Y/n] Y

# Удалим тестовую базу данных

Remove test database and access to it? [Y/n] Y

 

# Активируем привелегии их перезагрузкой

Reload privilege tables now? [Y/n] Y

Подключимся к mysql:

 

root@dedicated:~# mysql -u root -p

Enter password:

 

...и продолжим конфигурацию. Первой командой мы создаем базу данных zabbixdb и настраиваем локали. Второй — назначаем полные привилегии пользователю zabbix на базу данных zabbixdb и назначаем пароль. Вместо StrongPassword придумайте свой сложный пароль, который будет иметь не менее 12 символов, состоять из латинских символов верхнего и нижнего регистров, а так же цифр. Затем

 

MariaDB [(none)]> CREATE DATABASE zabbixdb character set utf8 collate utf8_bin;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbixdb.* TO zabbix@localhost
IDENTIFIED by 'StrongPassword';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> QUIT;

 

На следующем этапе выполним импорт данных

 

root@dedicated:~# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u zabbix
-p zabbixdb

Enter password:

 

Вводим пароль, который мы придумали вместо StrongPassword, указанного в примере и ждем импорта. Процесс выполняется в фоновом режиме около минуты, успешным окончанием можно считать вновь пустую строку терминала для ввода команд root@dedicated:~#

Теперь приступим к настройке frontend. Реализовать это можно через нативный Apache, или Nginx. Принципиальной разницы нет, в нашем примере мы будем использовать Nginx+php-fpm.

 

root@dedicated:~# apt install zabbix-frontend-php zabbix-nginx-conf

root@dedicated:~# nginx -v

nginx version: nginx/1.16.1

root@dedicated:~# php -v

PHP 7.3.14-1~deb10u1 (cli) (built: Feb 16 2020 15:07:23) ( NTS )

 

Запустим Nginx и добавим его в автозагрузку:

 

root@dedicated:~# systemctl start nginx

root@dedicated:~# systemctl enable nginx

 

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

 

root@dedicated:~# cp /etc/nginx/conf.d/zabbix.conf /etc/nginx/conf.d/zabbix.conf.default

 

Затем приступим к его правке:

 

root@dedicated:~# cat /etc/nginx/conf.d/zabbix.conf

server {

listen 80;

server_name localhost;

root /usr/share/zabbix;


location / {

index index.php index.html index.htm;

}


location ~ \.php$ {

fastcgi_pass unix:/run/php/php7.3-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

fastcgi_param PHP_VALUE "

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300

date.timezone = Europe/Kiev

always_populate_raw_post_data = -1

";

fastcgi_buffers 8 256k;

fastcgi_buffer_size 128k;

fastcgi_intercept_errors on;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

}

}

 

Во избежания конфликта, переименуем ешё один дефолтный конфиг. Иначе вы получите ошибку «nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored.»

 

root@dedicated:~# mv default.conf default.conf.default

 

Финальная правка. При установке Zabbix, все каталоги создаются под пользователем www-data, и вы гарантированно в логах получите ошибку 502 Bad Gateway, а логи будут пестрить:

2020/03/26 18:10:19 [crit] 14569#14569: *12 connect() to unix:/var/run/php/zabbix.sock failed (13: Permission denied) while connecting to upstream, client: 109.108.**.**, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/zabbix.sock:", host: "178.20.**.**"

Правим в главном конфиге Nginx параметр user:

 

root@dedicated:~# mcedit /etc/nginx/nginx.conf

- user nginx

+ user www-data;

 

Проверим, правильно ли мы настроили Nginx

 

root@dedicated:/etc/nginx/conf.d# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

 

Ошибки отсутствуют. Перезапустим его:

 

root@dedicated:~# systemctl restart nginx

 

Установите на сервере так же zabbix-agent

 

root@dedicated:~# apt install zabbix-agent

root@dedicated:~# systemctl start zabbix-agent

root@dedicated:~# systemctl enable zabbix-agent

 

Для корректной работы, на сервере должны прослушиваться порты 10050 (zabbix-server) и 10051 (zabbix-agent). Проверьте это командой

 

root@dedicated:~# netstat -tulpn

 

проверка работы портов на сервере

Подключимся к серверу мониторинга Zabbix по web-интерфейсу.

https://your_ip_adress

Подключение к серверу мониторинга

Next step

Проверка статуса OK

Проверяем, чтобы везде был статус ОК. Если по какой-то причине это не так, возвращаемся и вносим правки, пока не будет достигнут желаемый результат. С большой долей вероятности, ошибки могут быть вызваны неправильными параметрами в /etc/nginx/conf.d/zabbix.conf. Данное руководство справедливо для свежей версии Zabbix 4.4 на Debian 10. Next step

Настройка подключения к базе данных

Вносим свои данные, host, имя пользователя и название базы данных, которые мы создавали ранее, а так же пароль StrongPassword. Next step

Детали подключения к серверу бд

Можете оставить параметры по умолчанию или указать свои. Next step. Следующим шагом будет вывод указанных ранее параметров. Подтвердите их нажатием «Next step», и вы получите уведомление:

«Congratulations! You have successfully installed Zabbix frontend.

Configuration file "/usr/share/zabbix/conf/zabbix.conf.php" created.»

 

Нажмите Finish и перед вами появится окно аутентификации. Стандартные данные для аутентификации следующие:

user: Admin

password: zabbix

Вход в админпанель

Общий вид админпанели Zabbix

Добавление учетной записи администратора

Первым делом, следует настроить своего пользователя с правами суперпользователя, а стандартного удалить. Для этого переходим во вкладку «Administration»- «Users» и в правом верхнем углу нажимаем «Create User». Укажите его login, добавьте в группу администраторов. Так же обязательно зайдите во вкладку Permissions и измените роль с «Zaabix User» на «Zabbix Super Admin». После чего удалите лишних пользователей

Добавление пользователя в административную панель Zabbix

Удаление пользователей из админпанели Zabbix

Настройте e-mail оповещения. Для начала настроим ОТ КОГО будет отправляться оповещения. Перейдите во вкладку «Administration»- «Media types» и выберите Email. Сюда следует внести SMTP настройки вашего почтового ящика. Так же следует обратить внимание, что для корректной доставки почты следует для домена прописать PTR, DMARC и SPF записи, иначе отправленные уведомления могут быть отклонены сервером получателя.

Настройка e-mail оповещений

Выполнив конфигурацию отправителя, перейдем к настройке получателя. Перейдите во вкладку «Administration»- «Users», выберите пользователя freehost и перейдите во вкладку «Media». Добавьте один или несколько адресов, на которые будут отправлены оповещения об инцидентах.

Настройка получателя уведомлений

Включите отправку оповещений в событиях. Перейдите в «Configiraton» «Fctions», выберите все собыстя («Any») и активируйте нажатием enable.

Включение отправки оповещений

Сброс пароля пользователя Zabbix для Web-интерфейса

В прошлом разделе мы рассмотрели, как создавать новых пользователей. Если вам требуется изменить забытый пароль, делается это следующим образом. Подключаемся к MySQL

 

root@dedicated:~# mysql -u root -p

Enter password

 

Отобразим список созданных БД

 

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| zabbixdb |

+--------------------+

4 rows in set (0.001 sec)

 

Подключаемся к нужной базе данных. В нашем случае это zabbixdb

 

MariaDB [(none)]> use zabbixdb;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [zabbixdb]>

 

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

 

MariaDB [zabbixdb]> select * from users;

+--------+----------+--------+---------------+-------------------

| userid | alias | name | surname | passwd

+--------+----------+--------+---------------+-------------------

| 1 | Admin | Zabbix | Administrator | 5fce1b3e34b520afef

| 2 | guest | | | d41d8cd98f00b204e9

+--------+----------+--------+---------------+-------------------

2 rows in set (0.000 sec)


MariaDB [zabbixdb]>

 

Назначаем новый пароль администратора

 

MariaDB [zabbixdb]> update users set passwd=md5('StrongPassword') where
alias='Admin';

Query OK, 1 row affected (0.019 sec)

Rows matched: 1 Changed: 1 Warnings: 0

 

Перезапускаем zabbix-server

 

root@dedicated:~# systemctl restart zabbix-server

 

Изменение пароля пользователя для доступа к базе данных

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

 

root@dedicated:~# mcedit /etc/zabbix/zabbix_server.conf

 

Найдите директиву DBPassword и задайте новый пароль:

 

- DBPassword=StrongPassword

+ DBPassword=NewStrongPassword

 

Измените настройки так же здесь:

 

root@dedicated:~# mcedit /etc/zabbix/web/zabbix.conf.php

 

директива:

 

$DB['PASSWORD'] = 'NewStrongPassword';

 

Подключаемся к MySQL

 

root@dedicated:~# mysql -u root -p

Enter password


MariaDB [mysql]> SET PASSWORD FOR 'zabbix'@'localhost' =
PASSWORD('NewStrongPassword');

 

Обратите внимание. В разделе «5. Сброс пароля пользователя Zabbix в MySQL» мы изменили пароль доступа по web-интерфейсу. Здесь мы меняем пароль доступа mysql-пользователя zabbix. Если Вы разворачиваете Zabbix из шаблона, который мы предоставляем для наших клиентов, это следует сделать обязательно.

Установка zabbix-agent

Прежде, чем мы перейдем к настройке оповещений, возьмем ещё один VPS и установим на него zabbix-agent

 

root@dedicated:~# apt install zabbix-agent

 

Отредактируем три параметра конфигурационного файла:

 

root@dedicated:~# mcedit /etc/zabbix/zabbix_agentd.conf

 

Server=178.20.**.** # IP сервера Zabbix

ServerActive=178.20.**.** # IP сервера Zabbix

Если сервер по доменному имени, добавьте так же:

Hostname=dmt-srv # отображаемое имя узда на сервере Zabbix

Перезагрузите агент и добавьте его в автозагрузку:

 

root@dedicated:~# systemctl restart zabbix-agent.service

root@dedicated:~# systemctl enable zabbix-agent

 

Настройка мониторинга

Добавим узел сети. Перейдите во вкладку «Configiraton» - «Hosts». В правом верхнем углу нажмите на «Create host» и заполните поля вкладок Host и Template

Добавления узла сети

Добавление узла сети в Zabbix

Готовых шаблонов (Template) великое множество. Ознакомитесь с ними, и выберите те, которые отвечают вашим требованиям. В качестве примера добавлено буквально пару шаблонов для демонстрации работы. Руководство будет не полным, если мы что-нибудь специально не поломаем, и не посмотрим результат. Давайте остановим наш VPS

Остановка VPS

...и запустим его:

Запуск VPS

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

Графики в Zabbix

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

https://www.zabbix.com/documentation/current/ru/manual

Заключение

Zabbix очень гибок. Это книга рецептов, и она у каждого своя. На каждом узле сети мы можем настроить мониторинг чего угодно. Будь то программный сервис или аппаратная часть сервера. Вы можете настроить уведомление о дисковом пространстве, которое заканчивается, или увеличении потребления потреблении оперативной памяти сервера в целом, или отдельных приложений. Осуществлять мониторинг аппаратных и программных raid-массивов, состояние дисков на наличие ошибок. Он довольно хорошо документирован и успешно используется в крупных компаниях, в том числе и у нас. Изучение Zabbix требует определенной доли усидчивости и понимания функционирования сервера, но даже его базовое понимание позволит предотвратить аварийные ситуации. Но главное, он не требователен к ресурсам. У нас вы можете заказать облачный VPS c предустановленной системой Zabbix, а наша служба технической поддержки поможет с его базовой настройкой.

Дата: 01.04.2020
Автор: Евгений
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
Спасибо, что выбираете FREEhost.UA