Zabbix - это система мониторинга сервера с открытым исходным кодом, который используется многими организациями для обеспечения бесперебойной работы серверов. Этот инструмент позволяет следить за состоянием огромного количества серверов, а также установленных на них программ, включая базы данных, веб-серверы и многое другое. Поддерживается как Windows, так и Linux и все это может быть объедено в одну интегрированную сеть.
Чаще всего для обеспечения работы веб-серверов используется CentOS, так как это достаточно стабильная и надежная операционная система. В этой статье мы рассмотрим как выполняется установка и настройка Zabbix CentOS 7. А поскольку недавно вышла версия Zabbix 3.4, то устанавливать мы будем именно ее.
Содержание статьи
Что нам нужно?
Сначала рассмотрим какое программное обеспечения мы будем использовать и что уже должно быть установлено:
- Операционная система: CentOS 7;
- База данных: MariaDB;
- Веб-сервер: Nginx;
- PHP: php-fpm;
- Панель управления: VestaCP.
Если вы хотите устанавливать Zabbix на Apache или просто на Nginx без VestaCP, то, возможно, вам будет даже проще выполнять инструкцию, потому что не нужно будет делать некоторые лишние действия. Я предполагаю, что база данных и веб-сервер уже установлены. Если MariaDB еще не установлена - смотрите статью установка MariaDB CentOS и возвращайтесь.
Установка Zabbix
Начнем с установки программы. Сначала необходимо добавить репозиторий с новой версией программы в систему:
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Затем можно установить пакеты:
- zabbix-server-mysql - серверная часть, которая занимается обработкой данных;
- zabbix-web-mysql - веб-интерфейс;
- zabbix-agent - клиентская часть, занимается сбором данных и отправкой их на сервер;
- zabbix-get - небольшая утилита для тестирования получения данных из командной строки, будет нужна нам потом.
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
Установка Zabbix CentOS 7 завершена, но это только начало, дальше самое сложное - настройка.
Настройка Zabbix
Перед тем как мы перейдем к настройке базы данных, давайте сделаем веб-интерфейс доступным через браузер.
Шаг 1. Настройка веб-сервера
В Apache вам ничего делать не нужно, веб-сервер уже настроен и Zabbix доступен по адресу:
Но нам необходимо настроить Nginx и у нас адрес будет немного другим:
Для этого мы создадим домен в панели VestaCP, но чтобы домен заработал правильно, нам нужно сначала создать шаблон для Zabbix, код шаблона будет выглядеть вот так:
vi /usr/local/vesta/data/templates/web/nginx/php-fpm/zabbix.tpl
Шаблон zabbix.stpl будет выглядеть так же, только в нем перед секцией location нужно добавить три строчки:
Я взял шаблон default.tpl и изменил его так, чтобы он запускал не файлы из домашней папки, а zabbix. Если вы не хотите делать такой шаблон, будет достаточно просто вставить этот код в секцию http конфигурационного файла /etc/nginx/nginx.conf. Только не забудьте заменить все переменные %имя% на значения. Далее откройте VestaCP, перейдите на вкладку WEB и нажмите кнопку со знаком "+":
Введите имя домена zabbix.домен. Можно использовать любой домен, а затем подбросить его через /etc/hosts или домен вашего сайта. В поле ip адрес выберите ваш внешний адрес, а шаблон - zabbix:
Больше ничего менять не нужно, нажимайте "Добавить" и веб-сервер готов. Если хотите, можете включить поддержку SSL от Lets Encrypt, в шаблоне мы это настроили, значит работать будет.
Шаг 2. Настройка базы данных
Теперь создаем пользователя базы данных, от имени которого zabbix будет работать с базой данных и саму базу:
mysql
Разворачиваем начальную базу данных:
zcat /usr/share/doc/zabbix-server-mysql-3.4.*/create.sql.gz | mysql -uroot -pпароль zabbix
В вашей версии путь к файлу может немного отличаться. Осталось указать данные входа в основном конфигурационном файле сервера zabbix:
Шаг 3. Запуск сервера
Запускаем сервер и добавляем его в автозагрузку:
systemctl start zabbix-server
systemctl enable zabbix-server
Шаг 4. Завершение настройки в веб-интерфейсе
Дальше будет выполнена установка zabbix centos 7 через веб-интерфейс. На первой странице программа проверит подходит ли для ее работы php и сервер в целом:
Указываем параметры для доступа к mysql:
Укажите адрес сервера и порт, на котором будет слушать соединения zabbix-server, лучше оставить как есть:
Проверьте настройки:
Готово.
Шаг 5. Авторизация
Дальше вы можете авторизоваться в системе, для этого используйте имя пользователя Admin и пароль zabbix:
Шаг 6. Изменение пароля и русификация
Для безопасности первым же делом лучше поменять пароль. Для этого откройте вкладку "Configuration", затем "Users":
Выберите пользователя "Admin" и в открывшемся окне нажмите кнопку "Change password":
Дальше останется два раза ввести пароль:
И пока вы в этом окне, в поле "Language" выберите "ru". Теперь готово.
Шаг 7. Настройка Zabbix-agent на локальном сервере
Это не сложно. Сам агент у нас уже установлен, так что нам остается только его настроить, нужно указать ip адрес сервера и имя хоста:
Очень важно, чтобы имя хоста, которое используется здесь и имя хоста в панели управления совпадали иначе потом отправка данных с помощью zabbix_sender работать не будет. Дальше осталось запустить zabbix-agent и добавить его в автозагрузку:
systemctl start zabbix-agent
systemctl enable zabbix-agent
Учитывая, что хост локальный, то он автоматически появится в панели управления на вкладке "Configuration", "Hosts":
Шаг 8. Настройка брандмауэра
Чтобы zabbix мог обмениваться данными с другими хостами сети, на всех серверах должны быть открыты порты 10050 и 10051. Для этого можно использовать VestaCP. Войдите от имени администратора, затем откройте "Firewall":
Нажмите кнопку "+". Заполните поля следующим образом:
- Action - ACCEPT;
- Protocol - TCP;
- Port - 10050-10051;
- Ip address - 0.0.0.0/0;
Адрес 0.0.0.0/0 означает, вообще, все сетевые адреса. То есть мы разрешаем всем подключаться к этим портам. Затем осталось нажать кнопку "Add". Готово. Кроме Vesta, вы можете воспользоваться командой firewallcmd:
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
systemctl restart firewalld
На всех серверах. Обязательно. Установка Zabbix 3.4 CentOS 7 почти завершена.
Шаг 9. Настройка удаленного Zabbix-Agent
Я предполагаю, что установка zabbix agent centos на удаленном хосте уже выполнена. А вот здесь уже немного интереснее. Данные указываем так же, адрес нашего сервреа zabbix и имя хоста:
Далее запускаем агента:
systemctl start zabbix-agent
И возвращаемся обратно к серверу zabbix. Нужно открыть "Настройка" -> "Узлы сети", затем нажать кнопку "Создать новый узел":
Затем заполните такие поля:
- Имя узла сети - hostname, которое вы указали в конфигурации zabbix-agent у клиента;
- IP адрес - ip, на котором запущен zabbix-agent;
- Группа серверов - выберите группу, например, Linux Servers;
- Активировано - установите галочку чтобы активировать после создания.
Здесь готово, теперь перейдите на вкладку "Шаблоны". Добавьте шаблон "Linux OS Template":
Для этого наберите его имя, выберите из выпадающего списка и нажмите ссылку "Добавить", пока вы ее не нажмете ничего не добавится.
Только после этого можно нажимать кнопку "Добавить". Новый хост появится в меню и надпись ZBX станет зеленой. Обратите внимание, что ZBX будет серой даже если все работает, пока вы не добавите хотя бы один шаблон и с него не начнут поступать данные. Дальнейшую настройку мониторинга Zabbix мы рассмотрим в следующих статьях.
Выводы
В этой статье мы рассмотрели как выполняется установка и настройка zabbix в CentOS 7. Как видите, если выполнять инструкцию, и немного адаптировать команды к своей системе, то можно сделать все достаточно просто. Если у вас остались вопросы, спрашивайте в комментариях!
Шикарно. Как раз собирался ставить zabbix рядом с Vesta. Сэкономили время.
А почему перешли на убунту в качестве основной ос?
Подскажите пожалуйста, ставлю связку в zabbix postgresql nginx, споткнулся на последнем, весту ставить не вариант. Как быть с nginx, если настраивать без Vesta? Спасибо