Бог - это специальная программа, установленная в душах верующих, а Дьявол - просто вирус в ней. (Сергей Федин) АФОРИЗМ БОГИ РЕЛИГИЯ

Как установить и настроить Zabbix для безопасного наблюдения за удаленными серверами на CentOS 7

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
9 июня 2017
Как установить и настроить Zabbix для безопасного наблюдения за удаленными серверами на CentOS 7

Введение

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

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

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

В этой статье мы настроим две машины. Одна из них будет настроена как сервер, а другая в качестве клиента, который вы будете контролировать. Сервер будет использовать базу данных MySQL для записи данных мониторинга и использовать Apache.

Предпосылки

Для выполнения этой статьи вам потребуется:

  • Два CentOS 7 серверов с SUDO некорневым пользователем, который вы можете настроить, следуйте этой статьи начальную настройку сервера CentOS.
  • На одном из серверов CentOS 7 необходим установленный Apache, MySQL и PHP. Следуйте этому руководству, чтобы установить их на CentOS 7.
Примечание:
CentOS использует MariaDB вместо MySQL, но это не вызовет никаких проблем, следуя этим учебному пособию.

Шаг 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

 

Посмотрите на следующий раздел файла:

/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, но мы должны сделать некоторые изменения в нашей установке 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. Единственное изменение, которое нужно сделать, это установить соответствующий часовой пояс, который по умолчанию закомментирован.

/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/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 и нажмите кнопку Следующий шаг, чтобы продолжить.

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

Подробнее о сервере Zabbix

Имя не является обязательным; оно используется в веб – интерфейсе, чтобы отличить один сервера от другого в случае, если у вас есть несколько серверов мониторинга. Нажмите Следующий шаг, чтобы продолжить.

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

Резюме

Нажмите Следующий шаг, чтобы перейти к последнему экрану.

Настройка веб – интерфейса завершена! Этот процесс создаст конфигурационный файл, /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. Найдите следующий раздел:

/etc/zabbix/zabbix_agentd.conf
Вывод
### 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:

/etc/zabbix/zabbix_agentd.conf
ВыводServer=your_zabbix_server_ip_address

 

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

/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 ID при добавлении вашего хоста через веб – интерфейс 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 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/

Экран Логина Zabbix

Когда вы вошли в систему, нажмите на конфигурацию, а затем Хосты в верхней панели навигации. Затем нажмите кнопку Создать хост в правом верхнем углу экрана. Это позволит открыть страницу конфигурации хоста.

Создание узла

Настройте имя хоста и IP – АДРЕС, чтобы отразить имя хоста и IP – адрес клиентской машины. Затем добавить хост в группу, выбрав одну из групп из списка, или путем создания собственной группы. Хост может находиться в нескольких группах. Группа Linux Servers является хорошим выбором по умолчанию. После того, как вы добавили в группу, щелкните на вкладку шаблон.

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

Введите Template OS Linux в поисковом поле, а затем нажмите кнопку Добавить, чтобы добавить этот шаблон к хосту.

Затем перейдите к вкладке Шифрование. Выберите PSK для обоих соединений для размещения и соединения с хостом. Затем установите PSK идентичность к PSK 001, которая является значением TLSPSKIdentity настройки агента Zabbix, которое мы настроили ранее. Затем установите значение ключа PSK, сгенерированного для агента Zabbix. Он хранится в файле /etc/zabbix/zabbix_agentd.psk на компьютере агента.

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

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

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

Zabbix показывает свой новый хост.

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

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

Как установить и настроить Zabbix для безопасного наблюдения за удаленными серверами на CentOS 7

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

Вывод

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 310

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close