Как стать автором
Обновить
246.24
FirstVDS
Виртуальные серверы в ДЦ в Москве

Мониторинг SAAS-сервиса интернет-магазинов с помощью Zabbix. Часть 2

Время на прочтение10 мин
Количество просмотров3.8K

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

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

Приступаем к внедрению 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

Для получения инструкции по установке откройте страницу 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.

Установка репозитория 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;

Теперь создайте пользователя zabbix@localhost, указав пароль (нужно указать свой):

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

Здесь вместо xxx.xxx.xxx.xxx укажите IP-адрес виртуальной машины, на которую вы установили сервер Zabbix. В окне браузера появится первая страница установки (рис. 2).

Рис. 2. Первая страница установки в веб-интерфейсе
Рис. 2. Первая страница установки в веб-интерфейсе

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

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

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

Когда все условия выполнены, снова щелкните кнопку Next step. Укажите в поле Password пароль базы данных, который был задан ранее при создании пользователя zabbix@localhost (рис. 4).

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

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

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

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

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

Для подключения к веб-интерфейсу сервера Zabbix откройте в браузере страницу http://xxx.xxx.xxx.xxx/. Как и при установке, вместо xxx.xxx.xxx.xxx укажите IP-адрес виртуальной машины Zabbix.

На странице авторизации введите логин Admin и пароль zabbix.

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

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

Первым делом поменяйте пароль пользователя Admin. Для этого откройте слева меню Administration и выберите раздел Users. Там щелкните имя пользователя Admin и затем кнопку Change password

Установка клиентского ПО 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

Добавление контролируемого хоста на сервер 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).

Рис. 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. Для версии 6.2 она доступна на английском языке, а для версии 6.0 на русском языке.

Автор: Александр Фролов.


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

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

Теги:
Хабы:
+4
Комментарии5

Публикации

Информация

Сайт
firstvds.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия
Представитель
FirstJohn