Как установить и настроить Zabbix на CentOS 7

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

Zabbix можно развернуть для мониторинга на основе агентов и без них. Агент Zabbix занимает мало места и может работать на различных платформах, включая Linux, UNIX, macOS и Windows.

В этом руководстве объясняется, как установить и настроить последнюю версию Zabbix 4.0 на сервере CentOS 7 с использованием MariaDB в качестве серверной части базы данных. Мы также покажем вам, как установить агент Zabbix на удаленный хост и добавить этот хост на сервер Zabbix.

Подготовка

Вам нужно будет войти в систему как пользователь с доступом sudo, чтобы иметь возможность устанавливать пакеты.

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

Zabbix поддерживает MySQL / MariaDB и PostgreSQL в качестве серверов баз данных. В этом руководстве мы будем использовать MariaDB в качестве серверной части базы данных.

Если на вашем сервере CentOS не установлен MariaDB, вы можете установить его, следуя этим инструкциям .

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

sudo mysql

Изнутри оболочки MySQL выполните следующую команду SQL, чтобы создать новую базу данных :

CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;

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

GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Убедитесь, что вы сменили change-with-strong-password с надежным паролем.

После этого выйдите из консоли mysql, набрав:

EXIT;

Установка Zabbix на CentOS

На момент написания этой статьи последней стабильной версией Zabbix была версия 4.0. Пакеты Zabbix, доступные в репозиториях CentOS, устарели, поэтому мы будем использовать официальный репозиторий Zabbix .

1. Установка Zabbix

Загрузите последний rpm-пакет репозитория Zabbix с помощью следующей команды wget :

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

После загрузки файла добавьте репозиторий Zabbix в вашу систему CentOS 7, набрав:

sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

Установите сервер Zabbix, веб-интерфейс с поддержкой базы данных MySQL и пакеты агента Zabbix:

sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

Если Apache и PHP еще не установлены на вашем сервере, приведенная выше команда установит их.

2. Настройка PHP для веб-интерфейса Zabbix

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

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

/etc/httpd/conf.d/zabbix.conf
...
    <IfModule mod_php5.c>
        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 always_populate_raw_post_data -1
        php_value date.timezone Europe/Riga
    </IfModule>
...

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

sudo systemctl restart httpd

3. Настройка базы данных MySQL для Zabbix сервера

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

Импортируйте файл дампа MySQL, запустив:

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

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

Затем откройте файл конфигурации Zabbix в вашем редакторе:

sudo nano /etc/zabbix/zabbix_server.conf

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

/etc/zabbix/zabbix_server.conf
...
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
...

Сохраните и закройте файл.

Перезагрузите Zabbix сервер и службы агента и разрешите им запускаться при загрузке системы:

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

Проверьте статус Zabbix сервера:

sudo systemctl status zabbix-server

На выходе должно отображаться active (running) :

● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-12-30 21:18:01 UTC; 51s ago
 Main PID: 5558 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
   ...

Установка и настройка Zabbix Frontend

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

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

Откройте свой любимый браузер и введите доменное имя или общедоступный IP-адрес вашего сервера, а затем /zabbix :

http(s)://your_domain_or_ip_address/zabbix

На первом экране вы увидите приветственное сообщение. Щелкните Next step чтобы продолжить.

Затем вы увидите следующую информационную страницу, на которой перечислены все предварительные требования PHP, необходимые для запуска Zabbix Frontend. Все значения в этой таблице должны быть в OK Прокрутите вниз, чтобы убедиться, что все настроено правильно. После проверки нажмите « Next step чтобы продолжить.

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

Ввод имени сервера необязательно. Введите его, если у вас более одного сервера мониторинга Zabbix. Если предоставлено, оно будет отображаться в строке меню и заголовках страниц.

Щелкните Next step чтобы продолжить.

На следующем экране вам будет показана сводка до установки.

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

Пользователь по умолчанию — «Admin», а пароль — «zabbix». Введите имя пользователя и пароль и нажмите кнопку « Log in .

После входа в систему вы будете перенаправлены на панель администрирования Zabbix.

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

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

Процедура добавления нового хоста для мониторинга к Zabbix серверу состоит из двух шагов.

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

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

В этом руководстве предполагается, что хост-компьютер также использует CentOS 7.

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

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpmsudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

Установите пакет агента Zabbix:

sudo yum install zabbix-agent

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

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

openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk

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

fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6

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

sudo nano /etc/zabbix/zabbix_agentd.conf

Найдите IP-адрес Server и измените его значение по умолчанию на 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
...

Затем найдите параметр TSLConnect , раскомментируйте его и установите для него значение psk :

/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=psk
...

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

/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=psk
...

Затем найдите параметр TLSPSKIdentity , раскомментируйте его и установите для него значение PSK 001 Значение должно быть уникальной строкой:

/etc/zabbix/zabbix_agentd.conf
...
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...

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

/etc/zabbix/zabbix_agentd.conf
...
### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk 
...

После этого сохраните и закройте файл.

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

sudo systemctl start zabbix-agentsudo systemctl enable zabbix-agent

Затем вам нужно добавить правило брандмауэра, которое разрешает трафик с вашего сервера Zabbix на TCP-порт 10050 .

Предполагая, что вы используете FirewallD для управления своим брандмауэром и хотите разрешить доступ с IP-адреса 192.168.121.70 вы должны выполнить следующую команду:

sudo firewall-cmd --new-zone=zabbix --permanentsudo firewall-cmd --zone=special --add-source=192.168.121.70/32sudo firewall-cmd --zone=special --add-port=10050/tcp

Настроить новый хост

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

Войдите в веб-интерфейс Zabbix Server как пользователь с правами администратора:

http(s)://your_domain_or_ip_address/zabbix

Оказавшись внутри, на верхней панели навигации нажмите Configuration , а затем Hosts

Затем нажмите синюю кнопку Create host в правом верхнем углу экрана, и откроется страница конфигурации хоста:

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

После этого щелкните вкладку Templates . Выберите Template OS Linux и щелкните ссылку « Add чтобы добавить шаблон на хост.

Затем щелкните вкладку « Encryption ». Выберите PSK как для Connections to host и для Connections from host .

Установите для PSK identity значение PSK 001 , значение параметра TLSPSKIdentity агента Zabbix, которое вы настроили на предыдущем шаге.

В поле PSK value добавьте ключ, который вы сгенерировали для Zabbix агента, тот, который хранится в файле /etc/zabbix/zabbix_agentd.psk .

Наконец, чтобы добавить хост, нажмите синюю button Добавить».

Выводы

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

Теперь вам следует проверить документацию Zabbix и узнать больше о том, как настроить и использовать Zabbix.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Оставьте комментарий