Share:

Простая инструкция установки Zabbix (Ubuntu + PostgreSQL + Apache)

YPermitinвDevOps

2021-04-19

#DevOps

#Zabbix

#установка

#Ubuntu

#*.nix

#PostgreSQL

#Apache

#инструкция

Вперед к мониторингу

Ранее в трех небольших публикациях мы рассмотрели процесс установки и настройки Zabbix на CentOS, диагностировали его работу и даже обновились с версии 4.0 на 5.0:

С момента этих публикаций CentOS перестал поддерживаться компанией RedHat в привычном виде, поэтому теперь предпочитаю переориентироваться на Ubuntu. Есть даже сайт по теме прекращения поддержки CentOS.

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

Краткий план

Вот что мы будем делать:

  • Подготовка машины к установке и настройке Zabbix и необходимых компонентов
  • Готовим PostgreSQL для разворачивания базы данных
  • Устанавливаем Zabbix и делаем первоначальную настройку
  • Проверяем работу сервера Zabbix
  • Рассматриваем как настраивать агента Zabbix для Linux
  • Рассматриваем как настраивать агента Zabbix для Windows
  • Радуемся :)

Теперь у нас есть план и будем его придерживаться!

Настройка сервера

Первые 4 шага относятся к настройке сервера Zabbix. Поехали!

Шаг №1. Подготовка к установке

Сразу оговоримся, что мы будем выполнять настройку только того, что явно относится к развертыванию Zabbix. Конфигурирование параметров ОС, сети и др. мы здесь рассматривать не будем. Например, если Вам нужно выполнить настройку SELinux, то лучше обратиться к официальной документации по установке. Также не забываем открыть нужные порты в брандмауэре. Эти две темы мы касались также и в предыдущих статьях, но в контексте CentOS.

И так, консоль открыта и пора ввести первую команду - обновление индекса пакетов, чтобы были доступны все самые последние версии ПО из репозиториев.

sudo apt update

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

sudo apt upgrade

В некоторых случаях может понадобиться перезагрузка машины.

На этом подготовительные действия закончены.

Шаг №2. Готовим базу данных

Установим PostgreSQL для развертывания базы данных Zabbix. Для установки обратимся к официальной документации. В итоге для установки нам потребуется сделать следующие шаги:

# Создаем файл настроек репозитория
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Импортируем ключ репозтория
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Обновляем индекс пакетов
sudo apt-get update
# Устанавливаем последнюю версию PostgreSQL (на момент написания статьи это была 13 версия)
sudo apt-get -y install postgresql

После установки проверим состояние запуска демона PostgreSQL.

sudo systemctl status postgresql
/* Пример вывода:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabl>
Active: active (exited) since Sun 2021-04-18 17:54:29 UTC; 2min 30s ago
Main PID: 3759 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4921)
Memory: 0B
CGroup: /system.slice/postgresql.service
Apr 18 17:54:29 yy-blog-zbx systemd[1]: Starting PostgreSQL RDBMS...
Apr 18 17:54:29 yy-blog-zbx systemd[1]: Finished PostgreSQL RDBMS.
*/

Видим, что демон активен, все отлично. Далее настраиваем доступ к базе “zabbix” пользователю “zabbix” по паролю. Да, базы “zabbix” еще нет (и пользователя тоже), так что эта настройка на будущее. Открываем в текстовом редакторе файл “/etc/postgresql/13/main/pg_hba.conf” и добавляем вот эту строку (важно добавить в этом месте, чтобы настройки были применены с соответствующим приоритетом). После внесения изменений перезапускаем PostgreSQL.

sudo systemctl restart postgresql

Идем дальше.

Шаг №3. А вот и Zabbix

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

# Устанавливаем репозиторий Zabbix
sudo wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb
sudo apt update
# Установливаем из пакетов Zabbix сервер, веб-интерфейс и агент
sudo apt install zabbix-server-pgsql zabbix-frontend-php php7.4-pgsql zabbix-apache-conf zabbix-agent
# Создаем пользователя "zabbix" и базы данных "zabbix"
# Как-раз для них мы выполняли настройки выше в PostgreSQL
# Для пользователя нужно будет ввести пароль.
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
# Импортируем начальную схему и данные для базы "zabbix"
sudo zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

Теперь идем своим любимым текстовым редакторов в файл “/etc/zabbix/zabbix_server.conf” и устанавливаем пароль для подключения к базе данных.

# Например, у нас будет такой сложный пароль.
DBPassword=123456

Все готово для первого запуска Zabbix-сервера и Zabbix-агента (который мониторит машину с Zabbix-сервером. Мониторинг для мониторинга :)).

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

Все основные компоненты настроены и запущены. Теперь настал момент настроить сам Zabbix

Шаг №4. На старт, настраиваем, запускаем

Прежде чем продолжить нужно еще выполнить одно действие в консоли - добавить необходимые локали для использования русского интерфейса.

sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
# Нажимаем ОК и ждем завершения команды
sudo dpkg-reconfigure locales
# Перезапускаем Apache для применения изменений
sudo service apache2 restart

Теперь идем по адресу, где расположен Zabbix-сервер. В нашем случае это “http://192.168.1.181/zabbix”. У вас это, скорее всего, другой адрес или даже удобочитаемое имя.

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

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

Далее убеждаемся, что все требования для работы Zabbix удовлетворены.

Предварительная проверка требований

После этого оказываемся на этапе настройки подключения к БД. Вводим пароль и идем к следующему шагу (пароль ранее уже вводили в файле конфигурации), а также отключаем TLS шифрование, если оно не нужно.

Настройка подключения к БД

На этапе настройки деталей сервера оставляем как есть узел и порт.

Детали сервера

На следующем шаге настройки внешнего вида выбираем часовой пояс (в примере оставил UTC) и тему оформления (предпочитаю темную).

Настройка внешнего вида

Почти все готово. Смотрим на предварительный обзор настроек. Если все хорошо, но жмем “Далее”.

Предварительный обзор настроек

Предварительная настройка готова! Видим поздравления.

Успех!

Нас переадресуют на страницу входа, где используем стандартные логин и пароль: Admin и zabbix, соответственно. После входа увидим страницу с общими данными мониторинга.

Zabbix работает!

Теперь общую информацию по настройке агентов Zabbix

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

Теперь коснемся настройки агентов сбора данных Zabbix на машинах под управлением Windows и Linux. Для подробной информации есть официальная документация.

Шаг №5. Агент в Linux

Выше мы уже установили агент Zabbix на машине Linux. Именно этот агент мониторит работу хоста, где сам Zabbix-сервер и установлен. Было это сделано следующей командой:

# Вот эту команды мы уже выполняли ранее
sudo apt install zabbix-agent

После установки обычно необходимо исправить файл “/etc/zabbix/zabbix_agentd.conf”, где откорректировать параметры: * Hostname (имя хоста, какое было задано в самом Zabbix для этого узла) * Server (адрес или имя Zabbix-сервера, куда будут отправляться данные пассивных проверок) * ServerActive (адрес или имя Zabbix-сервера, куда будут отправляться данные активных проверок)

В нашем конкретном случае первый параметр автоматически был устаовлен в “Zabbix server”, а адреса сервера для активных и пассивных проверок в 127.0.0.1, т.к. агент и сервер находятся на одной машине.

В веб-интерфейсе Zabbix настройки для данного хоста выглядят следующим образом.

Zabbix работает!

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

Шаг №6. Агент в Windows

В прошлой статье Немного о мониторинге и простой установке Zabbix мы уже рассмотрели процесс установки и настройки агента Zabbix под Windows. Тут лишь напомню основные шаги:

  • Скачиваем дистрибутив агента для Windows.
  • Распаковываем его в каталог. Например, в “C:\Program Files\Zabbix Agent”. В каталоге видим различные файлы, из которых:
    • zabbix_agentd.exe - приложение агента.
    • zabbix_agentd.conf - файл конфигурации агента.
  • В файле конфигурации изменяем адреса серверов и имя хоста (уже касались этого выше).
  • Открываем порты для агента (как для активных, так и для пассивных проверок)
    # Открываем порты со стороны агента Zabbix для Windows
    netsh advfirewall firewall add rule name="Open Zabbix agentd port 10050 inbound" dir=in action=allow protocol=TCP localport=10050
    netsh advfirewall firewall add rule name="Open Zabbix agentd port 10050 outbound" dir=out action=allow protocol=TCP localport=10050
  • Устанавливаем агента как службу Windows
    # Устанавливаем агента как службу и запускаем
    zabbix_agentd.exe --config zabbix_agentd.conf --install
    zabbix_agentd.exe --start
    # Проверяем состояние службы
    Get-Service *zabbix*
    # Пример вывода
    #Status Name DisplayName
    #------ ---- -----------
    #Running Zabbix Agent Zabbix Agent

Не забываем в веб-интерфейсе Zabbix добавить новый узел с именем и адресом как в установленном агенте.

Мы готовы идти дальше

Вот такой небольшой мануал получился. В следующих статьях мы коснемся уже более интересных тем:

  • Первоначальная настройка групп узлов и прав доступа
  • Оптимизация настроек Zabbix-сервера
  • Создание своего шаблона сбора метрик
  • Настройка уведомлений о событиях в Telegram-канал
  • Получение данных с Prometheus
  • Визуализация данных в Grafana
  • Настройка очистки истории

А сейчас всем пока и удачи в делах!

Y

YPermitin

.NET, TSQL, DevOps, 1C:Enterprise

Developer, just developer.

Поделиться

Другие статьи

Развертывание ASP.NET Core приложений на Ubuntu Linux
Развертывание ASP.NET Core приложений на Ubuntu Linux
Настройка обслуживания PostgreSQL. Основное и простое
Настройка обслуживания PostgreSQL. Основное и простое
Счетчики производительности Windows + PowerShell
Счетчики производительности Windows + PowerShell

Все статьи от автора: YPermitin

Copyright © 2024 Убежище инженера