Редакция 1.1 (2016-11-12)

Здравствуйте. Первым делом нам надо решить, какой сервер под наши задачи заказывать. Конечно же, быстрый, конечно же, с некоторым количеством свободной оперативной памяти и места на жёстком диске. И виртуальный. Это понятно. А всё же, какой нужен сервер для нормальной работы Zabbix? Сразу скажу, что сервер мониторинга Zabbix очень нетребовательный, поскольку над ним ведётся постоянная работа по оптимизации и… много еще работы ведётся1 постоянно. Это же Open Source! Да, да, Zabbix — совершенно бесплатен и открыт, что должно еще больше вдохновить вас на установку именно этого решения.

Итак, выбираем сервер в компании MAXIPLACE, а где же ещё?

Решение

Ядер (vCPU)

Оперативная память (Mb)

HDD (Gb)

Комментарий

Low

1

512

10

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

Normal

2

2048

25

Нормальный сервер, будет работать, мониторить 25-50 удалённых серверов с небольшим интервалом опроса.

High

4

4096

100

Быстрый сервер. До 100-150 наблюдаемых серверов и сетевого оборудования. Потребует дополнительной настройки на оптимизацию Zabbix.

Super

8

8192

250

1000-2500 хостов. Не верите? Проверьте!

Поздравляю вас у приобретением и установкой нового сервера в компании MAXIPLACE. Еще одним сервером под управлением операционной системы Linux стало больше. Сейчас мы будем устанавливать последнюю версию лучшей системы мониторинга Zabbix на CentOS.

Первым делом обновляем систему после инсталляции. Нужно скачать новые версии ядра и системных пакетов. Поскольку сервер совсем новый это займёт несколько минут.

# yum update

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

# vi /etc/sysconfig/selinux

SELINUX=disabled

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

# reboot

Устанавливаем дополнительный репозиторий EPEL. Это нужно для более новых и свежих пакетов и к тому же этот репозиторий включен в состав CentOS. Мне нравится утилита pwgen для генерации паролей — рекомендую использовать её.

# yum install epel-release

Устанавливаем сервис базы данных MariaDB (свободный форк MySQL).

# yum install mariadb-server mariadb

Стартуем сервер баз данных MariaDB.

# systemctl start mariadb.service

Добавляем MariaDB в автозагрузку. При перезагрузке данный сервис будет стартовать автоматически.

# systemctl enable mariadb.service

Запускаем скрипт первоначальной и безопасной установки настроек MariaDB. Он будет спрашивать вопросы по безопасности вашего сервиса базы данных. Внимательно читайте и отвечайте на вопросы. Пароль администратора (root) для MariaDB предлагаю сгенерировать или заранее (и выписать на бумажку или в файл) или в отдельном терминале.

# mysql_secure_installation

Enter current password for root (enter for none): ENTER

Set root password? [Y/n] ENTER

New password: MY-MYSQL-PASSWORD

Re-enter new password: MY-MYSQL-PASSWORD

Remove anonymous users? [Y/n] ENTER

Disallow root login remotely? [Y/n] ENTER

Remove test database and access to it? [Y/n] ENTER

Reload privilege tables now? [Y/n] ENTER

Теперь надо установить веб-сервер Apache2.

# yum install httpd

Запустить его.

# systemctl start httpd.service

И добавить в автозагрузку.

# systemctl enable httpd.service

По умолчанию в CentOS включен встроенный межсетевой экран FirewallD (на базе iptables). Мы должны добавить в правила исключения (открыть порты) наш веб-сервер по протоколам HTTP и HTTPS.

# firewall-cmd —permanent —zone=public —add-service=http

# firewall-cmd —permanent —zone=public —add-service=https

# firewall-cmd —reload

Проверяем. Открываем в любого удаленного хоста наш сервер (по IP или DNS-имени, если оно уже прописано).

Mozilla Firefox → http://ZABBIX-HOSTNAME

Устанавливаем интерпретатор PHP. Без него не будет работать ни phpMyAdmin (ниже) ни веб-интерфейс Zabbix.

# yum install php

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

# yum install phpMyAdmin

По умолчанию phpMyAdmin не разрешает никаких подключений извне. Нам необходимо будет добавить наш внешний (рабочий, домащний) IP-адрес в разрешенные адреса для подключения в файл конфигурации веб-сервера Apache.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

<IfModule mod_authz_core.c>

# Apache 2.4

<RequireAny>

Require ip <MY-IP-ADDRESS-OR-SUBNET>

Require ip 127.0.0.1

Require ip ::1

</RequireAny>

Перестартовываем Apache.

# service httpd restart

Запускаем с рабочего компьютера (с того, конечно же, с которого мы открыли доступ к phpMyAdmin) ваш любимый браузер (в статье это будет Mozilla Firefox) о открываем следующую ссылку.

Mozilla Firefox → http://ZABBIX-HOSTNAME/phpmyadmin/

Теперь мы займёмся самостоятельной работой. Необходимо создать пользователя, присвоить ему пароль и дать доступ к базе данных zabbix (или как вы её назовёте). Вы можете это сделать любым способом, который вам известен. Я предпочитаю для этих целей phpMyAdmin — он прост, удобен и относительно безопасен.

! create zabbix user and database

ВНИМАНИЕ!!! Обязательно проставьте на базу данных другую кодировку. Скорее всего, он при создании базы выставит норвежскую однобайтовую кодировку, нам же нужен UTF-8.

! сравнение utf8_unicode_ci

Устанавливаем репозиторий Zabbix версии 3.2. На момент написания статьи версия 3.2.1 была был самой свежей. Наверное, когда вы будете читать ити строчки выйдет следующая стабильная версия или даже несколько. Имейте это в виду. В вашем случае, это изменит только путь к скрипту добавления данных в БД (ниже).

# rpm -i http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

Устанавливаем сервер Zabbix, веб-интерфейс к нему и агент для мониторинга.

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

Идём в директорию, в которой лежит скрипт для заполнения таблиц базы данных zabbix необходимыми данными.

# cd /​usr/​share/​doc/​zabbix-server-mysql-3.2.1/

Создаём таблицы и заполняем их3.

# zcat create.sql.gz | mysql -uzabbix zabbix -p

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

# vi /etc/zabbix/zabbix_server.conf

DBPassword=***

Наконец, запускаем наш Zabbix-сервер.

# systemctl start zabbix-server

Можем проверить, что всё прошло удачно и сервер запустился без ошибок.

# tail /var/log/zabbix/zabbix_server.log

Добавляем сервис Zabbix в автозагрузку. Мы же хотим, чтобы после перезагрузки сервера он запускался и работал как ни в чём не бывало.

# systemctl enable zabbix-server

Если всё хорошо и вы следовали этой инструкции, то увидите примерно следующее.

4706:20161211:231258.375 Starting Zabbix Server. Zabbix 3.2.1 (revision 62890).

4706:20161211:231258.375 ****** Enabled features ******

4706:20161211:231258.375 SNMP monitoring: YES

4706:20161211:231258.375 IPMI monitoring: YES

4706:20161211:231258.375 Web monitoring: YES

4706:20161211:231258.376 VMware monitoring: YES

4706:20161211:231258.376 SMTP authentication: YES

4706:20161211:231258.376 Jabber notifications: YES

4706:20161211:231258.376 Ez Texting notifications: YES

4706:20161211:231258.376 ODBC: YES

4706:20161211:231258.376 SSH2 support: YES

4706:20161211:231258.376 IPv6 support: YES

4706:20161211:231258.376 TLS support: YES

4706:20161211:231258.376 ******************************

4706:20161211:231258.376 using configuration file: /etc/zabbix/zabbix_server.conf

4706:20161211:231258.413 current database version (mandatory/optional): 03020000/03020000

4706:20161211:231258.413 required mandatory version: 03020000

4706:20161211:231258.950 server #0 started [main process]

4714:20161211:231258.962 server #3 started [poller #1]

4717:20161211:231258.962 server #6 started [poller #4]

4718:20161211:231258.962 server #7 started [poller #5]

4719:20161211:231258.963 server #8 started [unreachable poller #1]

4723:20161211:231258.963 server #12 started [trapper #4]

4724:20161211:231258.966 server #13 started [trapper #5]

4725:20161211:231258.966 server #14 started [icmp pinger #1]

4726:20161211:231258.966 server #15 started [alerter #1]

4727:20161211:231258.967 server #16 started [housekeeper #1]

4713:20161211:231258.967 server #2 started [db watchdog #1]

В файле конфигурации Apache выставляем нашу временную зону.

# vi /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 always_populate_raw_post_data -1

php_value date.timezone Europe/Moscow

</IfModule>

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

# vi /etc/zabbix/zabbix_agentd.conf

Hostname=ZABBIX-HOST-NAME

Запускаем Zabbix-агент.

# systemctl start zabbix-agent

Добавляем агент в автозагрузку.

# systemctl enable zabbix-agent

Перезапускаем веб-сервер Apache. Последний раз.

# service httpd restart

Добавляем парты Zabbix-сервера в список исключений межсетевого экрана FirewallD.

# firewall-cmd —permanent —zone=public —add-port=10050/tcp

# firewall-cmd —permanent —zone=public —add-port=10051/tcp

# firewall-cmd —reload

Теперь мы можем войти на наш Zabbix-сервер через веб-интерфейс. Поздравляю. Установка и настройка почти завершены. Еще один-два шага и вы можете работать с Zabbix.

Mozilla Firefox → http://ZABBIX-HOSTNAME/zabbix/

Входим под следующими учётными данными и, это важно, не забудьте поменять пароль администратора. СДЕЛАЙТЕ ЭТО, ПОЖАЛУЙСТА, СРАЗУ.

Username: Admin

Password: zabbix

Аркадий Петровский

специально для Maxiplace

https://avpetrovskiy.ru

1. Я это видел в Риге у них в офисе. Кстати, рекомендую к них съездить на обучение, если, конечно, не будет курсов поближе. Они разъезжают по миру довольно активно.

2. Рассматривать вариант в Nginx я не стал, но те, кто любят чай или кофе погорячей могут добавить в эту статью (или на основе её написать свою) как заставить работать Zabbix под этим популярным веб-сервером.

3. На медленных серверах это может занять некоторое время, но не более 3-5 минут.