Установка и настройка Zabbix для безопасного мониторинга удаленных серверов в Ubuntu 20.04

Автор выбрал Computer History Museum для получения пожертвования в рамках программы Write for DOnations.

Введение

Zabbix — это программное обеспечение с открытым исходным кодом для мониторинга сетей и приложений. С его помощью можно выполнять мониторинг в режиме реального времени нескольких тысяч метрических показателей, собранных с серверов, виртуальных машин, сетевых устройств и веб-приложений. Эти параметры могут помочь вам определить текущее состояние инфраструктуры ИТ и выявить проблемы, связанные с компонентами аппаратного или программного обеспечения, до того, как на них пожалуется клиент. Полезная информация хранится в базе данных для возможности анализировать данные с течением времени и повышать качество предоставляемых услуг или планировать модернизацию оборудования.

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

Сервер Zabbix хранит свои данные в реляционной базе данных, работающей на базе MySQL или PostgreSQL. Также вы можете хранить исторические данные в таких базах данных, как Elasticsearch и TimescaleDB. Zabbix предоставляет веб-интерфейс для возможности просмотра данных и настройки системы.

В этом обучающем модуле мы настроим Zabbix на двух компьютерах Ubuntu 20.04. Один из них будет настроен в качестве сервера Zabbix, а второй — в качестве клиента, который будет отслеживаться. Сервер Zabbix будет использовать базу данных MySQL для записи данных мониторинга и использовать Nginx для обслуживания веб-интерфейса.

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Два сервера Ubuntu 20.04, настроенных в соответствии с указаниями обучающего модуля Начальная настройка сервера для Ubuntu 20.04, включая пользователя без привилегий root с привилегиями sudo и настроенный брандмауэр ufw. На одном сервере вы установите Zabbix. В этом обучающем модуле он будет называться сервер Zabbix. Он будет отслеживать ваш второй сервер, этот второй сервер будет называться второй сервер Ubuntu.

  • Для сервера, на базе которого будет работать сервер Zabbix, требуется установка Nginx, MySQL и PHP. Следуйте шагам 1–3 нашего обучающего руководства по набору LEMP Ubuntu 20.04 для их настройки на вашем сервере Zabbix.

  • Зарегистрированное доменное имя. В этом обучающем руководстве мы будем использовать your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.

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

    • Запись A, где your_domain указывает на публичный IP-адрес вашего сервера Zabbix.
    • Запись A, где www.your_domain указывает на публичный IP-адрес вашего сервера Zabbix.

Кроме того, поскольку сервер Zabbix используется для доступа к ценной информации о вашей инфраструктуре, которую вам нужно защищать от несанкционированного доступа, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется. Если вы хотите защитить ваш сервер, следуйте указаниям руководства Let’s Encrypt в Ubuntu 20.04 после шага 3 этого обучающего модуля.

Шаг 1 — Установка сервера Zabbix

Во-первых, нужно установить Zabbix на сервере, на котором вы установили MySQL, Nginx и PHP. Выполните вход на эту машину в качестве пользователя без прав root:

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

  • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
  • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Результат будет выглядеть следующим образом:

OutputSelecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ... 

Обновите индекс пакета, чтобы новый репозиторий включал:

  • sudo apt update

Затем установите сервер Zabbix и пользовательский веб-интерфейс с поддержкой базы данных MySQL:

  • sudo apt install zabbix-server-mysql zabbix-frontend-php

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

  • sudo apt install zabbix-agent

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

Шаг 2 — Настройка базы данных MySQL для Zabbix

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

Войдите в MySQL в качестве пользователя root:

  • sudo mysql

Создайте базу данных Zabbix с поддержкой символов UTF-8:

  • create database zabbix character set utf8 collate utf8_bin;

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

Он защитит пользователя и базу данных. Выйдите из консоли базы данных.

  • quit;

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

Запустите следующую команду для настройки схемы и импорта данных в базу данных zabbix. Используйте zcat, так как данные в файле сжаты:

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

Введите пароль пользователя MySQL zabbix, который вы настроил при получении соответствующей инструкции.

Выполнение этой команды может занять одну или две минуты. Если вы видите ошибку ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES), убедитесь, что используете правильный пароль для пользователя zabbix.

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

  • sudo nano /etc/zabbix/zabbix_server.conf

Найдите следующую часть файла:

/etc/zabbix/zabbix_server.conf

... ### Option: DBPassword                            #       Database password. Ignored for SQLite.    #       Comment this line if no password is used. #                                                 # Mandatory: no                                   # Default:                                        # DBPassword= ... 

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

/etc/zabbix/zabbix_server.conf

... DBPassword=your_zabbix_mysql_password ... 

Сохраните и закройте zabbix_server.conf​​​, нажав CTRL+X, а затем Y и ENTER, если вы используете nano.

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

Шаг 3 — Настройка Nginx для Zabbix

Для автоматической настройки Nginx установите пакет автоматической настройки:

  • sudo apt install zabbix-nginx-conf

В результате вы получите файл конфигурации /etc/zabbix/nginx.conf, а также ссылку на него в каталоге конфигурации Nginx /etc/zabbix/nginx.conf.

Затем вам нужно внести изменения в этот файл. Откройте файл конфигурации:

  • sudo nano /etc/zabbix/nginx.conf

Файл содержит автоматически сгенерированную конфигурацию серверного блока Nginx. Он содержит две строки, определяющие имя сервера и порт, который он прослушивает:

/etc/zabbix/nginx.conf

server { #        listen          80; #        server_name     example.com; ... 

Раскомментируйте две строки и замените example.com на свое доменное имя. Ваши настройки будут выглядеть следующим образом:

/etc/zabbix/nginx.conf

server {         listen          80;         server_name     your_domain; ... 

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

  • sudo nginx -t
  • sudo nginx -s reload

Теперь, после настройки Nginx для обслуживания пользовательского интерфейса Zabbix, вы внесете некоторые изменения в настройку PHP, чтобы обеспечить правильность работы пользовательского интерфейса

Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Если вы хотите сделать это, перед тем как перейти к шагу 4, выполните действия нашего обучающего модуля о Let’s Encrypt в Ubuntu 20.04 для получения бесплатного сертификата SSL для Nginx. Этот процесс автоматически обнаружит ваш серверный блок Zabbix и выполнит настройку для HTTPS. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.

Шаг 4 — Настройка PHP для Zabbix

Веб-интерфейс Zabbix написан на языке PHP, и для него требуется ряд специальных настроек сервера PHP. В ходе установки Zabbix был создан файл конфигурации PHP-FPM, который содержит эти настройки. Он расположен в каталоге /etc/zabbix и загружается автоматически PHP-FPM. Вам нужно внести небольшое изменение в этот файл, поэтому откройте его следующим образом:

  • sudo nano /etc/zabbix/php-fpm.conf

Файл содержит параметры PHP, соответствующие необходимым требованиям для веб-интерфейса Zabbix. Однако настройка часового пояса комментируется по умолчанию. Чтобы Zabbix использовал правильное время, необходимо установить соответствующий часовой пояс:

/etc/zabbix/php-fpm.conf

... php_value[max_execution_time] = 300 php_value[memory_limit] = 128M php_value[post_max_size] = 16M php_value[upload_max_filesize] = 2M php_value[max_input_time] = 300 php_value[max_input_vars] = 10000 ; php_value[date.timezone] = Europe/Riga 

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

Теперь перезапустите PHP-FPM для применения этих новых настроек:

  • sudo systemctl restart php7.4-fpm.service

Теперь вы можете запустить сервер Zabbix:

  • sudo systemctl start zabbix-server

Затем проверьте правильность работы сервера Zabbix:

  • sudo systemctl status zabbix-server

Вы увидите следующий статус:

Output● zabbix-server.service - Zabbix Server      Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)      Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago     Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)   ... 

Наконец, включите запуск сервера в момент загрузки:

  • sudo systemctl enable zabbix-server

Сервер настроен и подключен к базе данных. Затем настройте веб-интерфейс.

Шаг — Конфигурация настроек для веб-интерфейса Zabbix

Веб-интерфейс позволяет видеть отчеты и добавлять хосты, которые вы хотите отслеживать, но для этого требуется определенная начальная настройка. Запустите браузер и перейдите по адресу http://zabbix_server_name или https://zabbix_server_name, если вы установили Let’s Encrypt. На первом экране вы увидите приветственное сообщение. Нажмите Next step (Далее), чтобы продолжить.

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

Предварительные требования

Рядом со всеми значениями в этой таблице должно стоять ОК, проверьте это. Обязательно прокрутите вниз и просмотрите все предварительные требования. Убедившись, что все готово, нажмите Next step (Далее), чтобы продолжить.

Следующий экран запросит данные для подключения базы данных.

Подключение базы занных

Вы сообщили серверу Zabbix о вашей базе данных, но веб-интерфейсу Zabbix также необходим доступ к базе данных для управления хостами и считывания данных. Поэтому введите учетные данные MySQL, настроенные в шаге 2. Нажмите Next step (Далее), чтобы продолжить.

На следующем экране вы можете оставить опции по умолчанию.

Данные сервера Zabbix

Name (Имя) необязательно; оно используется в веб-интерфейсе, чтобы различать серверы, если у вас несколько отслеживающих серверов. Нажмите Next step (Далее), чтобы продолжить.

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

Summary

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

Теперь установка веб-интерфейса завершена. В ходе этого процесса создается файл конфигурации /usr/share/zabbix/conf/zabbix.conf.php. Можно сделать его резервную копию и использовать в будущем. Нажмите Finish (Готово), чтобы перейти на экран входа. По умолчанию устанавливается пользователь Admin и пароль zabbix.

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

Шаг 6 — Установка и настройка агента Zabbix

Теперь вам нужно настроить ПО агента, которое будет отправлять данные мониторинга на сервер

Войдите на второй сервер Ubuntu:

Как и на сервере Zabbix, запустите следующие команды для установки пакета конфигурации репозитория:

  • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
  • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Затем обновите индекс пакета:

  • sudo apt update

Затем установите агент Zabbix:

  • sudo apt install zabbix-agent

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

Сначала, сгенерируйте PSK:

  • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

Отобразите ключ с помощью cat​​​, чтобы скопировать его:

  • cat /etc/zabbix/zabbix_agentd.psk

Ключ будет выглядеть примерно так:

Output75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca 

Сохраните его для дальнейшего использования. Он потребуется для конфигурации хоста.

Теперь отредактируйте настройки агента Zabbix для установки безопасного подключения к серверу Zabbix. Откройте в файл конфигурации агента в своем текстовом редакторе:

  • sudo nano /etc/zabbix/zabbix_agentd.conf

Каждая настройка в этом файле документируется с помощью информационных комментариев по всему файлу, но вам нужно отредактировать только некоторые из них.

Сначала нужно отредактировать IP-адрес сервера Zabbix. Найдите следующий раздел:

/etc/zabbix/zabbix_agentd.conf

... ### Option: Server #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. #       Incoming connections will be accepted only from the hosts listed here. #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally #       and '::/0' will allow any IPv4 or IPv6 address. #       '0.0.0.0/0' can be used to allow any IPv4 address. #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server=  Server=127.0.0.1 ... 

Измените значение по умолчанию на IP-адрес вашего сервера Zabbix:

/etc/zabbix/zabbix_agentd.conf

... Server=zabbix_server_ip_address ... 

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

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

/etc/zabbix/zabbix_agentd.conf

... ##### Active checks related  ### Option: ServerActive #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks. #       If port is not specified, default port is used. #       IPv6 addresses must be enclosed in square brackets if port for that host is specified. #       If port is not specified, square brackets for IPv6 addresses are optional. #       If this parameter is not specified, active checks are disabled. #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1] # # Mandatory: no # Default: # ServerActive=  ServerActive=zabbix_server_ip_address  ### Option: Hostname #       Unique, case sensitive hostname. #       Required for active checks and must match hostname as configured on the server. #       Value is acquired from HostnameItem if undefined. # # Mandatory: no # Default: # Hostname=  Hostname=Second Ubuntu Server ... 

Затем найдите раздел, который настраивает надежное подключение к серверу Zabbix и активирует поддержку предварительно предоставленный ключ Найдите раздел TLSConnect, который выглядит следующим образом:

/etc/zabbix/zabbix_agentd.conf

... ### Option: TLSConnect #       How the agent should connect to server or proxy. Used for active checks. #       Only one value can be specified: #               unencrypted - connect without encryption #               psk         - connect using TLS and a pre-shared key #               cert        - connect using TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSConnect=unencrypted ... 

Затем добавьте эту строку для конфигурации поддержки предварительно предоставленного ключа:

/etc/zabbix/zabbix_agentd.conf

... TLSConnect=psk ... 

Затем найдите раздел TLSAccept, который выглядит следующим образом:

/etc/zabbix/zabbix_agentd.conf

... ### Option: TLSAccept #       What incoming connections to accept. #       Multiple values can be specified, separated by comma: #               unencrypted - accept connections without encryption #               psk         - accept connections secured with TLS and a pre-shared key #               cert        - accept connections secured with TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSAccept=unencrypted ... 

Настройте входящие соединения для поддержки предварительно предоставленных ключей, добавив эту строку:

/etc/zabbix/zabbix_agentd.conf

... TLSAccept=psk ... 

Затем найдите раздел TLSPSKIdentity, который выглядит следующим образом:

/etc/zabbix/zabbix_agentd.conf

... ### Option: TLSPSKIdentity #       Unique, case sensitive string used to identify the pre-shared key. # # Mandatory: no # Default: # TLSPSKIdentity= ... 

Выберите уникальное имя для идентификации вашего предварительно предоставленного ключа, добавив эту строку:

/etc/zabbix/zabbix_agentd.conf

... TLSPSKIdentity=PSK 001 ... 

Вы будете использовать его в качестве идентификатора PSK при добавлении хоста через веб-интерфейс Zabbix.

Затем установите опцию, которая указывает на ранее созданный предварительно предоставленный ключ. Найдите опцию TLSPSKfile:

/etc/zabbix/zabbix_agentd.conf

... ### Option: TLSPSKFile #       Full pathname of a file containing the pre-shared key. # # Mandatory: no # Default: # TLSPSKFile= ... 

Добавьте эту строку, чтобы направить агент Zabbix в созданный вами файл PSK:

/etc/zabbix/zabbix_agentd.conf

... TLSPSKFile=/etc/zabbix/zabbix_agentd.psk ... 

Сохраните и закройте файл. Теперь вы можете перезапустить агент Zabbix и установить его запуск в момент загрузки:

  • sudo systemctl restart zabbix-agent
  • sudo systemctl enable zabbix-agent

В дополнение к этому проверьте правильность работы агента Zabbix:

  • sudo systemctl status zabbix-agent

Вы увидите следующий статус, указывающий на то, что агент работает:

Output● zabbix-agent.service - Zabbix Agent    Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)    Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago   ... 

Агент будет прослушивать порт 10050 для подключений с сервера. Настройте UFW для разрешения подключений к этому порту:

  • sudo ufw allow 10050/tcp

Дополнительную информацию о UFW можно получить в статье Настройка брандмауэра с UFW в Ubuntu 20.04.

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

Шаг 7 — Добавление нового хоста на сервер Zabbix

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

Войдите в веб-интерфейс сервера Zabbix, перейдя по адресу http://zabbix_server_name​​​ или https://zabbix_server_name:

Экран входа в Zabbix

После того, как вы выполните вход, нажмите Configuration (Настройка), затем Hosts (Хосты) на левой панели управления. Затем нажмите кнопку Create host​​​​​​ (Создать хост) в верхнем правом углу экрана. Откроется страница настройки хоста.

Создание хоста

Настройте Имя хоста и IP-адрес, чтобы они отображали имя хоста и IP-адрес вашего второго сервера Ubuntu, а затем добавьте хост в группу. Вы можете выбрать существующую группу, например серверы Linux, или создать собственную группу. Хост может быть в нескольких группах. Для этого введите имя существующей или новой группы в поле Groups (Группы) и выберите желаемое значение из предлагаемого списка.

Перед тем как добавить группу, нажмите на вкладку Templates​​​.

Добавление шаблона в хост

Введите Template OS Linux by Zabbix agent​​​ в поле Search​​​ (Поиск) и затем выберите его из списка, чтобы добавить этот шаблон в хост.

Затем перейдите на вкладку Encryption (Шифрование). Выберите PSK для Connections to host (Входящие соединения на хост) и Connections from host​​​ (Исходящие соединения от хоста). Затем установите в PSK identity​​​ (Идентификация PSK) настройку PSK 001, которая является значением настройки TLSPSKIdentity агента Zabbix, настроенного ранее. Затем установите значение PSK для ключа, который вы сгенерировали для агента Zabbix. Он хранится в файле /etc/zabbix/zabbix_agentd.psk на компьютере агента.

Настройка шифрования

Наконец, нажмите кнопку Add​​​ (Добавить) внизу формы для создания хоста.

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

Zabbix

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

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

Шаг 8 — Настройка уведомлений по электронной почте

Zabbix автоматически поддерживает несколько типов уведомлений: по электронной почте, в OTRS, Slack, Telegram​​​, СМС и т. д. Весь список совместимости можно увидеть на веб-сайте Zabbix.

В качестве примера в этом обучающем модуле мы настроим уведомления по электронной почте.

Нажмите Administration (Управление), а затем Media types (Типы связи) на левой панели навигации. Вы увидите список всех типов связи. Для электронной почты предусмотрено две предварительно настроенные опции: обычное текстовое уведомление и уведомления HTML. В этом обучающем модуле будет использоваться простое текстовое уведомление. Нажмите на Email​​​ (электронная почта).

Настройте опции SMTP в соответствии с настройками, предоставленными вашей почтовой службой. В этом обучающем модуле используются возможности SMTP почтовой службы Gmail. При необходимости дополнительной информации об этой настройке см. Использование сервера SMTP Google.

Примечание. Если вы используете двухэтапную аутентификацию для Gmail, необходимо сгенерировать пароль приложения для Zabbix. Пароль приложения вводится только один раз во время установки. Инструкции по генерированию этого пароля можно получить в Справочном центре Google.

Если вы используете Gmail, введите smtp.gmail.com в поле SMTP server​​​ (Сервер SMTP), 465​​​​​​ в поле SMTP server port​​​ (Порт сервера SMTP), gmail.com в SMTP helo и ваш адрес электронной почты в SMTP email​​​ (Электронная почта SMTP). Затем выберите SSL/TLS для Connection security (Безопасность подключения) и Имя пользователя и пароль для Authentication​​​ (Аутентификация). Введите адрес Gmail в качестве Username (Имя пользователя) и пароль приложения, сгенерированный в учетной записи Google, в качестве Password (Пароль).

Настройка электронной почты в качестве средства связи

На вкладке Message templates (Шаблоны сообщений) вы увидите список стандартных сообщений для различных типов уведомлений. Наконец, нажмите кнопку Update​​​ (Обновить) внизу формы для обновления параметров электронной почты.

Теперь вы можете протестировать отправку уведомлений. Для этого нажмите на подчеркнутую ссылку Test​​ (Тестирование) в соответствующей строке.

Вы увидите всплывающее окно. Введите свой адрес электронной в поле Send to (Отправить) и нажмите кнопку Test Тестирование. Вы увидите сообщение об успешной отправке и получите тестовое сообщение.

Тестирование электронной почты

Закройте всплывающее окно, нажав кнопку Cancel (Отмена).

Теперь создайте нового пользователя. Нажмите Administration (Управление), а затем Users (Пользователи) на левой панели навигации. Вы увидите список пользователей. Затем нажмите кнопку Create user (Создать пользователя) в верхнем правом углу экрана. Откроется страница настройки пользователя:

Создание

Введите новое имя пользователя в поле Alias (Псевдоним) и установите новый пароль. Затем добавьте пользователя в группу администратора. Введите Zabbix administrators в поле Groups (Группы) и выберите его из предложенного списка.

После добавления группы нажмите на вкладку Media (Средство связи) и нажмите на подчеркнутую ссылку Add (не на кнопку Add (Добавить) под ней). Вы увидите всплывающее окно.

Добавление электронной почты

Выберите опцию Email (Электронная почта) из выпадающего списка поля Type (тип). Введите свой адрес электронной почты в поле Send to (Отправить). В остальных опциях можно оставить значения по умолчанию. Нажмите кнопку Add (Добавить) внизу для отправки.

Теперь перейдите на вкладку Permissions (Разрешения). Выберите Zabbix Super Admin (Суперадминистратор Zabbix) из выпадающего меню поля User type (Тип пользователя).

Наконец, нажмите кнопку Add​​​ (Добавить) внизу формы для создания пользователя.

Примечание. Использование пароля по умолчанию небезопасно. Чтобы изменить пароль встроенного пользователя Admin (Администратор), нажмите на псевдоним в списке пользователей. Затем нажмите Change password (Изменить пароль), введите новый пароль и подтвердите изменения, нажав на кнопку Update (Обновить).

Теперь необходимо включить уведомления. Нажмите на вкладку Configuration (Настройка), а затем Actions (Действия) на левой панели навигации. Вы увидите предварительно настроенное действие, отвечающее за отправку уведомлений всем администраторам Zabbix. Вы можете проверять и менять настройки, нажимая на названия. Для целей данного обучающего модуля используйте параметры по умолчанию. Чтобы активировать действие, нажмите на красную ссылку Disabled​​​ (Отключено) в столбце Status (Статус).

Теперь вы готовы получать оповещения. В следующем шаге вы сгенерируете одно для тестирования настройки уведомлений.

Шаг 9 — Создание тестового оповещения

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

Создайте временный файл, чтобы он был достаточно большим, чтобы сработало оповещение об использовании файловой системы Для этого войдите на второй сервер Ubuntu, если вы еще не подключены:

Затем определите, сколько есть свободного места на сервере. Чтобы выяснить это, можно использовать команду df​​​:

  • df -h

Команда df будет сообщать об использовании места на диске в вашей файловой системе, а -h сделает читаемый вывод. Результат будет выглядеть примерно следующим образом:

OutputFilesystem      Size  Used Avail Use% Mounted on /dev/vda1        78G  1.4G   77G    2% / 

В этом случае свободное пространство составляет 77G. Ваше свободное пространство может отличаться.

Используйте команду fallocate, которая позволяет предварительно распределять или освобождать пространство для файла или создавать файл, который занимает более 80 % имеющегося пространства на диске. Этого будет достаточно, чтобы сработало оповещение:

  • fallocate -l 70G /tmp/temp.img

Приблизительно через час Zabbix активирует оповещение об объеме свободного пространства на диске и запустит действие, которое вы настроили, чтобы отправить сообщение с уведомлением. Вы можете проверить входящие на наличие сообщения с сервера Zabbix. Сообщение может выглядеть следующим образом:

Problem started at 09:49:08 on 2020.06.12 Problem name: /: Disk space is low (used > 80%) Host: Second Ubuntu Server Severity: Warning Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %) Original problem ID: 106 

Также вы можете перейти на вкладку Monitoring (Мониторинг), а затем на Dashboard​​​ (Панель управления), чтобы увидеть уведомление и детали.

Главная панель управления

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

  • rm -f /tmp/temp.img

Через одну минуту Zabbix отправит сообщение и оповещение исчезнет с главной панели управления.

Заключение

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

Дополнительную информацию о настройке инфраструктуры мониторинга можно найти на нашей тематической странице, посвященной мониторингу.