Установка zabbix агент на Windows и настройка мониторинга
Теперь для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок http://www.zabbix.com/download.phpи скачиваем самый последний агент для Windows. Все агенты находятся в разделе Zabbix pre-compiled agents. Прямая ссылка на последнюю версию на момент написания статьи — zabbix_agents_3.4.0.win.zip
Распаковываем архив. Создаем на диске С: папкуzabbixи купируем туда следующие файлы:
zabbix_agentd.exe
zabbix_get.exe
zabbix_sender.exe
zabbix_agentd.win.conf
Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:
Теперь открываем оснастку со службами, ищем службу с именемZabbix agentи запускаем ее.
Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.
Тип правила: Для порта;
Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем разделConfiguration -> Hostsи жмемCreate host.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладкуTemplatesи нажимаем Select. Выбираем шаблон Template OS Windowsи жмем маленькую ссылкуadd, затем большую.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, вLatest data, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных и серверных систем.
22 августа 2017 года вышла новая версия бесплатной системы мониторинга, которую я регулярно использую. Я подробно расскажу об установке и начальной настройке Zabbix 3.4 на примере CentOS 7 со скриншотами и пояснениями. В этой версии будут несколько очень интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.
Обращаю внимание, что данная статья устарела. Вышла новая версия заббикс. Читайте статью поустановке и настройке zabbix 4.0. Если вам все же необходима версия именно 3.4, то можете использовать данный материал.
Кратко осистеме мониторинга Zabbixя уже писал в предыдущих своих статьях поустановке zabbix 2.4,3.0,3.2, поэтому не буду повторяться. О наиболее важных изменениях версии 3.4 я тоже уже рассказывал в материале пообновлению zabbix 3.2 до 3.4, можно ознакомиться.
По большому счету, в версии 3.4 принципиальных изменений в установке и настройке zabbix не произошло, можно пользоваться предыдущими инструкциями. Но для упрощения себе и остальным жизни, я все же напишу подробную инструкцию, где все ссылки будут актуальны, чтобы все можно было повторить в минимально короткий срок простым копипастом. Сам я часто устанавливаю систему мониторинга zabbix, так как считаю ее наиболее функциональной и удобной в использовании.
Приступим к установке и настройке последней версии zabbix 3.4.
Подготовка сервера к установке
Начинаем традиционно с подготовки рабочего окружения. Первым делом вам необходимоустановить инастроить сервер CentOS 7. Дальше нам нужно настроить web сервер для работы интерфейса управления. У меня есть подробный материал на темунастройки web сервера на centos 7, можете ознакомиться с ним и настроить внимательно и осмысленно. Далее я буду просто приводить команды установки, без пояснений. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал поустановке zabbix на nginx и php-fpm.
Начнем с обновления системы:
# yum update
Работа будет проходить на следующей версии CentOS:
ОтключаемSElinux. Любителям с ним повозиться, дальше можно не читать. Не люблю споров на тему SElinux. Каждый сам решает для себя в конкретной ситуации, нужен он ему на сервере или нет. Я не вижу смысла с ним заморачиваться на сервере мониторинга в локальной сети.
# mcedit /etc/sysconfig/selinux
Редактируем строку:
SELINUX=disabled
и выполняем команду:
# setenforce 0
Теперь установимmariadb. Ее необходимо ставить отдельно, почему-то она не устанавливается как необходимая зависимость при установке самого сервере zabbix.
На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 и Debian, начиная с 9-й предлагают ее как сервер баз данных по-умолчанию.
Дожидаемся окончания загрузки всех зависимостей. После этого нужно создать пользователя и базу данных для мониторинга. Если вы ранее настраивали отдельно web сервер по моей статье, то можете сделать это через phpmyadmin. Если у вас его нет, то делаем все через консоль.
# mysql -uroot -ptopsecret
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabpassword';
topsecret
пароль пользователя root mysql, это не системный root
zabpassword
пароль пользователя zabbix, у которого полный доступ к базе mysql zabbix
Выходим из консоли mysql, набирая exit.
Теперь импортируем схему БД и начальные данные.
# zcat /usr/share/doc/zabbix-server-mysql-3.4.*/create.sql.gz | mysql -uroot -ptopsecret zabbix
Обращаю внимание на выделенный путь. Если не сработает со звездочкой, то укажите правильный путь в соответствии с устанавливаемой в данный момент времени версией.
Более подробную информацию о настройке сервера баз данных mysql для работы заббикс сервера, а так же информацию по оптимизации нагруженной базы данных смотрите в отдельной статье —очистка, оптимизация, настройка mysql базы Zabbix
Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД.
Этих минимальных настроек достаточно, для работы сервера. Но я рекомендую еще увеличить параметрTimeout. Он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда этого бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.
Если у вас примерно так же, значит все в порядке. Сервер штатно запустился и готов к работе.
Для продолжения настройки сервера мониторинга, нам нужно зайти в web интерфейс. Перед этим отредактируем файл конфигурации web сервера. Открываем конфиг и раскомментируем одну строку, изменив ее под свой часовой пояс.
Сохраняем файл. Теперь запускаем httpd и добавляем его в автозагрузку.
# systemctl start httpd
# systemctl enable httpd
Можно заходить на веб интерфейс по адресу http://192.168.1.25/zabbix, где 192.168.1.25 ip адрес сервера, где устанавливаем и настраиваем мониторинг заббикс.
На этом этапе важно проверить настройки firewalld. Если вы его не настраивали и не отключали, то скорее всего по указанному адресу у вас ничего не откроется. В данной статье я не буду отвлекаться на настройку фаервола, это тема отдельного разговора. Подробно вопроснастройки iptablesя рассмотрел отдельно. Либо настройте firewalld, либо просто отключите. В приведенной ссылке рассказано, как это сделать.
Открываем в браузере web интерфейс zabbix. Нас встречает страница приветствия. Если у вас то же самое, вы на верном пути.
Жмем Next step и попадаем на страницу проверок. Если все делали точно по инструкции, то все проверки у вас будут пройдены.
Двигаемся дальше и указываем параметры для подключения к mysql. Данные те же, что мы указывали ранее при создании БД и пользователя.
На следующем этапе надо указать адрес сервера и порт, на котором он будет работать. Оставляем значения по-умолчанию.
Еше раз проверяем все настройки. Если все в порядке, двигаемся дальше на заключительный этап установки.
Если поучили это сообщение, то поздравляю, установка сервера мониторинга Zabbix 3.4 закончена.
Нажимаете Finish и попадаете на страницу логина в систему. Данные по умолчанию следующие:
Пользователь
Admin
Пароль
zabbix
Нас встречает голая панель управления, так как никаких параметров мы не наблюдаем и не имеем ни одного объекта сбора данных.
Сбор данных мы настроим чуть позже, установив zabbix агент на этот же сервер. А пока сделаем некоторые минимальные и необходимые настройки на сервере.
Настройка email оповещений
В версии 3.4 (появилась с версии 3.0) есть настройка уведомленийс авторизацией по smtp. Раньше для реализации такой очевидной и необходимой функции приходилось пользоваться сторонними программами и скриптами. Я писал отдельно об этом —отправка email уведомлений с авторизацией smtp. Теперь все это в прошлом. Настроим отправку уведомлений через web интерфейс.
Идем в разделAdministration -> Media typesи нажимаем наEmail.
Указываем следующие настройки для отправки почты черезgmail.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения. Для этого идем в Administration -> Users, выбираем пользователяAdmin.
Идем в закладку Media и жмемadd.
Указываем почтовый ящик получателя
ЖмемAdd, затемUpdate. Дальше нужно активировать отправку уведомлений по событиям. Для этого идем вConfiguration -> Actionsи жмем наDisabled, чтобы она сталаEnabled.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.
Если вам нужныоповещения в telegram, то читайте отдельную статью на эту тему. Так же рекомендую ознакомиться с материалом на темунастройки повторяющихся уведомленийв заббиксе. Для многих триггеров может оказаться очень полезной возможностью. Например, можно каждый день напоминать об окончаниивремени делегирования домена, пока он не будет продлен.
Установка zabbix agent на CentOS 7
Добавим теперь хотя бы одного агента мониторинга, чтобы проверить работу системы. Устанавливать будем на этот же сервер. Делается это просто:
# yum install zabbix-agent
Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на удаленную машину, то в файле конфигурации агента/etc/zabbix/zabbix_agentd.confнужно будет задать следующие параметры:
# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.25
ServerActive=192.168.1.25
Hostname=srv10 # имя вашего узла мониторинга, которое будет указано на сервере zabbix
# cat /var/log/zabbix/zabbix_agentd.log
21197:20150912:212555.935 no active checks on server [127.0.0.1:10051]: host [Zabbix server] not monitored
У меня там следующая ошибка. Я знаю с чем она связана. На сервере по-умолчанию уже добавлен локальный host для мониторинга, но он отключен. Чтобы его включить, идем в разделConfiguration -> Hostsи активируем Zabbix server нажатием наDisabled, чтобы он сталEnabled.
Можно подождать, либо вручную перезапустить агент, чтобы сразу проверить изменения:
# systemctl restart zabbix-agent
Для надежности, проверяем еще раз лог файл на наличие ошибок. Их быть не должно. Агент заработал и начал отправлять данные на сервер. Чтобы проверить поступление данных, надо подождать пару минут и идти в разделMonitoring -> Latest data. Выбрать там наш единственный хост и нажатьApply.
Видно, что данные уже начали поступать.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
# systemctl stop zabbix-agent
Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяемDashboard, виджетProblems.
При наведении мышки на словоDoneв столбце Actions вы увидите информацию о том, что оповещение по email было отправлено пользователю Admin. На почте у вас будет письмо:
После возобновления работы агента, вы еще раз получите уведомление о том, что он теперь доступен.
Установка zabbix агент на Windows и настройка мониторинга
Теперь для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок http://www.zabbix.com/download.phpи скачиваем самый последний агент для Windows. Все агенты находятся в разделе Zabbix pre-compiled agents. Прямая ссылка на последнюю версию на момент написания статьи — zabbix_agents_3.4.0.win.zip
Распаковываем архив. Создаем на диске С: папкуzabbixи купируем туда следующие файлы:
zabbix_agentd.exe
zabbix_get.exe
zabbix_sender.exe
zabbix_agentd.win.conf
Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:
Теперь открываем оснастку со службами, ищем службу с именемZabbix agentи запускаем ее.
Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.
Тип правила: Для порта;
Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем разделConfiguration -> Hostsи жмемCreate host.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладкуTemplatesи нажимаем Select. Выбираем шаблон Template OS Windowsи жмем маленькую ссылкуadd, затем большую.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, вLatest data, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных и серверных систем.
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
Несмотря на то, что новые версии zabbix выходят достаточно часто, материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов. Вот пример мониторинга служб и сервисов, приведенных на моем сайте:
Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться.
На этом установка и базовая настройка сервера мониторинга zabbix 3.4 завершена. Советы, замечания, исправления прошу оставлять в комментариях.
Видео
Привожу видеоролик по установке и настройке предыдущей версии zabbix. Принципиально ничего не изменилось, кроме версий установленных программ.
1-го октября 2018 года вышла новая версия бесплатной системы мониторинга, которую я постоянно использую. Я подробно расскажу об установке и начальной настройке Zabbix 4.0 на примере систем CentOS, Debian, Ubuntu со скриншотами и пояснениями. В этой версии много интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.
На сегодняшний день, по моему мнению, из бесплатных систем мониторинга именно Zabbix самая популярная и функциональная. Упоминания о ней я постоянно встречаю в технических статьях специалистов различного масштаба и организаций. К примеру,СберТехиспользует Zabbix как единую платформу мониторинга. ИТ отдел сети магазинов Магнит так же использует zabbix как основную систему мониторинга. Пару лет назад я смотрел выступление представителя ИТ отдела Магнита, где он подробно описывал структуру системы. На тот момент это была самая крупная инсталляция заббикса с тысячами прокси серверов для сбора данных из магазинов по всей стране. Упоминания о мониторинге заббикс я встречал у специалистов компаний 1С, Крок, Яндекс.Деньги и других. Перечислил только то, что запомнилось.
Нужно понимать, что Zabbix — система мониторинга общего назначения. У нее нет специализации в микросервисы, сеть, железо и т.д. В связи с этим, всегда может найтись инструмент, который сможет выполнять ту или иную задачу удобнее и эффективнее, чем zabbix. Но это не умоляет остальных достоинств системы. Я их вижу в первую очередь в том, что в ней можно настроить мониторинг всего, что угодно. Главное научиться подавать значения в систему. А для этого есть масса инструментов — как самих агентов, так и скриптов, которые можно подключать к сбору данных.
Система мониторинга Zabbix позволяет так или иначе завести на нее все обслуживаемые сервисы. Где-то это может быть не очень просто, но в любом случае, один универсальный инструмент удобнее, чем несколько. Мне всегда удавалось настроить желаемый мониторинг с помощью заббикса. Если не было готовых шаблонов или подходящих агентов для сбора, писал скрипты и передавал ими данные агенту. С моими (и не только) решениями по мониторингу можете познакомиться в отдельном разделеzabbix.
Чем меня еще подкупает zabbix — хорошая документация и большое комьюнити. Много выступлений от различных специалистов с описанием внедрений. Все это облегчает работу с системой. Проще принять решение как поступить в той или иной ситуации. Сами разработчики постоянно проводят встречи, приглашают выступающих, потом выкладывают видео. В общем, система со всех сторон оставляет благоприятное впечатление.
Я буду устанавливать и настраивать работу сервера zabbix на nginx, что несколько отличается от дефолтной установки, которая включает в себя веб сервер apache. В связи с этим, нам необходимо будет подготовиться.
Подготовка сервера CentOS к установке
Первым делом вам необходимо установить и настроить сервер CentOS 7. Перед установкой сервера Zabbix нам также нужно подготовить Web сервер. У меня есть отдельная статья понастройке web сервера на centos. Там все подробно описано. Сейчас же я кратко и без лишних комментариев выполню минимум необходимых действий для работы заббикса. Так же я не буду останавливаться на настройке iptables. Эта отдельная тема и мне не хочется ее касаться в этой статье. Либо настройте сами по моим инструкциям, либо просто отключите firewall:
Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.
# /usr/bin/mysql_secure_installation
Внесем некоторые изменения в стандартный конфиг mariadb, чтобы потом не заниматьсяочисткой и оптимизацией базы для zabbix. Для этого открываем конфиг mysql /etc/my.cnf.d/server.cnfи приводим его к следующему виду.
# mcedit /etc/my.cnf.d/server.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
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
[server]
[galera]
[embedded]
[mariadb]
[mariadb-10.3]
Я добавил минимум настроек, отличных от дефолта. В статье про оптимизацию mysql их приведено гораздо больше, но со временем я понял, что зря это сделал. Реально у меня нет большого опыта в тонкой настройке mysql. Никаких тестов и проверок я не делал, а данные брал на основе других статей в интернете. Не факт, что там не было ошибок. В итоге сейчас тут только заданы некоторые важные параметры по innodb, в частности указание хранить каждую таблицу в отдельном файле, задан размер и количество бинарных логов и еще пару настроек, которые явно будут к месту (innodb_buffer_pool_size, innodb_buffer_pool_instances и innodb_flush_log_at_trx_commit). При желании, вы можете сами заняться тюнингом mysql. В общем случае, достаточно будет текущих настроек.
Перезапустите mariadb и убедитесь, что она запустилась.
# systemctl restart mariadb
# systemctl status mariadb.service
Сервер баз данных mysql для нашего zabbix сервера готов. На этом предварительные настройки сервера закончены. Приступаем к установке.
Установка сервера Zabbix 4.0 в CentOS
Для того, чтобы установить Zabbix Server 4.0 нужно подключить репозиторий актуальной версии.
В зависимостях пакетов будет 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
Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.
Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметрTimeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется для получения метрики. Поставьте секунд 10.
Это нормально, сейчас настроим SELinux для нормальной работы Zabbix. Для этого устанавливаем пакет policycoreutils-python, скачиваем готовый модуль для SELinux и применяем его.
Снова проверяйте log файл. Теперь ошибок быть не должно. Как я уже сказал, если у вас отключен SELinux, то делать описанные выше манипуляции с модулем не надо.
С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/conf.d/default.conf. Приводим его к следующему виду:
Проверим конфиг на ошибки и если все в порядке, перезапустим 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
Маленький, но важный нюанс. Нам надо изменить права доступа на некоторые папки. Назначить владельца nginx.
Этот шаг нужно будет проделывать после каждого обновления 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 Frontend.
Установка сервера Zabbix 4.0 в Ubuntu, Debian
С установкой Zabbix на сервер с Ubuntu или Debian попроще, так как в стандартных репозиториях посвежее версии софта, можно использовать их. Подключаем репозитории zabbix 4.0.
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории —https://repo.zabbix.com/zabbix/4.0/Дальнейшая установка не будет отличаться от текущей.
Обновляем информацию о репозиториях, а заодно и последние обновления поставим:
Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.
# /usr/bin/mysql_secure_installation
Отредактируем некоторые параметры Mariadb в конфиге /etc/mysql/mariadb.conf.d/50-server.cnf. Добавляем туда в секцию [mysqld]:
# 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 и убедитесь, что она запустилась.
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.
Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.
Нам нужно сделать конфиг 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.
Покажу на примере настроек ящика в Яндексе.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем вАдминистрирование -> Пользователи, выбираем своего пользователя. Идем во вкладку Оповещения и жмемДобавить. Добавляйте свой ящик и нажимайте Обновить.
Зайдите еще раз в учетную запись и убедитесь, что ящик добавили.
Дальше нужно активировать отправку уведомлений по событиям. Для этого идем вНастройка -> Действияи жмем наДеактивировано, чтобы сталоАктивировано.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хост к мониторингу.
Если вам нужныоповещения в telegram, то читайте отдельную статью на эту тему. Так же рекомендую ознакомиться с материалом на тему настройкиповторяющихся уведомлений в заббиксе. Для многих триггеров может оказаться очень полезной возможностью. Например, можно каждый день напоминать об окончаниивремени делегирования домена, пока он не будет продлен.
Я обычно изменяю стандартный шаблон уведомлений заббикса. Располагается он в разделеНастройка -> Действия, называется Report problems to Zabbix administrators.
Я вношу следующие изменения. Меняю шаблон темы письма при проблеме и восстановлении. В стандартном шаблоне в теме письма нет информации об имени хоста. В некоторых шаблонах триггера указано имя хоста, но есть и такие, где нет этой информации. В итоге в оповещении сразу не видно, о каком хосте идет речь. В моем же шаблоне сразу в теме будет указано имя хоста далее статус, а потом все остальное. Вот пример старого и нового оповещения:
Мне мой вид кажется более наглядным. Шаблон меняет на следующий:
{HOST.NAME} - {TRIGGER.STATUS}: {TRIGGER.NAME}
Он одинаковый и для проблемы, и для восстановления.
Изменение стандартных шаблонов мониторинга
На своих серверах мониторинга я изменяю некоторые параметры стандартных шаблонов, чтобы было меньше бесполезных и неинформативных срабатываний. Вот список того, что я делаю.
В шаблоне Template App Zabbix Agentотключаю триггер Version of zabbix_agent(d) was changed on {HOST.NAME}. Если его оставить, то после каждого обновления zabbix агента вы будете получать уведомление. Лично мне эта информация не нужна.
В шаблоне Template OS Linuxменяю в триггере Disk I/O is overloaded on {HOST.NAME}значение со стандартных 20% до 50%. Я считаю, что начинать беспокоиться и смотреть на машину надо при этом значении. Но вы можете подобрать под свои нужды.
В этом же шаблоне в правиле обнаружения Mounted filesystem discoveryдобавляю еще один прототип триггера, скопировав Free disk space is less than 20% on volume {#FSNAME}. Новый шаблон полностью идентичен скопированному, только вместо 20% указываю 5% и ставлю важность с «Предупреждение» на «Высокая». Я добавляю еще одно оповещение, если свободного места на дисках остается меньше 5%. Стандартные 20% очень высокий порог, особенно если большой диск. Оперативное решение проблемы не требуется. Из-за этого часто откладываешь чистку диска на потом и забываешь о ней. Теперь будет еще один страховочный триггер, после которого точно надо идти и прямо сейчас разбираться с местом. В триггере на 20% свободного места ставлю разрешение на закрытие триггера вручную.
В этом же шаблоне в триггере Lack of free swap space on {HOST.NAME}меняю порог срабатывания с 50% до 20%, либо вообще отключаю его. Сейчас много серверов работают без swap. Хотя лично я всегда его создаю и подключаю.
В шаблоне Template OS Windowsотключаю Правило обнаружения Windows service discovery. В дефолтном варианте оно генерирует очень много ненужных итемов и оповещений. Если нужен мониторинг какой-то службы windows, я делаю для этого отдельный шаблон.
Общие настройки
В общих настройках zabbix server, которые располагаются в разделеАдминистрирование -> Общиея меняю следующие параметры:
В разделеРабочее времявыставляю актуальные рабочие часы.
В разделеОпции отображения триггеровменяю значения Отображать триггеры в состоянии ОК в течениии Мигание триггеров при изменении состоянияна 1 минуту. Это просто мои предпочтения. Мне не нравится, когда триггеры долго мигают, либо висят уже закрытые.
В разделеПрочееменяю Обновление неподдерживаемых элементов данныхна 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 если это сам сервер заббикса
# cat /var/log/zabbix/zabbix_agentd.log
14154:20181004:201307.800 Starting Zabbix Agent [Zabbix server]. 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 [main process]
14157:20181004:201307.801 agent #3 started [listener #2]
14159:20181004:201307.802 agent #5 started [active checks #1]
14155:20181004:201307.804 agent #1 started [collector]
14158:20181004:201307.806 agent #4 started [listener #3]
14156:20181004:201307.810 agent #2 started [listener #1]
Все в порядке. Идем в веб интерфейс и проверяем поступление данных. Для этого идем в разделМониторинг -> Последние данные. Указываем в разделеУзлы сетиZabbix Serverи ждем поступления первых данных. Они должны пойти через 2-3 минуты после запуска агента.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
# systemctl stop zabbix-agent
Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем главную панель, виджетПроблемы.
Проверяйте email ящик. Туда должно прийти уведомление от заббикс сервера.
Установка zabbix агент на Windows
Для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузокhttps://www.zabbix.com/download_agentsи скачиваем самую последнюю версию агента для Windows.
Распаковываем архив. Создаем на диске С: папку zabbix и купируем туда следующие файлы:
zabbix_agentd.exe
zabbix_get.exe
zabbix_sender.exe
zabbix_agentd.win.conf
Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:
Открываем оснастку со службами, ищем службу с именем Zabbix agent и запускаем ее.
Не забываем создать разрешающее правило в Брандмауэр, если он у вас включен. Для этого идем в Панель управления\Система и безопасность\Брандмауэр Windows — Дополнительные параметры — Правило для входящих подключений — Создать правило.
Тип правила: Для порта;
Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем разделНастройка -> Узлы сетии жмемСоздать узел.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладку Шаблоны и нажимаем Выбрать. Выбираем шаблон Template OS Windows и жмем маленькую ссылку Добавить, затем большуюДобавить.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Последних данных, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
На этом установка и базовая настройка сервера мониторинга zabbix 4.0 завершена. Советы, замечания, исправления прошу оставлять в комментариях.
Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться. Бывают, конечно, исключения, но редко.
Материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов. Вот пример мониторинга различных служб и сервисов, приведенных на моем сайте. Возможно, что-то из этого вам будет интересно и полезно.