Введение
Zabbix это программное обеспечение с открытым исходным кодом для мониторинга сетей и приложений. Оно обеспечивает мониторинг тысячи показателей в реальном времени, собранных с серверов, виртуальных машин, а также любого другого вида сетевого устройства. Эти показатели могут помочь определить текущее состояние вашей ИТ – инфраструктуры и выявлять проблемы, связанные с аппаратными или программными компонентами, прежде чем клиенты пожалуются. Полезная информация хранится в базе данных, так что вы можете анализировать данные в течение долгого времени и тем самым повышая качество предоставляемых услуг, или вовремя обновляя ваше оборудование.
Zabbix использует архитектуру клиент-сервер и использует небольшой агент на наблюдаемом клиента, чтобы собрать данные и отправлять их на сервер Zabbix. Zabbix, поддерживает шифрованную связь между сервером и подключенными клиентами, так что ваши данные защищены в то время как вы путешествуете по незащищенным сетям.
Сервер Zabbix хранит свои данные в реляционной базе данных от MySQL, PostgreSQL или Oracle. Он также предоставляет веб-интерфейс, так что вы можете просматривать данные и настройки параметров системы.
В этой статье мы настроим две машины. Одна из них будет настроена как сервер, а другая в качестве клиента, который вы будете контролировать. Сервер будет использовать базу данных MySQL для записи данных мониторинга и использовать Apache.
Предпосылки
Для выполнения этой статьи вам потребуется:
- Два CentOS 7 серверов с SUDO некорневым пользователем, который вы можете настроить, следуйте этой статьи начальную настройку сервера CentOS.
- На одном из серверов CentOS 7 необходим установленный Apache, MySQL и PHP. Следуйте этому руководству, чтобы установить их на CentOS 7.
Шаг 1 – Установка сервера Zabbix
Во-первых, нам нужно установить сервер Zabbix на нашем сервере с MySQL, Apache и PHP. Мы будем называть эту машину в качестве сервера Zabbix. Вход в эту машину, как ваш некорневой пользователь:
ssh andreyex@your_zabbix_server_ip_address
Zabbix не доступен в нашем менеджере пакетов по умолчанию, поэтому мы установим пакет хранилища конфигурации с использованием официального репозитория Zabbix для CentOS,
sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
Вы увидите следующий вывод:
Retrieving http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.qLbOPP: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-3.0-1.el7 ################################# [100%]
Теперь вы можете запустить следующую команду, чтобы установить сервер Zabbix и веб-интерфейс с поддержкой базы данных MySQL:
sudo yum install zabbix-server-mysql zabbix-web-mysql
В процессе установки вам будет предложено импорт ключа GPG. Подтвердите его, так что установка может завершиться.
Давайте также установиv агент Zabbix, который позволит нам собрать данные о самом сервере Zabbix.
sudo yum install zabbix-agent
Прежде чем мы сможем использовать Zabbix, мы должны создать базу данных для хранения данных, сервер Zabbix будет собирать от своих агентов.
Шаг 2 – Настройка базы данных MySQL для Zabbix
Нам нужно создать новую базу данных MySQL и заполнить ее базовой информацией для того, чтобы сделать ее пригодной для Zabbix. Мы также создадим конкретного пользователя для этой базы данных так Zabbix, войдя в MySQL с учетной записью root.
Вход в MySQL как пользователь корня, используя корневой пароль, который вы установили во время установки сервера MySQL:
mysql -uroot -p
Во-первых, создайте базу данных Zabbix с поддержкой UTF-8 символов:
create database zabbix character set utf8;
Далее, создайте пользователя, который сервер Zabbix будет использовать, дайте ему доступ к новой базе данных, а также установите пароль:
grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';
Затем примените эти новые разрешения:
flush privileges;
Это позаботится о пользователе и базе данных. Выйдите из консоли базы данных.
quit;
Далее мы должны импортировать исходную схему и данные. Установка Zabbix предоставляет нам файл, который устанавливает для нас. Мы просто должны импортировать его. Перейдите в каталог:
cd /usr/share/doc/zabbix-server-mysql-3.0.4/
Выполните следующую команду, чтобы создать схему и импортируйте данные в базу данных zabbix. Мы будем использовать zcat, для сжатия данных.
zcat create.sql.gz | mysql -uzabbix -p zabbix
Введите пароль для пользователя Zabbix, который был настроен при запросе.
Эта команда не будет выводить какие – либо ошибки, если она была успешной. Если вы видите ошибку, ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES) то убедитесь, что вы использовали пароль для пользователя zabbix, а не пользователя root.
Для того, чтобы сервер Zabbix, мог использовать эту базу данных, необходимо установить пароль базы данных в файле конфигурации сервера Zabbix.
sudo vi /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 в файл для нашего пользователя базы данных. Добавьте эту строку ниже этих замечаний для настройки базы данных:
DBPassword=your_zabbix_mysql_password
Это позаботится о конфигурации сервера Zabbix, но мы должны сделать некоторые изменения в нашей установке PHP для того, чтобы веб-интерфейс Zabbix, мог работать должным образом.
Шаг 3 – Настройка PHP для Zabbix
Веб – интерфейс Zabbix написан на PHP и требует некоторых специальных настроек PHP сервера. В процессе установки Zabbix создан конфигурационный файл Apache, который содержит эти настройки. Он находится в каталоге /etc/httpd/conf.d/ и загружает автоматически Apache. Нам нужно сделать небольшие изменения в этот файл, поэтому откройте его.
sudo vi /etc/httpd/conf.d/zabbix.conf
Файл содержит настройки PHP, которые отвечают необходимым требованиям для веб-интерфейса Zabbix. Единственное изменение, которое нужно сделать, это установить соответствующий часовой пояс, который по умолчанию закомментирован.
<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/Riga </IfModule>
Раскомментируйте линию часового пояса, отмеченные выше, и измените его на ваш часовой пояс. Вы можете использовать этот список поддерживаемых часовых поясов, чтобы найти правильный для вас. Затем сохраните и закройте файл.
Теперь перезапустите Apache, чтобы применить новые настройки.
sudo systemctl restart httpd
Теперь вы можете запустить сервер Zabbix.
sudo systemctl start zabbix-server
Затем проверьте правильность работы сервера Zabbix:
sudo systemctl status zabbix-server
Вы увидите следующее состояние:
● zabbix-server.service - Zabbix Server Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled) Active: :active (running) since Fri 2017-06-07 12:23:34 UTC; 2s ago Process: 10033 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...
Наконец, включите сервер Zabbix для запуска во время загрузки:
sudo systemctl enable zabbix-server
Сервер настроен и подключен к базе данных. Теперь давайте установим веб-интерфейс.
Шаг 4 – Настройка параметров для веб-интерфейса Zabbix
Веб – интерфейс позволяет нам просматривать отчеты и добавлять узлы, которые мы хотим контролировать, но он нуждается в некоторой первоначальной настройки, прежде чем мы сможем использовать его. Запустите браузер и перейдите по адресу. На первом экране вы увидите приветственное сообщение. Нажмите Следующий шаг, чтобы продолжить. http://your_zabbix_server_ip_address/zabbix/
На следующем экране вы увидите таблицу, в которой перечислены все предпосылки для запуска Zabbix.
Все значения в этой таблице, должны показать OK, поэтому убедитесь, что они сделаны. Обязательно прокрутите вниз и посмотреть на все предпосылки. После того, как вы убедились, что все готово к работе, нажмите кнопку Следующий шаг, чтобы продолжить.
Следующий экран запрашивает информацию подключения к базе данных.
Мы указали серверам Zabbix о нашей базе данных, но веб – интерфейсу Zabbix также необходим доступ к базе данных для управления узлами и чтения данных, поэтому он может показать его нам. Введите учетные данные MySQL настроенные на шаге 2 и нажмите кнопку Следующий шаг, чтобы продолжить.
На следующем экране вы можете оставить параметры на их значения по умолчанию.
Имя не является обязательным; оно используется в веб – интерфейсе, чтобы отличить один сервера от другого в случае, если у вас есть несколько серверов мониторинга. Нажмите Следующий шаг, чтобы продолжить.
На следующем экране появится резюме до установки, так что вы можете подтвердить, что все правильно.
Нажмите Следующий шаг, чтобы перейти к последнему экрану.
Настройка веб – интерфейса завершена! Этот процесс создаст конфигурационный файл, /etc/zabbix/web/zabbix.conf.php, который вы могли бы поддержать и использовать в будущем. Нажмите Готово, чтобы перейти к экрану входа в систему. Пользователь по умолчанию admin и пароль zabbix.
Перед тем, как войти, давайте установим агент Zabbix на нашем другом сервере.
Шаг 5 – Установка и настройка агента в Zabbix
Теперь нам нужно настроить агент программное обеспечение, которое будет посылать данные мониторинга на сервер Zabbix.
Войдите на второй сервер, который мы называем «мониторинг сервера».
ssh andreyex@your_monitored_server_ip_address
Затем, так же, как на сервере Zabbix, выполните следующую команду для установки репозитория пакета конфигурации:
sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
Вы увидите следующий вывод:
ВыводRetrieving http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.jnLROO: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-3.0-1.el7 ################################# [100%]
Затем установите агент Zabbix:
sudo yum install zabbix-agent
Подтвердите, что вы хотите импортировать ключ GPG, когда его запросили.
Хотя Zabbix поддерживает шифрование на основе сертификатов, создание центра сертификации выходит за рамки данного руководства, но мы можем использовать общие ключи (PSK) для обеспечения соединения между сервером и агентом.
Таким образом, во-первых, сформируйте PSK:
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
Покажите ключ, так что вы можете скопировать его куда-нибудь. Вы будете нуждаться в нем, чтобы настроить хост.
cat /etc/zabbix/zabbix_agentd.psk
Ключ будет выглядеть примерно так:
bd7ebdc1вas80fbw3r810g5u016de5a4ff5rf48swer692dert512fr65490gt6y
Теперь вы должны изменить настройки агента Zabbix, чтобы настроить его безопасное подключение к серверу Zabbix. Откройте файл конфигурации агента:
sudo vi /etc/zabbix/zabbix_agentd.conf
Каждый параметр в этом файле документируется с помощью информативных комментариев по всему файлу, но вам нужно изменить всего лишь некоторые из них.
Во-первых, необходимо изменить IP-адрес сервера Zabbix. Найдите следующий раздел:
### Option: Server # List of comma delimited IP addresses (or hostnames) of Zabbix servers. # 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. # # Mandatory: no # Default: # Server= Server=127.0.0.1
Изменение значения по умолчанию для IP вашего сервера Zabbix:
ВыводServer=your_zabbix_server_ip_address
Затем найдите раздел, который настраивает безопасное соединение с сервером Zabbix. Найдите
раздел TSLConnect, который выглядит следующим образом :
### 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
Затем добавьте эту строку, чтобы настроить предварительно согласованный ключ поддержки:
TLSConnect=psk
Затем найдите раздел TLSAccept, который выглядит следующим образом:
### 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
Настройка входящих соединений для поддержки предварительно выданного общего ключа, добавив следующую строку:
TLSAccept=psk
Далее, найдите раздел TLSPSKIdentity, который выглядит следующим образом:
### Option: TLSPSKIdentity # Unique, case sensitive string used to identify the pre-shared key. # # Mandatory: no # Default: # TLSPSKIdentity=
Выберите уникальное имя для идентификации вашего общего ключа, добавив следующую строку:
TLSPSKIdentity=PSK 001
Вы будете использовать это как PSK ID при добавлении вашего хоста через веб – интерфейс Zabbix.
Затем установите параметр, который указывает на ранее созданный предварительно согласованный ключ. Найдите раздел TLSPSKFile:
### Option: TLSPSKFile # Full pathname of a file containing the pre-shared key. # # Mandatory: no # Default: # TLSPSKFile=
Добавьте эту строку, чтобы указать агент Zabbix для вашего созданного файла PSK:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
Сохраните и закройте файл. Теперь вы можете запустить агент Zabbix и установить его для запуска во время загрузки:
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
Для хорошей меры, убедитесь, что агент Zabbix работает должным образом:
sudo systemctl status zabbix-agent
Вы увидите следующее состояние, указывающий,что агент работает:
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2017-06-07 08:17:07 UTC; 5s ago Process: 9507 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) ...
Наш агент готов к передаче данных на сервер Zabbix. Но для того, чтобы использовать его, мы должны связать его с веб-консоли сервера.
Шаг 6 – Добавление нового узла к серверу Zabbix
Установка агента на сервере, при помощи которой мы хотим контролировать, только половина процесса. Каждый хост, который мы хотим мониторить, должен быть зарегистрирован на сервере Zabbix, который мы можем сделать через веб-интерфейс.
Войдите в веб – интерфейс сервера Zabbix, перейдя по адресу .http://your_zabbix_server_ip_address/zabbix/
Когда вы вошли в систему, нажмите на конфигурацию, а затем Хосты в верхней панели навигации. Затем нажмите кнопку Создать хост в правом верхнем углу экрана. Это позволит открыть страницу конфигурации хоста.
Настройте имя хоста и IP – АДРЕС, чтобы отразить имя хоста и IP – адрес клиентской машины. Затем добавить хост в группу, выбрав одну из групп из списка, или путем создания собственной группы. Хост может находиться в нескольких группах. Группа Linux Servers является хорошим выбором по умолчанию. После того, как вы добавили в группу, щелкните на вкладку шаблон.
Введите Template OS Linux в поисковом поле, а затем нажмите кнопку Добавить, чтобы добавить этот шаблон к хосту.
Затем перейдите к вкладке Шифрование. Выберите PSK для обоих соединений для размещения и соединения с хостом. Затем установите PSK идентичность к PSK 001, которая является значением TLSPSKIdentity настройки агента Zabbix, которое мы настроили ранее. Затем установите значение ключа PSK, сгенерированного для агента Zabbix. Он хранится в файле /etc/zabbix/zabbix_agentd.psk на компьютере агента.
Наконец, нажмите кнопку Добавить в нижней части формы, чтобы создать хост.
Вы увидите свой новый хост с зелеными этикетками, указывающими, что все работает нормально, а соединение шифруется.
Через несколько секунд вы можете перейти к мониторингу, а затем Последние данные, чтобы просмотреть данные из вашего агента.
Для того, чтобы проверить, что все работает, выключите мониторинг сервера, так что вы можете увидеть, как Zabbix предупреждает вас о проблеме. После того, как ваш проверяемый сервер отключился вы увидите предупреждение на главной панели инструментов:
Если у вас есть дополнительные серверы, которые необходимо контролировать, войдите в каждый узел, установите агент Zabbix, сгенерируйте ключ PSK, настройте агент, и добавьте хост веб-интерфейс, следуя тем же шаги, которые вы выполни при добавлении своего первого хоста.
Вывод
В этой статье вы создали простое и безопасное решение, которое поможет вам контролировать состояние серверов. Теперь он может предупредить вас о проблемах, и у вас есть возможность построить несколько графиков на основе полученных данных, так что вы можете анализировать и планировать соответственно.