1-го октября 2018 года вышла новая версия бесплатной системы мониторинга, которую я постоянно использую. Я подробно расскажу об установке и начальной настройке Zabbix 4.0 на примере систем CentOS, Debian, Ubuntu со скриншотами и пояснениями. В этой версии много интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.

На сегодняшний день, по моему мнению, из бесплатных систем мониторинга именно Zabbix самая популярная и функциональная. Упоминания о ней я постоянно встречаю в технических статьях специалистов различного масштаба и организаций. К примеру, СберТех использует Zabbix как единую платформу мониторинга. ИТ отдел сети магазинов Магнит так же использует zabbix как основную систему мониторинга. Пару лет назад я смотрел выступление представителя ИТ отдела Магнита, где он подробно описывал структуру системы. На тот момент это была самая крупная инсталляция заббикса с тысячами прокси серверов для сбора данных из магазинов по всей стране. Упоминания о мониторинге заббикс я встречал у специалистов компаний 1С, Крок, Яндекс.Деньги и других. Перечислил только то, что запомнилось.

Нужно понимать, что Zabbix — система мониторинга общего назначения. У нее нет специализации в микросервисы, сеть, железо и т.д. В связи с этим, всегда может найтись инструмент, который сможет выполнять ту или иную задачу удобнее и эффективнее, чем zabbix. Но это не умоляет остальных достоинств системы. Я их вижу в первую очередь в том, что в ней можно настроить мониторинг всего, что угодно. Главное научиться подавать значения в систему. А для этого есть масса инструментов — как самих агентов, так и скриптов, которые можно подключать к сбору данных.

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

Чем меня еще подкупает zabbix — хорошая документация и большое комьюнити. Много выступлений от различных специалистов с описанием внедрений. Все это облегчает работу с системой. Проще принять решение как поступить в той или иной ситуации. Сами разработчики постоянно проводят встречи, приглашают выступающих, потом выкладывают видео. В общем, система со всех сторон оставляет благоприятное впечатление.

Я буду устанавливать и настраивать работу сервера zabbix на nginx, что несколько отличается от дефолтной установки, которая включает в себя веб сервер apache. В связи с этим, нам необходимо будет подготовиться.

Подготовка сервера CentOS к установке

Первым делом вам необходимо и сервер CentOS 7. Перед установкой сервера Zabbix нам также нужно подготовить Web сервер. У меня есть отдельная статья по . Там все подробно описано. Сейчас же я кратко и без лишних комментариев выполню минимум необходимых действий для работы заббикса. Так же я не буду останавливаться на . Эта отдельная тема и мне не хочется ее касаться в этой статье. Либо настройте сами по моим инструкциям, либо просто отключите firewall:

# systemctl stop firewalld # systemctl disable firewalld

Подключаем репозиторий nginx и устанавливаем его:

# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # yum install nginx

Запускаем nginx и добавляем в автозагрузку.

Проверяем, работает ли он. Для этого открываем в браузере ссылку http://192.168.13.117/, где 192.168.13.117 — ip адрес настраиваемого сервера.

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

# yum install epel-release # rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Активируем репу remi-php71, для этого выполняем команды:

# yum install yum-utils # yum-config-manager --enable remi-php71

Устанавливаем php 7.1 и модули к нему.

# yum install php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath

Запускаем php-fpm и добавляем в автозагрузку.

# systemctl start php-fpm # systemctl enable php-fpm

Проверяем, запустился ли он.

# netstat -tulpn | grep php-fpm tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 13261/php-fpm: mast

Все в порядке, запустился на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:

# mcedit /etc/php-fpm.d/www.conf ;listen = 127.0.0.1:9000

Вместо нее добавляем несколько других:

Listen = /var/run/php-fpm/php-fpm.sock listen.mode = 0660 listen.owner = nginx listen.group = nginx

Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx, отредактировав соответствующие параметры.

User = nginx group = nginx

Перезапускаем php-fpm.

# systemctl restart php-fpm

Проверяем, стартовал ли указанный сокет.

# ll /var/run/php-fpm/php-fpm.sock srw-rw----. 1 nginx nginx 0 Oct 4 15:08 /var/run/php-fpm/php-fpm.sock

На текущий момент с настройкой php-fpm закончили. Продолжаем подготовку сервера к установке zabbix.

Устанавливаем свежую версию MariaDB. Подключаем репозиторий. Для этого создаем файл /etc/yum.repos.d/mariadb.repo следующего содержания.

# mcedit /etc/yum.repos.d/mariadb.repo # MariaDB 10.3 CentOS repository list - created 2018-10-04 12:10 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

Устанавливаем последнюю версию mariadb на centos.

# yum install MariaDB-server MariaDB-client

Запускаем mariadb и добавляем в автозагрузку.

# systemctl start mariadb # systemctl enable mariadb

Внесем некоторые изменения в стандартный конфиг mariadb, чтобы потом не заниматься . Для этого открываем конфиг mysql /etc/my.cnf.d/server.cnf и приводим его к следующему виду.

# mcedit /etc/my.cnf.d/server.cnf port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set=utf8 character_set_server=utf8 collation-server=utf8_bin init_connect="SET NAMES utf8 collate utf8_bin" port = 3306 socket = /var/lib/mysql/mysql.sock innodb_file_per_table=1 innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size innodb_flush_log_at_trx_commit = 0 innodb_log_file_size = 512M innodb_log_files_in_group = 3

Я добавил минимум настроек, отличных от дефолта. В статье про оптимизацию mysql их приведено гораздо больше, но со временем я понял, что зря это сделал. Реально у меня нет большого опыта в тонкой настройке mysql. Никаких тестов и проверок я не делал, а данные брал на основе других статей в интернете. Не факт, что там не было ошибок. В итоге сейчас тут только заданы некоторые важные параметры по innodb, в частности указание хранить каждую таблицу в отдельном файле, задан размер и количество бинарных логов и еще пару настроек, которые явно будут к месту (innodb_buffer_pool_size, innodb_buffer_pool_instances и innodb_flush_log_at_trx_commit). При желании, вы можете сами заняться тюнингом mysql. В общем случае, достаточно будет текущих настроек.

# systemctl restart mariadb # systemctl status mariadb.service

Сервер баз данных mysql для нашего zabbix сервера готов. На этом предварительные настройки сервера закончены. Приступаем к установке.

Установка сервера Zabbix 4.0 в CentOS

Для того, чтобы установить Zabbix Server 4.0 нужно подключить репозиторий актуальной версии.

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.fCWryx: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY Preparing... ################################# Updating / installing... 1:zabbix-release-4.0-1.el7 #################################

Устанавливаем сам сервер заббикса.

# yum install zabbix-server-mysql zabbix-web-mysql

В зависимостях пакетов будет httpd, который нам не нужен, так как у нас будет nginx и php7.1, но я не разбирался, как поставить без него. После установки пакетов, создадим базу данных, пользователя zabbix и заполним базу.

# mysql -uroot -p Enter password: > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@localhost identified by "zabpassword"; exit # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout , так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется для получения метрики. Поставьте секунд 10.

Проверяем лог файл на наличие ошибок.

# cat /var/log/zabbix/zabbix_server.log

Настройка SELinux с zabbix

Если у вас включен SELinux, получите ошибку.

Cannot start preprocessing service: Cannot bind socket to "/var/run/zabbix/zabbix_server_preprocessing.sock": Permission denied.

Это нормально, сейчас настроим SELinux для нормальной работы Zabbix. Для этого устанавливаем пакет policycoreutils-python, скачиваем готовый модуль для SELinux и применяем его.

# yum install policycoreutils-python # cd ~ # curl https://support.zabbix.com/secure/attachment/53320/zabbix_server_add.te > zabbix_server_add.te # checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te # semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp # semodule -i zabbix_server_add.pp

Теперь нам надо перезапустить zabbix-server.

# systemctl restart zabbix-server

Если у вас это не получится сделать через systemctl, значит служба зависла. Завершаем ее принудительно и запускаем снова.

# kill -9 `pidof zabbix_server` # systemctl start zabbix-server

Снова проверяйте log файл. Теперь ошибок быть не должно. Как я уже сказал, если у вас отключен SELinux, то делать описанные выше манипуляции с модулем не надо.

С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/conf.d/default.conf

# mcedit /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; root /usr/share/zabbix; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; 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/Moscow always_populate_raw_post_data = -1 "; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }

Маленький, но важный нюанс. Нам надо изменить права доступа на некоторые папки. Назначить владельца nginx.

# chown -R nginx:nginx /var/lib/php/session # chown -R nginx:nginx /etc/zabbix/web

Этот шаг нужно будет проделывать после каждого обновления php или zabbix. Связано с тем, что по-умолчанию zabbix идет в комплекте с apache и рассчитан на работу с ним. Поэтому после установки или обновления, он делает его владельцем директории /etc/zabbix/web .

Даем разрешения SELinux для работы заббикса с web сервером и базой данных.

# setsebool -P httpd_can_connect_zabbix on # setsebool -P httpd_can_network_connect_db on

Я не знаю, насколько последняя настройка актуальна, если подключение к БД локальное. У разработчиков в инструкции сказано, что в случае с postgresql даже если подключаетесь через 127.0.0.1, разрешение выдавать нужно. Насчет mysql нет комментариев.

С серверной частью закончили. Для продолжения установки zabbix сервера переходим к .

Установка сервера Zabbix 4.0 в Ubuntu, Debian

С установкой Zabbix на сервер с Ubuntu или Debian попроще, так как в стандартных репозиториях посвежее версии софта, можно использовать их. Подключаем репозитории zabbix 4.0.

# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb # dpkg -i zabbix-release_4.0-2+bionic_all.deb

# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb # dpkg -i zabbix-release_4.0-2+stretch_all.deb

Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории - https://repo.zabbix.com/zabbix/4.0/ Дальнейшая установка не будет отличаться от текущей.

Обновляем информацию о репозиториях, а заодно и последние обновления поставим:

# apt update && apt upgrade

Устанавливаем zabbix сервер:

# apt install zabbix-server-mysql zabbix-frontend-php

Он по-умолчанию ставится с apache, который сразу же запускается. Остановим его и отключим:

# systemctl stop apache2 # systemctl disable apache2

Ставим отдельно nginx и php-fpm:

# apt install nginx php-fpm

Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

# /usr/bin/mysql_secure_installation

Отредактируем некоторые параметры Mariadb в конфиге /etc/mysql/mariadb.conf.d/50-server.cnf . Добавляем туда в секцию :

# mcedit /etc/mysql/mariadb.conf.d/50-server.cnf innodb_file_per_table=1 innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size innodb_flush_log_at_trx_commit = 0 innodb_log_file_size = 512M innodb_log_files_in_group = 3

Перезапустите mariadb и убедитесь, что она запустилась.

# systemctl restart mariadb # netstat -tulnp | grep mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 16753/mysqld

Cоздадим базу данных, пользователя zabbix, и заполним базу.

# mysql -uroot -p Enter password: > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@localhost identified by "zabpassword"; exit # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.

# mcedit /etc/zabbix/zabbix_server.conf

Изменяем указанные строки, остальные не трогаем:

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabpassword ListenIP=0.0.0.0 Timeout=10

Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.

Запускаем zabbix и добавляем в автозагрузку.

# systemctl start zabbix-server # systemctl enable zabbix-server

Проверяем запустился ли.

# netstat -tulnp | grep zabbix_server tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16847/zabbix_server

Все в порядке. Запускаем nginx, который у нас будет выступать в качестве web сервера.

# systemctl start nginx # systemctl enable nginx

Убедимся, что в качестве web сервера работает nginx.

# netstat -tulnp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17075/nginx: master tcp6 0 0:::80:::* LISTEN 17075/nginx: master

Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный - /etc/nginx/sites-available/default . Приводим его к следующему виду:

# mcedit /etc/nginx/sites-available/default server { listen 80; server_name localhost; root /usr/share/zabbix; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock ; # проверьте этот путь, для разных версий php он будет разный fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; 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/Moscow always_populate_raw_post_data = -1 "; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }

Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.

# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # nginx -s reload

С серверной частью закончили. Для продолжения установки zabbix сервера переходим к настройке Zabbix Frontend.

Настройка Zabbix Frontend

Идем в браузер и открываем адрес http://192.168.13.117. Вы должны увидеть установщик Zabbix 4.0.

Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.

На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.

После нажатия на Finish увидите окно авторизации Zabbix сервера.

Стандартная учетная запись для входа в web интерфейс zabbix следующая:

  • Пользователь Admin
  • Пароль zabbix

После логина увидите стандартный dashboard.

На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.

Настройка Zabbix Server

Создание учетной записи и смена пароля

Первое, что нужно сделать — сменить стандартные учетные данные для входа. Можно просто поменять пароль пользователя admin, но лучше создать новую учетную запись с правами суперпользователя, а админа удалить. Для этого идем в раздел Administration -> Users и нажимаем Create User .

Заполняем все необходимые поля. Можно выбрать русский язык. Обычно я стараюсь работать в английском, но в случае с заббиксом можно сделать исключение. Он очень качественно локализован и проблем не возникает. Не забудьте зайти во вкладку Permissions и выбрать User type — Zabbix Super Admin.

Теперь можно зайти под новым пользователем, а Admin удалить. Но система не даст его удалить, так как он является владельцем некоторых объектов:

  • карты сети — Local Network
  • комплексного экрана Zabbix server
  • панелей Global view и Zabbix server health

Они создаются автоматически при установке заббикса. Вам нужно сменить у них владельца на нового пользователя. После этого стандартного админа можно будет удалить.

Настройка email оповещений

Дальше нужно настроить очень важную часть системы мониторинга — уведомления на email. Без нее система мониторинга не выглядит целостной и полноценной. Zabbix сервер поддерживает отправку почты через сторонние smtp серверы. Настроим один из них. Для этого идем в раздел Администрирование -> Способы оповещений и нажимаем на Email .

Покажу на примере настроек ящика в Яндексе.

Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем в Администрирование -> Пользователи , выбираем своего пользователя. Идем во вкладку Оповещения и жмем Добавить . Добавляйте свой ящик и нажимайте Обновить .

Зайдите еще раз в учетную запись и убедитесь, что ящик добавили.

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

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

Мне мой вид кажется более наглядным. Шаблон меняет на следующий:

{HOST.NAME} - {TRIGGER.STATUS}: {TRIGGER.NAME}

Он одинаковый и для проблемы, и для восстановления.

Изменение стандартных шаблонов мониторинга

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

  1. В шаблоне Template App Zabbix Agent отключаю триггер Version of zabbix_agent(d) was changed on {HOST.NAME} . Если его оставить, то после каждого обновления zabbix агента вы будете получать уведомление. Лично мне эта информация не нужна.
  2. В шаблоне Template OS Linux меняю в триггере Disk I/O is overloaded on {HOST.NAME} значение со стандартных 20% до 50%. Я считаю, что начинать беспокоиться и смотреть на машину надо при этом значении. Но вы можете подобрать под свои нужды.
  3. В этом же шаблоне в правиле обнаружения Mounted filesystem discovery добавляю еще один прототип триггера, скопировав Free disk space is less than 20% on volume {#FSNAME} . Новый шаблон полностью идентичен скопированному, только вместо 20% указываю 5% и ставлю важность с «Предупреждение» на «Высокая». Я добавляю еще одно оповещение, если свободного места на дисках остается меньше 5%. Стандартные 20% очень высокий порог, особенно если большой диск. Оперативное решение проблемы не требуется. Из-за этого часто откладываешь чистку диска на потом и забываешь о ней. Теперь будет еще один страховочный триггер, после которого точно надо идти и прямо сейчас разбираться с местом. В триггере на 20% свободного места ставлю разрешение на закрытие триггера вручную.
  4. В этом же шаблоне в триггере Lack of free swap space on {HOST.NAME} меняю порог срабатывания с 50% до 20%, либо вообще отключаю его. Сейчас много серверов работают без swap. Хотя лично я всегда его создаю и подключаю.
  5. В шаблоне Template OS Windows отключаю Правило обнаружения Windows service discovery . В дефолтном варианте оно генерирует очень много ненужных итемов и оповещений. Если нужен мониторинг какой-то службы windows, я делаю для этого отдельный шаблон.

Общие настройки

В общих настройках zabbix server, которые располагаются в разделе Администрирование -> Общие я меняю следующие параметры:

  1. В разделе Рабочее время выставляю актуальные рабочие часы.
  2. В разделе Опции отображения триггеров меняю значения Отображать триггеры в состоянии ОК в течении и Мигание триггеров при изменении состояния на 1 минуту. Это просто мои предпочтения. Мне не нравится, когда триггеры долго мигают, либо висят уже закрытые.
  3. В разделе Прочее меняю Обновление неподдерживаемых элементов данных на 1 минуту. Это актуально во время отладки новых шаблонов.

Установка Zabbix Agent на Linux

Если вы хотите установить zabbix-agent на сам сервер мониторинга, то ничего делать не надо, кроме самой установки. Для других систем необходимо подключить репозитории заббикса, которые мы использовали во время установки сервера. Можете посмотреть их в соответствующих разделах для своей системы.

Установка zabbix agent в Centos:

# yum install zabbix-agent

Тоже самое в Ubuntu/Debian:

# apt install zabbix-agent

Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на другую машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf Server=192.168.13.117 ServerActive=192.168.13.117 Hostname=srv10 # имя вашего узла мониторинга, которое будет указано на сервере zabbix, Zabbix server если это сам сервер заббикса

Запускаем агент и добавляем в автозагрузку:

# systemctl start zabbix-agent # systemctl enable zabbix-agent

Проверяем лог файл.

# cat /var/log/zabbix/zabbix_agentd.log 14154:20181004:201307.800 Starting Zabbix Agent . Zabbix 4.0.0 (revision 85308). 14154:20181004:201307.800 **** Enabled features **** 14154:20181004:201307.800 IPv6 support: YES 14154:20181004:201307.800 TLS support: YES 14154:20181004:201307.800 ************************** 14154:20181004:201307.800 using configuration file: /etc/zabbix/zabbix_agentd.conf 14154:20181004:201307.800 agent #0 started 14157:20181004:201307.801 agent #3 started 14159:20181004:201307.802 agent #5 started 14155:20181004:201307.804 agent #1 started 14158:20181004:201307.806 agent #4 started 14156:20181004:201307.810 agent #2 started

Все в порядке. Идем в веб интерфейс и проверяем поступление данных. Для этого идем в раздел Мониторинг -> Последние данные . Указываем в разделе Узлы сети Zabbix Server и ждем поступления первых данных. Они должны пойти через 2-3 минуты после запуска агента.

Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:

# systemctl stop zabbix-agent

Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем главную панель, виджет Проблемы .

Одной из отличительных возможностей мониторинга Zabbix, является использование агентов. Zabbix Agent — это специальная программа которая устанавливается на системе о которой нужна информация и общается с сервером. Сервер в свою очередь рисует нужные графики. Простота в использовании очень ускоряет настройку хостов и графиков, так как на просматриваемом хосте нам нужен только агент и больше никаких настроек производить не потребуется.Zabbix Agent поставляется для Windows и Linux\Unix like систем. В этой статье мы рассмотрим установку и настройку как на Windows , так и на Linux (дистрибутив Ubuntu ) хост.

Установка на хост с ОС Windows

Первым шагом будет конечно же скачивание и установка агента. Для начала скачивания перейдите пожалуйста по ссылке . Скачали архив, распаковали и видим 2 папки, одна с установщиками для разных систем, вторая с примером файла конфигурации. Распакуем на диск С:\ файл конфигурации и установщик для вашей системы(32/64bit ).

Перед установкой нужно внести изменения в файл конфигурации. Откроем файл, ищем строки и подставляем свои значения.

LogFile={путь к логфайлу} Server={ip адрес zabbix сервера} Hostname={имя хоста}

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

Откроем командную строку и переходим в корень диска C:\ , делается это командой cd C:\ . Если установщик вы распаковали не в корень, а в иную папку, перейдите в эту директорию. Выполняем команду zabbix_agentd.exe --install .
Если файл конфигурации находится не в корне или имеет имя отличное от стандартного, выполните zabbix_agentd.exe --config {файл_конфигурации} --install .
Если установка прошла успешно, выполняем zabbix_agentd.exe --start . Теперь zabbix agent работает как сервис в нашей системе. Для того чтобы узнать какие параметры агент будет отправлять серверу можно выполнить команду zabbix_agentd.exe --print .

Установка на хост с ОС Ubuntu

Для скачивания агента для вашей системы нужно перейти по ссылке . Ищем нужный нам файл, при помощи команд скачиваем и устанавливаем, у меня они выглядят таким образом:

Cd /tmp wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix/zabbix-agent_3.0.0-1+trusty_amd64.deb dpkg -i zabbix-agent_3.0.0-1+trusty_amd64.deb

Если в процессе установки возникают проблемы с зависимости и выскакивает ошибка, что чего-то не хватает, выполняем команду apt-get -f install .

Исполняемый файл агента находится по адресу /usr/sbin/zabbix_agentd , файл конфигурации /etc/zabbix/zabbix_agentd.conf . Файл конфигурации такой же как и для Windows ОС. Поэтому настройка идентична. Единственным нюансом является то, что агент нужно запускать от имени отдельного пользователя, если вы не используете агент на машине вместе с сервером, то можно оставить пользователя zabbix , однако, если используется на одной машине вместе с сервером, желательно изменить пользователя на другого, делается это в файле конфигурации редактированием параметра User .

Запускаем агент командой /usr/sbin/zabbix_agentd и переходим к шагу добавления хоста в панель управления Zabbix .

Настройка хостов

С установкой агента закончили, теперь нужно создать и настроить хост в панели управления zabbix. Переходим в Configuration->Hosts->Create host .

Host Name - имя хоста которое мы прописывали в конфиге Zabbix agent; Groups - группа к которой относится хост; Agent interfaces - заполняем ip адрес хоста и нажимаем "add" ;

Теперь переходим на вкладку «Templates» , нажимаем «Select» из списка выбираем «Template OS Windows» , после чего нажимаем на ссылку(не кнопку) «Add» . Все, шаблон добавили, нажимаем кнопку «Add» и наш хост добавлен.

Теперь осталось немного подождать пока графики заполнятся данными и их можно будет увидеть в разделе «Dashboard->Graphs» .


Как видите, особых сложностей с добавлением хостов с ОС Windows/Linux на борту нету. В следующей статье я опишу процесс создания шаблона для сетевого оборудования D-link.

Если у вас возникли трудности или проблемы с установкой и настройкой, пишите ваши комментарии, обязательно разберемся.

Доброго времени суток. Продолжаем настраивать систему мониторинга Zabbix. И в данной статье мы поговорим о мониторинге устройств под управлением операционной системы Windows. Как Вы знаете, что Windows из коробки не поддерживает SNMP, поэтому по SNMP Zabbix не сможет забирать данные с устройства наблюдения. Но у нас есть сервера под управлением Windows, есть локальная сеть в которой находятся машины под Windows и все это нам надо мониторить. Как же быть? Да простую проверку (например, доступность узла сети) мы легко можем организовать, а вот загрузку системы, время работы узла. Для этого есть специальная программа, которая передает все эти данные zabbix-серверу. И дальше мы установим zabbix-agent на Windows, настроим zabbix агента. А также настроим zabbix сервер для получения данных от zabbix агента.

Первое, что нам надо сделать - это скачать zabbix агента для Windows. Для этого перейдите по ссылке . Дистрибутив агента Zabbix для Windows включает в себя следующие файлы: zabbix_agentd.exe, zabbix_get.exe и zabbix_sender.exe.

Установка и настройка zabbix-агента.

Создайте папку “c:\program files\zabbix". скопируйте в нее следующие файлы zabbix_agent.exe, zabbix_get.exe и zabbix_sender.exe.
Дальше создаем в этой папке log файл для zabbix агента: zabbix_agentd.log.
Следующим шагом создаем конфигурационный файл zabbix_agentd.conf и помещаем в него следующий код:

Server=
#ServerPort=10051
# Unique hostname. Required for active checks.
Hostname=host.local
# Listen port. Default is 10050
ListenPort=10050
# Name of log file.
LogFile=c:\program files\zabbix_agentd.log
# Maximum size of log file in MB. Set to 0 to disable automatic log rotation.
LogFileSize=10


где:

  1. Server - вводим ip адрес zabbix сервера
  2. ServerPort - указываем порт по которому работает zabbix-server с zabbix-agent, в нашем случае закомментировано, т.к. мы используем порт по умолчанию 10051
  3. Hostname - указываем название нашего локального хоста
  4. ListenPort - порт по которому zabbix агент отдает данные zabbix серверу, 10050
  5. LogFile - полный путь к log файлу, в нашем случае c:\program files\zabbix_agent.log
  6. LogFileSize - размер файла лога, указывается в мегобайтах, в нашем случае мы установили размер данного файла равног 10 мегобайт.
Теперь приступаем к непосредственной установке zabbix-agent. Для этого в коммандной строке введите следующее:

"c:\program files\zabbix\zabbix_agentd.exe" --config "c:\program files\zabbix\zabbix_agentd.conf" --install

Запускем zabbix агента, в командной строке введите:

"c:\program files\zabbix\zabbix_agentd.exe" --config "c:\program files\zabbix\zabbix_agentd.conf" --start

Или zabbix-agent можно запустить через службы Windows в панели управления.
Проверим работу zabbix агента. Для этого в командной строке введем:

"c:\program files\zabbix\zabbix_agentd.exe" --config "c:\program files\zabbix\zabbix_agentd.conf" --print

Должен появиться список параметров, которые может передать zabbix агент, вот только малая часть:
  1. agent.hostname
  2. agent.ping
  3. agent.version
  4. system.localtime
  5. system.uname
  6. vm.memory.size
и другие.

Настройка zabbix сервера для сбора информации с zabbix агента.

Для получения данных при помощи zabbix агента мы должны при создании “Элемента данных” в поле “Тип” указать Zabbix агент, в поле “Ключ” указать тот параметр, который мы хотим получить. Вот и все.

Рассмотрим как установить и настроить Zabbix-агенты для наблюдения за системами ОС Windows и Linux . По данной у меня развернут Zabbix-сервер 3.2.5 , соответственно все агенты будут устанавливаться версии 3.2 .

Установка Zabbix-агента на ОС Windows

Скачиваем с оф. сайта Zabbix-агента для Windows систем.

Распаковываем скачанный архив и запускаем Командную строку от администратора . Переходим в каталог с установочными файлами агента (для корректной работы агента, учитываем разрядности системы):

Cd C:\zabbix_agents_3.2.0.win\bin\win64

Для установки одиночного экземпляра Zabbix-агента с файлом конфигурации c:\zabbix_agentd.conf по-умолчанию, выполняем:

Zabbix_agentd.exe --install

Так же есть возможность при установке указать путь к файлу конфигурации, отличный от c:\zabbix_agentd.conf . для этого выполняем:

Zabbix_agentd.exe --config <полный_путь_к_файлу_конфигурации> --install

Можно установить несколько экземпляров Zabbix агента службами, примерно следующим образом:

Zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_1> --install --multiple-agents zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_2> --install --multiple-agents ... zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_N> --install --multiple-agents

Настройка Zabbix-агента

Теперь нужно выполнить настройку файла конфигурации агента. Шаблон конфигурации находится в установочном каталоге агента в папке conf , файл zabbix_agentd.win.conf .

Если была выполнена обычная установка, то копируем шаблон zabbix_agentd.win.conf в корень диска C:\ и переименовываем файл в zabbix_agentd.conf .

Если была выполнена установка с указанием пути к файлу конфигурации, то копируем шаблон zabbix_agentd.win.conf в папку которую указывали при установке Zabbix-агента и переименовываем файл в zabbix_agentd.conf .

Выполняем настройку файла конфигурации. Приводим следующие параметры в файле к виду:

Server= ServerActive= HostnameItem=system.hostname

Запуск службы Zabbix-агента

Запускаем службу Zabbix-агента. Пуск Панель управления Администрирование Службы . Находим службу Zabbix Agent и нажимаем Запустить .

Запустить службу можно так же из командной строки . Для запуска одиночного экземпляра Zabbix-агента с файлом конфигурации по умолчанию:

Zabbix_agentd.exe --start

Для запуска одиночного экземпляра Zabbix-агента с отличным от умолчания файлом конфигурации:

Zabbix_agentd.exe --config <ваш_файл_конфигурации> --start

Для запуска одного из нескольких экземпляров Zabbix-агента:

Zabbix_agentd.exe --config <файл_конфигурации_этого_экземпляра> --start --multiple-agents

Остановка службы Zabbix-агента

Остановка службы Zabbix-агента. Пуск Панель управления Администрирование Службы . Находим службу Zabbix Agent и нажимаем Остановить

.

Остановка Zabbix-агента, который запущен с файлом конфигурации по умолчанию:

Zabbix_agentd.exe --stop

Остановка Zabbix-агента, который запущен с другим файлом конфигурации:

Zabbix_agentd.exe --config <ваш_файл_конфигурации> --stop

Остановка одного из нескольких экземпляров Zabbix-агента:

Zabbix_agentd.exe --config <файл_конфигурации_этого_экземпляра> --stop --multiple-agents

Удаление службы Zabbix-агента

Удаления Zabbix-агента, который использует файл конфигурации по-умолчанию:

Zabbix_agentd.exe --uninstall

УдаленияZabbix-агента, который не использует файлом конфигурации по-умолчанию:

Zabbix_agentd.exe --config <ваш_файл_конфигурации> --uninstall

Удаления нескольких экземпляров Zabbix-агента из служб Windows:

Zabbix_agentd.exe --config <файл_конфигурации_экземпляра_1> --uninstall --multiple-agents zabbix_agentd.exe --config <файл_конфигурации_экземпляра_2> --uninstall --multiple-agents ... zabbix_agentd.exe --config <файл_конфигурации_экземпляра_N> --uninstall --multiple-agents

Если удалить службу выше перечисленными способами не удается, то можно удалить службу средствами Windows, предварительно остановив работу службы и выполнив в командной строке с правами администратора:

Sc delete [имя службы]

На этом установка Zabbix-агента на ОС Windows завершена, теперь рассмотрим как установить агента на ОС Linux .

Установка Zabbix-агента на ОС Linux (Ubuntu, Debian)

Установку Zabbix-агента буду рассматривать на Ubuntu Server 14.04 .

Скачиваем необходимый пакет и устанавливаем его:

Wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb sudo dpkg -i zabbix-release_3.2-1+trusty_all.deb

Обновляем данные репозиториев и устанавливаем самого агента:

Sudo apt-get update sudo apt-get install zabbix-agent

Выполняем настройку Zabbix-агента, файл конфигурации располагается в /etc/zabbix/zabbix_agentd.conf . Отредактируем его:

Sudo nano /etc/zabbix/zabbix_agentd.conf

И вносим следующие изменения:

Server= ServerActive= HostnameItem=system.hostname Include=/etc/zabbix/zabbix_agentd.conf.d/

Сохраняем изменения в файле и перезапускаем службу Zabbix-агента :

Sudo service zabbix-agent restart

На этом установка и настройка Zabbix-агента выполнена. Теперь рассмотрим как заводить хосты на самом Zabbix-сервере .

Добавление хостов на Zabbix-сервер

Заходим на Zabbix-сервер , посредством Web-интерфейса. Переходим Настройка (Configuration)- Узлы сети (Hosts) и нажимаем Создать узел сети (Create host)

Вкладка Узел сети (Host). Задаем Имя узла сети (Host name), добавляем узел в группу, если нужной группы нет в списке, то в поле Новая группа (New Group) указываем название группы. В поле Интерфейсы агента , можно выбрать каким методом добавить узел сети, по IP-адресу или по его DNS имени.

Переходим во вкладку Шаблоны (Templates). В пункте Соединить с новыми шаблонами (Link new templates):

  • для Windows выбираем Template OS Windows
  • для Linux выбираем Template OS Linux

Нажимаем Добавить (Add), чтобы закрепить выбранный шаблон к данному узлу сети.

Видим что в графе Присоединенные шаблоны (Linked templates), появился выбранный шаблон. Нажимаем Добавить (Update).

Все теперь добавленный узел сети будет под присмотром Zabbix-сервера . Для наглядности процесса посмотрим мониторинг в действии, переходим Мониторинг Графики , выбираем какой график мы хотим посмотреть, в моем случае я выбрал отобразить сколько занято места на диске D .

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