Categories: Шпаргалки

Установка и начальная настройка сервера мониторинга Zabbix на CentOS 7

Тематические термины: Zabbix , MariaDB , MySQL , PHP , NGINX .

Сервер Zabbix является средством сбора и анализа информации о состоянии оборудования в сети. В данной статье мы рассмотрим процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL.

Подготовка сервера

Перед установкой Zabbix выполняем подготовительные процедуры.

1. Правильное время

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

Для этого сначала задаем правильную временную зону:

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере задается московское время.

Затем устанавливаем и запускаем сервис синхронизации времени:

yum install chrony

systemctl enable chronyd

systemctl start chronyd

2. Настройка брандмауэра

Для работы сервера, открываем следующие порты:

firewall-cmd —permanent —add-port={80/tcp,443/tcp,10051/tcp,10050/tcp,10050/udp,10051/udp}

firewall-cmd —reload

* где 80 — порт для http запросов (веб-интерфейс); 443 — для https запросов (веб-интерфейс); 10050 — порты для получения информации от zabbix агентов.

3. SELinux

В данной инструкции выполняется установка Zabbix на сервере с отключенным SELinux. Если есть желание его настроить, читаем статью Настройка SELinux в CentOS .

Для отключения SELinux вводим две команды:

setenforce 0

sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config

* первая команда отключает SELinux для текущей загрузки сервера, вторая — перманентно.

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

СУБД

В данному инструкции мы будем использовать сервер баз данных mariadb.

Для установки вводим:

yum install mariadb mariadb-server

Разрешаем автозапуск сервера баз данных и запускаем mariadb:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

* после ввода команды система потребует ввести пароль два раза.

Веб-сервер

Для наших целей будем использовать веб-сервер NGINX.

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

yum install epel-release

Теперь вводим команду:

yum install nginx

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

systemctl enable nginx

systemctl start nginx

Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — мы должны увидеть окно приветствия:

* в вашем случае, данная страница может иметь другой вид.

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. Очень важно установить подходящую версию PHP. Узнать требуемую версию можно на странице с документацией — раздел «Frontend».

Для CentOS 7 максимально возможная версия для установки Zabbix с веб-интерфейсом — 4.2. Обратите на это внимание.

Для Zabbix версии 4.2, требуется PHP версии 5. Данная версия устанавливается в CentOS 7 из коробки.

Устанавливаем php и необходимые компоненты:

yum install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath

Для настройки php, открываем файл:

vi /etc/php.ini

Редактируем следующие параметры:

date.timezone = «Europe/Moscow»
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000

Запустим php-fpm:

systemctl enable php-fpm

systemctl start php-fpm

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

vi /etc/nginx/nginx.conf

И приводим его к виду:

server {
listen 80 default_server;
server_name _;
set $root_path /usr/share/nginx/html;

root $root_path;

location / {
index index.php;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
fastcgi_read_timeout 300;
}
}

* где /usr/share/nginx/html — корневой путь хранения скриптов; 9000 — порт php-fpm.

Проверяем настройки nginx:

nginx -t

И перезагружаем его:

systemctl restart nginx

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

cd /usr/share/nginx/html

Создаем index.php со следующим содержимым:

vi index.php

<?php phpinfo(); ?>

Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — теперь мы должны увидеть сводную информацию по PHP и его настройкам:

Веб-сервер готов для работы с Zabbix Web.

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

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

Установка

Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу https://repo.zabbix.com/zabbix/ и переходим в раздел с самой последней версией пакета — затем переходим в rhel 7 x86_64 — копируем ссылку на последнюю версию релиза:

* в моем случае это ссылка на https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm .

Устанавливаем репозиторий командой:

yum install https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm

Устанавливаем сервер, вводя команду:

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

Настройка базы данных

Входим в оболочку ввода sql-команд:

mysql -uroot -p

Создаем базу данных:

> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* мы создали базу zabbix .

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

> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbixpassword’;

* в данном примете мы создали пользователя zabbix с доступом к базе zabbix и паролем zabbixpassword .

Выходим из sql-оболочки:

> q

В составе zabbix идет готовая схема для СУБД MySQL/MariaDB или postgreSQL. В нашем случае, нам нужен MySQL.

Для применения схемы переходим в каталог:

cd /usr/share/doc/zabbix-server-mysql-*

Распаковываем архив с дампом базы:

gunzip create.sql.gz

Восстанавливаем базу их дампа:

mysql -u root -p zabbix < create.sql

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

Настройка zabbix

Открываем конфигурационный файл zabbix:

vi /etc/zabbix/zabbix_server.conf

Добавляем строку:

DBPassword=zabbixpassword

* мы настраиваем портал на подключение к базе с паролем zabbixpassword , который задали при создании базы для zabbix.

И проверяем следующие строки:


DBName=zabbix

DBUser=zabbix

* имя базы и пользователя должны быть zabbix (как мы и создали в mariadb).

Запуск zabbix-server

Разрешаем автозапуск сервера мониторинга:

systemctl enable zabbix-server

После запускаем сам сервер zabbix:

systemctl start zabbix-server

Настройка nginx

При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix. Наш веб-сервер работает с каталогом /usr/share/nginx/html.

Меняем это — открываем конфигурационный файл nginx:

vi /etc/nginx/nginx.conf

Редактируем параметры root и set $root_path:


set $root_path /usr/share/zabbix;

Перезапускаем nginx:

systemctl restart nginx

Установка портала для управления Zabbix

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/ — откроется страница установки Zabbix Web. Кликаем по ссылке Next Step :

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

Когда все результаты будут OK , кликаем по Next Step :

В следующем окне мы оставляем настройки подключения к базе как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix (в нашем примере, zabbixpassword ). После нажимаем Next Step :

В следующем окне оставляем все как есть:

… и нажимаем Next Step .

В последнем окне мы проверяем настройки и кликаем Next Step .

Установка завершена — нажимаем Finish :

В открывшемся окне вводим логин Admin и пароль zabbix (по умолчанию) — откроется окно со сводной информацией по мониторингу:

Zabbix Agent

В качестве примера установим и настроим zabbix agent на наш сервер. Так как мы уже устанавливали репозиторий, установка агента выполняется командой:

yum install zabbix-agent

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

vi /etc/zabbix/zabbix_agentd.conf

Отредактируем следующую опцию:

Server=localhost

* в данном примере мы указываем агенту сервер Zabbix — мы может указать его имя или IP-адрес.

Разрешаем автозапуск агента и запускаем его:

systemctl enable zabbix-agent

systemctl start zabbix-agent

Возможные проблемы

1. upstream sent too big header while reading response header from upstream

Ошибка появляется во время установки zabbix в веб-интерфейсе.

Причина: zabbix отправляет размер заголовка больше, чем Nginx может прочитать.

Решение: увеличить размер заголовка в конфигурационном файле nginx:

vi /etc/nginx/conf.d/default.conf


location ~ .php$ {

fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;

Перезапускаем nginx:

systemctl restart nginx

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

4 дня ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

4 дня ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

4 дня ago

Что такое Zabbix

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

4 дня ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

4 дня ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

4 дня ago