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. Как видите, если выполнять инструкцию, и немного адаптировать команды к своей системе, то можно сделать все достаточно просто. Если у вас остались вопросы, спрашивайте в комментариях!
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали


























Шикарно. Как раз собирался ставить zabbix рядом с Vesta. Сэкономили время.
А почему перешли на убунту в качестве основной ос?
Подскажите пожалуйста, ставлю связку в zabbix postgresql nginx, споткнулся на последнем, весту ставить не вариант. Как быть с nginx, если настраивать без Vesta? Спасибо