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, код шаблона будет выглядеть вот так:
server <
listen %ip%:%web_port%;
server_name %domain_idn% %alias_idn%;
root /usr/share/zabbix/;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
location / <
root /usr/share/zabbix/;
index index.php index.html;
>
location
.php$ <
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PHP_VALUE ”
max_execution_time=300
memory_limit=128M
post_max_size=16M
upload_max_filesize=2M
max_input_time=300
date.timezone=Europe/Kiev
always_populate_raw_post_data=-1
“;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri=404;
include fastcgi_params;
>
location
* “.+.(?:ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|css|swf|js|atom|jpe?g|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$” <
access_log off;
log_not_found off;
expires max;
>
location
Шаблон zabbix.stpl будет выглядеть так же, только в нем перед секцией location нужно добавить три строчки:
ssl on;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
Я взял шаблон default.tpl и изменил его так, чтобы он запускал не файлы из домашней папки, а zabbix. Если вы не хотите делать такой шаблон, будет достаточно просто вставить этот код в секцию http конфигурационного файла /etc/nginx/nginx.conf. Только не забудьте заменить все переменные %имя% на значения. Далее откройте VestaCP, перейдите на вкладку WEB и нажмите кнопку со знаком “+”:
Введите имя домена zabbix.домен. Можно использовать любой домен, а затем подбросить его через /etc/hosts или домен вашего сайта. В поле ip адрес выберите ваш внешний адрес, а шаблон – zabbix:
Больше ничего менять не нужно, нажимайте “Добавить” и веб-сервер готов. Если хотите, можете включить поддержку SSL от Lets Encrypt, в шаблоне мы это настроили, значит работать будет.
Шаг 2. Настройка базы данных
Теперь создаем пользователя базы данных, от имени которого zabbix будет работать с базой данных и саму базу:
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to [email protected] identified by ‘password’;
Разворачиваем начальную базу данных:
zcat /usr/share/doc/zabbix-server-mysql-3.4.*/create.sql.gz | mysql -uroot -pпароль zabbix
В вашей версии путь к файлу может немного отличаться. Осталось указать данные входа в основном конфигурационном файле сервера zabbix:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
Шаг 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 адрес сервера и имя хоста:
Server=localhost
ServerActive=localhost
Hostname=zabbix-server
Очень важно, чтобы имя хоста, которое используется здесь и имя хоста в панели управления совпадали иначе потом отправка данных с помощью 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 и имя хоста:
Server=ваш_ip_адрес
ServerActive=ваш_ip_адрес
Hostname=zabbix-client
Далее запускаем агента:
systemctl start zabbix-agent
И возвращаемся обратно к серверу zabbix. Нужно открыть “Настройка” -> “Узлы сети”, затем нажать кнопку “Создать новый узел”:
Затем заполните такие поля:
- Имя узла сети – hostname, которое вы указали в конфигурации zabbix-agent у клиента;
- IP адрес – ip, на котором запущен zabbix-agent;
- Группа серверов – выберите группу, например, Linux Servers;
- Активировано – установите галочку чтобы активировать после создания.
Здесь готово, теперь перейдите на вкладку “Шаблоны”. Добавьте шаблон “Linux OS Template”:
Для этого наберите его имя, выберите из выпадающего списка и нажмите ссылку “Добавить”, пока вы ее не нажмете ничего не добавится.
Только после этого можно нажимать кнопку “Добавить”. Новый хост появится в меню и надпись ZBX станет зеленой. Обратите внимание, что ZBX будет серой даже если все работает, пока вы не добавите хотя бы один шаблон и с него не начнут поступать данные. Дальнейшую настройку мониторинга Zabbix мы рассмотрим в следующих статьях.
Выводы
В этой статье мы рассмотрели как выполняется установка и настройка zabbix в CentOS 7. Как видите, если выполнять инструкцию, и немного адаптировать команды к своей системе, то можно сделать все достаточно просто. Если у вас остались вопросы, спрашивайте в комментариях!