- Блог белорусского сисадмина
- полезные записки
- Мониторинг логов в Zabbix и возврат триггера в OK
- Мониторинг лог файла в Zabbix
- Введение
- Настройка мониторинга логов
- Создание триггера на событие из лога
- Заключение
- Zabbix — Мониторинг логов
- Задача
- Подготовка сервера, который мы будем мониторить
- Настройка мониторинга в Zabbix
- UPD 03.04.2019
- Мониторинг лог файла в zabbix
- Zabbix: создание элемента данных (item) для наблюдения за лог-файлом и добавление триггера
- Обзор системы мониторинга Zabbix
- Архивы Zabbix – Администрирование
- Устанавливаем систему мониторинга zabbix
Блог белорусского сисадмина
полезные записки
Мониторинг логов в Zabbix и возврат триггера в OK
Zabbix может многое. Главное — суметь это настроить 🙂 Одна из полезных возможностей — мониторинг лог-файлов на наличие определенных записей. Если вы хотите держать руку на пульсе событий при мониторинге серверов, то без мониторинга логов никак не обойтись: почти все серьезные ошибки пишутся в логи и во многих случаях гораздо эффективнее мониторить один-два лога, чем настраивать отслеживания статуса 50 сервисов, работоспособность которых не всегда легко проверить.
Собственно, в самой настройке мониторинга логов нет ничего сложного: добавляем соответствующий Item, пишем регулярное выражение для триггера и начинаем получать уведомления! Например, мы хотим отслеживать все ошибки из System лога на серверах под управлением OS Windows. Для этого, создаем следующий Item:
Параметры следующие: System — лог, который отслеживаем; второй параметр — регулярное выражение, которое ищем (пропущен, берем все записи); третий — «Error» — важность, согласно классификации ОС; четвертый — любой источник; пятый — @eventlog — макрос, который исключает события с идентификаторами ^(1111|36888|36887|36874)$; шестой — максимальное кол-во строк, которое мы отправляем серверу в секунду (неограниченное); последний параметр — skip — заставляет сервер читать только новые записи лога, а не перечитывать его весь.
В качестве триггера мы используем следующую строку:
Т.е. мы берем любую строку, которая попала в Item и высылаем уведомление.
После такой настройки мы получим первую ошибку из лога и триггер будет висеть в состоянии PROBLEM до скончания веков, т.к. нет события, которое его переводит в состояние OK. Для решения этой проблемы необходимо добавить к триггеру еще одно условие: наличие новых данных в течение промежутка времени, меньшего, чем время опроса Item. Т.е. если мы проверяем лог на ошибки раз в минуту, то нам надо поставить любой промежуток времени, меньший, чем минута. Итоговый триггер будет выглядеть как-то так:
Выглядеть это будет как «нашли что-то в Item» И «за последние 10 секунд были получены новые данные». При следующей проверке триггер перейдет в состояние OK, т.к. за последние 10 секунд новых данных получено не было. Других способов возврата триггера для лога в нормальное состояние в заббиксе версии 2 не предусмотрено.
Мониторинг лог файла в Zabbix
Zabbix умет анализировать любой лог файл, сохранять его в свою базу, рассылать алерты по каким-то событиям. Я решил использовать эту возможность для анализа лог файла утилиты acpupsd для отправки оповещений об отключении электричества. Решается данная задача стандартным функционалом заббикса, описанного в документации.
Введение
Ранее я рассказывал об использовании утилиты управления упсами марки apc — apcupsd. Я показал, как установить apcupsd на hyper-v и xenserver для корректного завершения работы при отключении электричества. Рекомендую ознакомиться, если вас интересует этот вопрос. Его не всегда получается быстро и удобно решить. На помощь приходит apcupsd.
Указанные конфигурации у меня успешно работают, проверено годами. Я решил настроить отправку оповещений на почту через zabbix при пропадании электричества. Да и просто хочется хранить информацию об инцидентах в одном месте. Почтовые сообщения не всегда будут доставлены, нужно следить, чтобы на резервное питание были подключены все устройства, которые обеспечивают связь с интернетом. Частенько бывает, что при выключении электричества у провайдера так же выключается оборудование и связи нет. Либо ваш свитч, к которому подключен сервер, выключится и сообщение не будет доставлено.
Заранее позаботьтесь об этих вещах. Пишу об этом, потому что сам недавно на одном объекте все запитал от упсов, но забыл про свитч. В итоге об отключении электричества я узнал уже после того, как его вернули назад и сервера автоматически поднялись. Если у вас еще не настроен сервер мониторинга, рекомендую мою подробную статью с видео об установке и настройке zabbix на centos 9 или установка zabbix 3.4 на debian 9.
Настройка мониторинга логов
Для того, чтобы мониторить лог файл, на сервере должен быть установлен zabbix agent, а сам сервер добавлен в панель мониторинга. Я буду следить за логом программы apcupsd, который располагается по пути /var/log/apcupsd.events. Идем в веб интерфейс заббикса и добавляем новый итем к интересующему нас хосту. Если у вас таких будет несколько, то создавайте сразу шаблон. В моем случае у меня один сервер, поэтому я буду добавлять новый элемент сразу на него.
Создаем новый итем со следующими параметрами:
Name | Имя нового итема. Можете указать любое название. |
Type | Тип элемента. Обязательно выбираем Zabbix agent (active). По-умолчанию будет другой тип стоять. |
Key | Ключ данных, log — тип, в квадратных скобках путь до лог файла. |
Type of information | Указываем тип информации, поступающей в итем. |
Остальные параметры оставляете на свое усмотрение. Рекомендую время обновления итема ставить поменьше, чтобы оперативно получить информацию об инциденте. У меня стоит 30 секунд.
После того, как вы сохраните новый итем, через несколько минут начнут поступать данные. Проверять их как обычно в Latest data. В данной конфигурации будут сохраняться все строки из файла. В моем случае это не страшно, так как записей будет очень мало. Они создаются только по событиям в электро сети, а они случаются редко, поэтому я не стал делать фильтр по строкам или словам.
Но это только пол дела. Мы стали собирать логи, теперь нам нужно настроить отправку оповещения при пропадании электричества.
Создание триггера на событие из лога
Мы будем слать оповещение не только в момент отключения электричества, но и тогда, когда оно снова появится. Так что в триггере будут два условия:
- Условие активации события.
- И условие его прекращения.
Открываем вкладку с триггерами хоста и добавляем туда новый триггер со следующими параметрами:
Name | Имя триггера. Может быть любым. |
Problem expression | |
Recovery expression |
Рассказываю подробнее, что тут написано. xm-xen02 — имя сервера. Power failure. — строка в лог файле, которая появляется при отключении электричества. Когда оно возвращается, появляется запись Power is back. В общем виде лог выглядит примерно следующим образом:
Становится понятно, почему я взял именно эти строки. На этом все. После сохранения триггера он начнет работать и следить за итемом, который собирает строки из лога. Как только появятся строки, попадающие под условие, вы получите оповещение.
Заключение
Отладить работу оповещения об отключении электричества достаточно трудно, так как дергать по этому поводу шнур с питанием не хочется. Я пошел другим путем. Во время отладки использовал общий лог файл /var/log/messages и останавливал службу chronyd. Во время остановки, она пишет информацию об этом в лог файл, а при запуске так же сообщает, что запустилась. Я просто настроил итем и триггер на нужные строки и убедился, что все работает как надо. После этого уже сделал по аналогии итемы и триггеры для apcupsd. Рекомендую поступить похожим образом и потестировать функционал.
Zabbix — Мониторинг логов
Zabbix — Мониторинг логов
Задача
Требуется мониторить логи Centos 7 /var/log/messages на предмет записи «Out of memory: Kill process»
Подготовка сервера, который мы будем мониторить
Добавляем файл /var/log/messages в группу zabbix и назначить на него права доступа 640
Проверяем настройки zabbix agent.
Настройка мониторинга в Zabbix
Настройки — Узлы сети — выбираем наш сервер, на котором мы будем мониторить логи.
Добавляем новую группу элементов данных:
Переходим во вкладку «Группы элементов данных», нажимаем «Создать группу элементов данных», я назвал ее log.
Добавляем новый элемент данных:
Переходим во вкладку «Элементов данных», нажимаем «Создать элемент данных»
Добавляем новый триггер:
Переходим во вкладку «Триггеры», нажимаем «Создать триггер»
Триггер срабатывает при наличии строки Kill в пересылаемых данных и отключается через 30 секунд отсутствия новых данных.
UPD 03.04.2019
Бывают случаи, когда в элементах данный узла сети висит сообщение
И из-за этого элемент данных не активен, следовательно логи не приходят на почту
Это случается из-за следующих моментов:
- SeLinux блокирует zabbix-agent
- права доступа на файл /var/log/messages принадлежат пользователю root
Что бы добавить zabbix-agent в исключение для SeLinux, устанавливаем утилиту policycoreutils
И выполняем команду
После этого надо перезапустить zabbix-agent
Что бы открыть доступ для zabbix-agent на чтение файла /var/log/messages, изменим права доступа
Мониторинг лог файла в zabbix
Zabbix: создание элемента данных (item) для наблюдения за лог-файлом и добавление триггера
В продолжение статей о сервере мониторинга Zabbix – создадим новый элемент данных (item), который будет отслеживать файл лога. К нему – добавим триггер (trigger), который должен срабатывать при появлении определённой строки в файле.
Предполагается, что сервер установлен согласно статье CentOS: установка сервера мониторинга Zabbix, и к нему подключен для наблюдения хост, согласно статье Zabbix: настройка мониторинга — элементы данных (items), графики (graphs), шаблоны (teamplates).
Одно различие – проверки выполняются на локальном хосте.
Начнём с настройки zabbix-agent. Редактируем файл /etc/zabbix/zabbix_agentd.conf:
# устанавливаем в 1, что бы разрешить удалённое выполнение команд – потребуется в будущем для выполнения дейстий (actions)
EnableRemoteCommands=1 # включаем логгирование выполнения удалённых команд
LogRemoteCommands=1 # определяем агенту, какой IP адрес прослушивать для получения команд, указывается внешний IP
ListenIP=127.0.0.1 # задаём внешний IP сервера, с которого будут поступать команды на выполнение активных проверок
ServerActive=127.0.0.1 # задаём имя хоста, должно совпадать с полем Host name в конфигурации хоста на zabbix-сервере
Hostname=lms-teamcity # разрешаем запуск агента от пользователя root (можно попробовать и без этого)
AllowRoot=1
Последнюю опцию можно установить, например, в случае ошибок вида:
12503:20131008:131447.267 cannot stat ‘/home/teamcity/logs/limits-app.log’: [13] Permission denied
12503:20131008:131447.267 Active check [log[“/home/teamcity/logs/limits-app.log”,”DEBUG”]] is not supported. Disabled.
Не забываем после каждого изменения в файле конфигурации zabbix-агента перезапустить его:
# service zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
Проверяем лог-файл агента:
# tail /var/log/zabbix/zabbix_agentd.log
23011:20131009:105219.265 Got signal [signal:15(SIGTERM),sender_pid:9288,sender_uid:0,reason:0]. Exiting …
23010:20131009:105219.265 Got signal [signal:15(SIGTERM),sender_pid:9288,sender_uid:0,reason:0]. Exiting …
23008:20131009:105219.265 Got signal [signal:15(SIGTERM),sender_pid:9288,sender_uid:0,reason:0]. Exiting …
23008:20131009:105221.272 Zabbix Agent stopped. Zabbix 2.0.8 (revision 38017).
9302:20131009:105223.459 Starting Zabbix Agent [lms-teamcity]. Zabbix 2.0.8 (revision 38017).
9308:20131009:105223.462 agent #4 started [active checks]
9306:20131009:105223.463 agent #2 started [listener]
9307:20131009:105223.464 agent #3 started [listener]
9305:20131009:105223.464 agent #1 started [listener]
9304:20131009:105223.464 agent #0 started [collector]
Проверяем, под каким пользователем запустился агент:
# ps aux | grep zabbix_agent
root 9159 0.2 0.0 105440 1016 pts/10 S+ 10:50 0:00 less /var/log/zabbix/zabbix_agentd.log
root 9302 0.0 0.0 74364 1272 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9304 0.0 0.0 74364 1208 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9305 0.0 0.0 74364 1264 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9306 0.0 0.0 74364 1232 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9307 0.0 0.0 74364 1028 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9308 0.0 0.0 74364 1320 ? S 10:52 0:00 /usr/sbin/zabbix_agentd
root 9362 0.0 0.0 103240 860 pts/8 S+ 10:52 0:00 grep zabbix_agent
Переходим к настройке сервера.
В в разделе Configuration > Hosts напротив нужного хоста – нажимаем items:
Кликаем по Create item:
Обязательно указать Type – Zabbix agent (active). Про активный тип проверок можно читать .
Key – ключ для элемента данных, подробно описаны . На примере проверки лог-файла – указываем путь/к/файлу,выражение,кодировка,количество_строк:
Проверяется файл /home/teamcity/logs/limits-app.log. Можно указать выражение (regexp), кодировку и количество строк, передаваемых в секунду:
Что бы использовать только параметр “количество строк” – разделите пустые поля простыми запятыми, например:
Type of information – Log
Остальные параметры опциональны.
Жмём Save, и переходим к созданию триггера (trigger), который будет срабатывать на этот элемент данных (item).
Кликаем на triggers:
Кликаем на Create trigger:
Заполняем поле Имя (Name). Что бы упростить задачу создания триггера и связать его с только что созданным элементом данных – жмём на Add, в появившемся окне жмём Select и выбираем наш элемент:
Выбираем приложение, далее – выбираем Function – это уже само выражение, согласно которому будет срабатывать триггер.
Логика такая: “Найти строку V в последних полученных данных от элемента lms-teamcity:log[“/home/teamcity/logs/limits-app.log”], если строка присутствует (N = 1, т.е. found) – то триггер срабатывает, и переходит в статус PROBLEM”.
1 – found
0 – otherwise
Что бы проверить как срабатывает выражение – жмём Expression constructor:
Выбираем Value = 0 (т.е. string (ERROR) не найдена), жмём Test и получаем результат FALSE – т.е. триггер не сработает или перейдёт в состояние OK, если перед этим был в PROBLEM.
Меняем Value = 1 (т.е. в последних полученных данных слово ERROR найдено) – и получаем результат TRUE:
Необходимо учитывать, что слова в выражении чувствительны к регистру.
Полный список функций для триггеров доступен и .
Сохраняем триггер, убеждаемся что он готов к работе:
Если есть ошибка “Trigger just added. No status update so far.” – попробуйте подождать 5 минут, либо – перейдите в редактирование триггера и без каких-либо изменений – и нажмите Save ещё раз. И, конечно же, не забывайте проверять логи агента (/var/log/zabbix/zabbix_agentd.log) и сервера (/var/log/zabbix/zabbix_server.log).
Переходим в Monitoring > Events, и наблюдаем как срабатывает триггер:
В следующий раз мы создадим Action (Действие), которое должно будет выполняться при срабатывании триггера. Это может быть либо выполнение команды/скрипта на наблюдаемом хосте, либо отправка письма-отчета о срабатывании.
Обзор системы мониторинга Zabbix
Zabbix создан для мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования. Это открытое решение распределенного мониторинга корпоративного класса, предоставляющее возможность проводить мониторинг многочисленных параметров сети а также состояния и работоспособности серверов.
Zabbix использует гибкий механизм уведомлений, что позволяет пользователям настраивать оповещения по почте практически для любого события. Это дает возможность быстро среагировать на возможные проблемы сервера. Система предлагает отличные возможности отчетности и визуализации данных, базируясь на собранных данных.
Система мониторинга поддерживает опрос данных и их получение. Все отчеты и статистика Zabbix, также как и параметры настроек, доступны через веб-интерфейс. Веб-интерфейс отслеживает состояние сети и жизнедеятельность серверов, а также дает возможность оценивать их работоспособность из любого места.
Хорошо настроенный Zabbix может играть важную роль в мониторинге ИТ инфраструктуры. По мере ознакомления с Zabbix, становилось очевидным то, что это отличная система контроля, которая достаточно проста в использовании (при грамотно отлаженном интерфейсе) однако, крайне полезна для крупных компаний с множеством серверов.
Обзор системы В основе развития Zabbix были поставленные такие задачи как простота работы на пользовательском уровне, использование малой части вычислительных ресурсов насколько это возможно, при этом обеспечивать быструю реакцию и документировать каждый аспект программного обеспечения.
Zabbix предоставляет возможность эффективного и надежного мониторинга распределенной IT инфраструктуры. Настройку всей распределенной установки можно выполнить из одного места, а именно через общий веб-интерфейс. Zabbix поддерживает вплоть до 1000 Нод в режиме распределенной установки. Каждая Нода отвечает за мониторинг своей собственной территории.
Нода может быть настроена локально и через Мастер Ноду, которая имеет копию конфигурационных данных всех Дочерних Нод. Настройку Дочерних Нод можно осуществить в режиме оффлайн, т.е. при отсутствии связи между Мастер и Дочерней Нодой. Иерархическое представление распределенного мониторинга позволяет иметь древовидную структуру Нод.
Каждая Нода пересылает необходимую информацию только своей Мастер Ноде. Все Ноды могут работать даже в случае проблем со связью. История собранных данных и событий хранится локально. Когда связь восстанавливается, тогда Дочерние Ноды будут выборочно отправлять данные Мастер Ноде.
Новые Ноды могут быть прикреплены к или откреплены от распределенной установки Zabbix без какой либо потери их функциональности. При этом нет необходимости перезапускать какую либо Ноду. Каждая Нода имеет свои собственные настройки и работает как обычный Zabbix сервер.
Структура Zabbix
Zabbix сервер – это ядро программного обеспечения. Сервер может удаленно проверять сетевые сервисы, является хранилищем, в котором хранятся все конфигурационные, статистические и оперативные данные, и он является тем субъектом в программном обеспечении Zabbix, который оповестит администраторов в случае возникновения проблем с любым контролируемым оборудованием. Zabbix прокси – собирает данные о производительности и доступности от имени Zabbix сервера. Все собранные данные заносятся в буфер на локальном уровне и передаются Zabbix серверу, к которому принадлежит прокси-сервер. Zabbix прокси является идеальным решением для централизованного удаленного мониторинга мест, филиалов, сетей, не имеющих локальных администраторов. Он может быть также использован для распределения нагрузки одного сервера. В этом случае, прокси только собирает данные, тем самым на сервер ложится меньшая нагрузка на ЦПУ и на ввод/вывод диска. Zabbix агент – контроль локальных ресурсов и приложений (таких как жесткие диски, память, статистика процессора и т.д.) на сетевых системах, эти системы должны работать с запущенным Zabbix агентом. Агенты являются чрезвычайно эффективными из-за использования родных системных вызовов для сбора информации о статистике. Веб-интерфейс – интерфейс является частью Zabbix сервера, и, как правило (но не обязательно), запущен на одном физическом сервере, что один Zabbix сервер. Работает на PHP, требует веб сервер.
Возможности
-Распределенный мониторинг вплоть до 1000 узлов. Конфигурация младших узлов полностью контролируется старшими узлами, находящихся на более высоком уровне иерархии. -Сценарии на основе мониторинга -Автоматическое обнаружение -Централизованный мониторинг лог-файлов -Веб-интерфейс для администрирования и настройки -Отчетность и тенденции -SLA мониторинг -Поддержка высокопроизводительных агентов (zabbix-agent) практически для всех платформ -Комплексная реакция на события -Поддержка SNMP v1, 2, 3 -Расширение за счет выполнения внешних программ -Гибкая система шаблонов и групп -Возможность создавать карты сетей
Мониторинг
-Сервер и агент следят за размером наблюдаемого журнала и временем последнего изменения (для logrt) в двух счетчиках. -Агент начинает читать лог-файл с той позиции, в которой он остановился последний раз. -Количество уже проанализированных данных (счетчик размера) и время последнего изменения (счетчик времени) хранятся в базе данных Zabbix и отправляются агенту, чтобы указать ему с какой именно позиции следует начинать читать лог-файл. -Всякий раз, когда лог-файл становится меньше, чем известное агенту значение счетчика размера, счетчик обнуляется и агент начинает читать лог-файл с самого начала, принимая во внимание счетчик времени. -Все файлы, соответствующие формату имени файла в соответствующей папке, анализируются каждый цикл и агент пытается получить следующую строку из лог-файла (для logrt). -Если в папке существует несколько соответствующих файлов с тем же временем последнего изменения, то агент будет лексикографически читать наименьший из этих файлов. -Zabbix агент обрабатывает новые записи лог-файла один раз на Период обновления в секундах. -Zabbix агент отправляет не более чем maxlines записей из лог-файла в секунду. Это ограничение предотвращает перегрузку сети и ресурсов процессора и переопределяет значение по умолчанию предусмотренное параметром MaxLinesPerSecond в файле настроек агента. -Специальное примечание для разделителей пути “”: если формат файла представлен как “file.log”, тогда там не должно быть папки “file”, поскольку невозможно однозначно определить, экранируется ли это символ ”.” или это первый символ в имени файла.
Цели, установка, настройки
Итак, сымитируем ситуацию для дальнейшей установки Zabbix. Имеется компьютер с FreeBSD, на котором кроме всего прочего, развернуты Веб-сервер Apache и север баз данных MySQL. На этот компьютер будет установлена серверная часть Zabbix, состоящая из сервера, Веб-интерфейса и агента, предназначенного для наблюдения за состоянием этого сервера. Для хранения базы данных Zabbix будет использоваться сервер MySQL.
Установка и настройка сервера Zabbix
Установку сервера Zabbix необходимо выполнить из портов: -cd /usr/ports/net-mgmt/zabbix-server -make config install clean В окне конфигурации следует убрать все лишние опции. Достаточно опций [X] MYSQL Use MySQL backend и [X] FPING Use fping for pinging hosts.
После завершения установки нужно создать базу данных zabbix и пользователя zabbix для работы с этой базой данных, запустив клиент MySQL командой mysql -u -p, введя пароль и выполнив следующие команды: -CREATE DATABASE zabbix CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON zabbix.
* TO zabbix@localhost IDENTIFIED BY ‘zabbix’; -FLUSH PRIVILEGES; После закрытия клиента MySQL следует создать и инициализировать таблицы базы данных zabbix, выполнив следующие команды: -cd /usr/local/share/zabbix/server/create -cat schema/mysql.sql data/data.sql data/images_mysql.
sql | mysql -u -p zabbix По умолчанию конфигурация сервера Zabbix хранится в файле /usr/local/etc/zabbix/zabbix_server.conf, однако, данный файл не создается во время установки. Вместо него предлагается заготовка zabbix_server.conf.sample. Достаточно создать ее копию с именем zabbix_server.conf: -cd /usr/local/etc/zabbix -cp zabbix_server.conf.sample zabbix_server.
conf На начальном этапе настройки необходимо и достаточно задать в данном файле параметры доступа к базе данных и местонахождение утилиты fping: -DBName=zabbix -DBUser=zabbix -DBPassword=zabbix -FpingLocation=/usr/local/sbin/fping Количество poller (процесса, предназначенного для сбора значений элементов данных, полученных агентами Zabbix) и trapper (процесса, предназначенных для приема результатов активных проверок, выполняемых агентами Zabbix) зависит от количества компьютеров и сетевых устройств (точнее – от количества элементов данных, связанных с компьютерами и сетевыми устройствами), за состоянием которых предполагается наблюдать. Увеличение количества poller и trapper повышает “параллельность” взаимодействия с агентами (производительность), но требует большее количество системных ресурсов, следовательно, необходимо находиться в балансе или просто пропорционально соответствовать количеством сетевых элементов ресурсам. Для тог, чтобы сервер Zabbix запускался при запуске операционной системы, необходимо добавить в файл /etc/rc.conf следующую строку: zabbix_server_enable=”YES” На этом начальная настройка сервера Zabbix завершается. Можно запустить сервер командой /usr/local/etc/rc.d/zabbix_server start, а затем выяснить его состояние командой /usr/local/etc/rc.d/zabbix_server status. Сообщение zabbix_server is running as pid …, является признаком того, что сервер запустился и работает, а сообщение zabbix_server is not running свидетельствует о возникновении ошибок запуска сервера. К сожалению на практике пользовательского уровня с большим трудом можно оценить плюсы и различные «бонусы» сетевого мониторинга zabbix из-за множества встречающихся сложностей при установке сервера и его настройках, например, при банальном отказе запуска сервера по причине нехватки памяти и т.д. Установку Веб-интерфеса Zabbix необходимо выполнить из портов: cd /usr/ports/net-mgmt/zabbix-frontend make config install clean В окне конфигурации нужно выбрать опцию [X] MYSQL Use MySQL backend (выбрана по умолчанию). После завершения установки следует добавить в файл конфигурации нужного виртуального хоста Веб-сервера Apache следующие строки: -Alias /zabbix /usr/local/www/zabbix – -AllowOverride All -Order deny,allow -Deny from all -Allow from … -Allow from … После изменения конфигурации виртуального хоста и перезапуска Веб-сервера Apache командой apachectl graceful нужно открыть в браузере URL http://host.company.com/zabbix (однако,host.company.com, необходимо заменить на имя выбранного виртуального хоста(stason)), при этом далее произойдет переход к настройке Веб-интерфейса Zabbix. Процесс настройки состоит из 8 этапов, во время которых придется согласиться с лицензионным соглашением, установить ограничения системных ресурсов интерпретатора PHP, достаточные для работы Веб-интерфейса Zabbix, а также указать параметры доступа к базе данных zabbix и к серверу Zabbix. В конце качаем предложенный файл конфигурации zabbix.conf.php и в папку /usr/local/www/zabbix/conf. По умолчанию для входа в Веб-интерфейс Zabbix необходимо использовать Login name admin и Password. Сразу после первого входа следует настроить профиль пользователя, перейдя по ссылке Profile в правом верхнем углу страницы. На открывшейся странице USER PROFILE : Zabbix Administrator необходимо нажать кнопку Password и задать новый пароль, а также изменить Language на RU.
Настройка отправки уведомлений по Email
Zabbix позволяет уведомлять пользователей о событиях посредством отправки сообщений по Email, через Jabber и с помощью GSM-модема, а также путем запуска произвольных скриптов. Я опишу только настройку отправки уведомлений по Email, которая включает в себя три этапа: -настройку средства передачи Email; -привязку средства передачи Email к профилю пользователя; -создание действия, обеспечивающего отправку уведомлений. Для настройки средства передачи Email необходимо зайти в раздел Администрирование » Типы средств передачи, а затем перейти по ссылке Email в столбце Описание. На открывшейся станице «настройки средств передачи» следует задать SMTP сервер, SMTP приветствие (приветствие, которое будет использоваться в SMTP-команде «HI») и SMTP адрес электронной почты (почтовый адрес отправителя сообщений): Для выполнения привязки средства передачи Email к профилю пользователя необходимо перейти на страницу «профиль пользователя»: Zabbix Administrator и нажать кнопку Добавить под списком Средства Передачи. В открывшемся окне Средство передачи нужно задать почтовый адрес получателя сообщений в поле Отправлять:
Добавление узлов сети
Автоматическое добавление узлов сети Благодаря встроенному механизму обнаружения, Zabbix позволяет организовать автоматическое добавление и удаление узлов сети. Рассмотрим добавление и удаление рабочих станций с Windows, на которые установлен агент Zabbix.
Для того, чтобы сервер Zabbix каждые полчаса сканировал заданный диапазон IP-адресов на наличие таких рабочих станций, добавлял найденные рабочие станции в группу узлов сети Windows Workstations и присоединял к ним шаблон Template_Windows, а также удалял из группы узлов сети Windows Workstations рабочие станции, которые не проявляют “признаки жизни” в течении предопределенного интервала времени, необходимо создать: правило обнаружения; действие, обеспечивающее добавление узлов сети; действие, обеспечивающее удаление узлов сети. Для создания действия, обеспечивающего добавление узлов сети, необходимо зайти в раздел Настройка » Действия, выбрать в выпадающем списке Событие значение Обнаружение и нажать кнопку Создать действие. На открывшейся странице «настройка действий» следует задать в поле Имя произвольное имя действия, удалить текст, содержащийся в полях Тема по умолчанию и Сообщение по умолчанию, а также задать условия действия и выполняемые операции. Для добавления условий нужно нажимать кнопку Новый, задавать в полях ввода формы Новая операция соответствующие значения и нажимать кнопку Добавить. Для добавления операций необходимо нажимать кнопку Новый, задавать в полях формы Изменить операцию соответствующие значения и нажимать кнопку Добавить. Добавить в группу “Windows Workstations” и Соединить с шаблоном “Template_Windows”. После внесения всех изменений страница «настройка действий» выглядит примерно так:
Вывод
Исследуя Zabbix, я пришел к выводу, что это очень интересная и полезная система мониторинга, которая позволяет, не только постоянно «наблюдать» за сетью и ее пользователями, но и оперативно обнаруживать сбои в работе сетевых серверов.
Zabbix значительно упрощает работу системного администратора крупной компании, дает возможность контролировать внутренние сетевые процессы, а также быстро реагировать на возможные угрозы неисправностей.
Разумеется, я не в силах полностью изучить zabbix, потому что не имею достаточных средств и возможностей конструировать полноценную сеть, контролируемую данной системой мониторинга.
Однако имея возможность скачать виртуальную модель частично работающего zabbix`a я ознакомился с начальными опциями, настройками и экспериментировал. Я уверен, что система мониторинга необходима для полноценной и «здоровой» работы крупного предприятия или компании, Zabbix прекрасно для этого подходит.
Архивы Zabbix – Администрирование
02 Ноя
Мониторить антивирус — дело хорошее, тем более когда на всё написано до нас.
Для настройки данного powershell скрипта скопируем его на сервер и в конфигурационном файле агента допишем: UserParameter=ksc[*], powershell -NoProfile -ExecutionPolicy «RemoteSigned» -File «C:pathksc.
ps1» -Username «username» -Userpass «_password_» -UserDomain «MYDOMAIN» -Action «$1» -ObjectType «$2» -Key «$3» -Id «$4» Теперь отредактируем скрипт. Ищем строчку Set-Variable […]
Мониторинг служб Для мониторинга служб нужно использовать две команды. service_state[MSSQLSERVER] для windows proc.num[smbd] для linux Примеры триггеров, когда не доступна служба: Для работы этих данных нужно в конфиг файл zabbix-agent добавить: UserParameter=net.if.discovery,ifconfig | awk ‘ BEGIN < print «<»data»:[» >/^[a-z0-9]+:/ < gsub(/:/,»»,$ 1); if ( $ 1 != «lo0» ) print «< »<#IFNAME>»:»» $ 1″» >,» > END < print «< »<#IFNAME>»:»lo0»> Сегодня рассмотрим мониторинг картриджей принтера по SNMP на примере HP LaserJet CP1525N. Создадим черный картридж. Сначала создадим элемент данных как на скриншоте (нажмите для увеличения). Что же такое SNMP OID и где его взять? На сервере Zabbix введите команду: snmpwalk -v 1 -c public Где -v 1 — версия протокола. Данная команда […] Для начала сделаем бэкап старых данных. Для этого выполним команду: mysqldump —user=»имя_пользователя» —password=»пароль» zabbix | gzip > /zabbix.sql.gz Теперь можно приступить к установке. На новом сервере выполним: sudo apt-get update; sudo apt-get upgrade; sudo apt-get install zabbix-frontend-php zabbix-agent zabbix-server-mysql apache2 php-mbstring libapache2-mod-php gzip php-mysql Придумываем пароль (пусть будет ‘Your.Password. Here’) и введем его в файл /etc/zabbix/zabbix_server.conf […] Автомитизируемый клиент будет состоять из zabbix агента, GSmartControl для контроля дисков и логирования установки. Скрипт установки. net use K: \192.168.XX. XXmonitor mkdir C:zabbix mkdir C:»Program Files»GSmartControl copy K:zabbix C:zabbix copy K:GSmartControl C:»Program Files»GSmartControl echo —————————————————— >> K:install. log set host=%COMPUTERNAME% installed, add this pc to Zabbix! echo %host% >> K:install.log set name=%COMPUTERNAME% echo Hostname=%name% >> C:zabbixzabbix_agentd.conf echo […] Для мониторинга в ОС Windows нужно сделать несколько вещей. 1) Установить ПО gsmartcontrol 2) Настроить Zabbix Agent, добавив строчку в zabbix_agentd. conf: UserParameter=HDD[*],@echo off && for /F «Tokens=10″ %A In (‘C»:Program Files (x86)GSmartControlsmartctl. exe» -A /dev/$1 ^| find /I «$2″‘) Do echo %A 3) Перезапустить Zabbix командами: net stop «Zabbix Agent» net start «Zabbix Agent» 4) создать […] В первую очередь нужно установить софт. apt-get install smarttools После установки можно посмотреть состояние диска командой: smartctl —all /dev/sda Выполнив данную команду вы увидите таблицу с параметрами. Нам важны четыре столбца: ATTRIBUTE_NAME (Имя атрибута), VALUE (текущее значение), THRESH (критическое значение) и RAW_VALUE. Если VALUE стало меньше THRESH в случае Pre-fail атрибута — существует большая вероятность, […] В первую очередь нужно установить необходимое программное обеспечение. apt-get install lm_sensors hddtemp Измерение температуры CPU. Запустим сенсоры. secsors-detect; systemctl start sensors Теперь можно добавить данные в Zabbix, открыв файл /etc/zabbix/zabbix_agentd.conf. В конце файла дописать строчку. UserParameter=sensor. cpu_temp,sensors|grep ‘temp2:’|cut -c16-17 Далее в Web-Интерфейсе Zabbix нужно добавить новый «Элемент данных». Его содержимое такого: Name — CPU temp Key […] Отрывка нет, потому что запись защищена. Итак, поговорив немного о возможностях системы мониторинга zabbix, приступим теперь к её установке. Как уже было сказано, есть сервер и есть агенты. Естественно, машина-сервер может (и должна!) мониторить сама себя, поэтому с неё и начнём.КомпиляцияПоследней стабильной версией zabbix на данный момент является zabbix-1.4. 5. Скачиваем её и начинаем установку: wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.4.5.tar.gz?download Собственно, всё. Для конфигурации необходимо разрешить сборку агента (–enable-agent), сервера (–enable-server) и выбрать используемую базу данных (для MySQL – –with-mysql –without-pgsql). Также подключаем использование библиотек curl и net-snmp. Для клиентских машин нужно будет собирать только агента (без сервера). Для любителей собирать RPMы в исходниках в дистрибутиве zabbix есть соответствующие .spec-файлы. Их можно использовать с помощью команды rpmbuild -ba имя_файла.spec Начальная настройка Для нормальной работы необходимо создать пользователя zabbix: Домашний каталог и пароль для этого пользователя не нужен. От его имени будут работать как сервер, так агент, поэтому для осуществления некоторых проверок этому пользователю понадобятся дополнительные права. Для этого можно будет включать его в разные группы, но это на первых порах необязательно. При необходимости, в каталоге misc дистрибутива есть примеры конфигурационных файлов, а также стартовых скриптов для запуска агента и сервера под несколько популярных операционных систем: debian, fedora, freebsd, gentoo, redhat, suse, tru64. Начальная конфигурация сервера Конфигурируем базу данных. Для MySQL это делается так: сначала создаём базу в phpMyAdmin или в командной строке mysql. Даём на базу необходимые права (при необходимости создаём пользователя, ну например, zabbix). Далее, необходимо заполнить базу: cat create/schema/mysql.sql | mysql zabbix Все параметры базы данных нужно записать в конфиг сервера zabbix_server.conf: Остальные параметры могут понадобиться для улучшения производительности. Для первоначальной конфигурации указанных достаточно. После этого можно начинать пытаться запустить сервер командой Как правило, сервер запускается и форкает несколько дочерних процессов. В случае неудачи стоит посмотреть лог-файл – в нём подробно будут указана причина. Довольно часто сервер не может запуститься из-за очевидных, но регулярных “граблей”: не создан пользователь zabbix, нет прав на запись в лог-файл или в pid-файл, неправильные параметры подключения к базе данных. Думаю, их разрешение достаточно очевидно. Начальная конфигурация агента Агент zabbix может работать в двух режимах: обычном – как демон (zabbix_agentd) и через inetd (zabbix_agent). Конфигурация в обоих случаях одинаковая, различаются лишь конфигурационные файлы: zabbix_agentd.conf и zabbix_agent.conf. Иначе, агент не будет обслуживать запросы от “неизвестной” машины. Кроме того, необходимо убедиться, что лог-файл агента и pid-файл агента находятся в каталоге, который доступен для записи пользователю zabbix. Это может быть или каталог /tmp или /var/log/zabbix – при сборке zabbix в RPM указывается именно этот каталог. Естественно, каталог должен быть и иметь соответствующие права. Начальная конфигурация фронтенда Для управления системой мониторинга и чтения данных используется PHP-фронтенд. Он может быть установлен как на той же машине, где работает zabbix-сервер, так и на другой – главное, чтобы был доступ к базе данных zabbix. В любом случае, фронтенд требует для работы Web-сервер и интерпретатор PHP с поддержкой того типа баз данных, который вы выбрали. Фронтенд , как и сервер необходимо настроить на работу с базой данных. Сначала нужно скопировать содержимое каталога frontends/php из дистрибутива в каталог htdocs вашего Web-сервера (или виртуального сервера). При первом заходе на страницу запустится мастер, который шаг за шагом проверит возможности Web-сервера, инетрпретатора PHP и сконфигурирует подключение к базе данных (параметры подключения нужно указывать такие же, как у сервера zabbix). Для сохранения конфигурационного файла каталог conf и фал conf/zabbix.conf.php должны быть доступны на запись пользователю процесса Web-сервера. После успешной установки фронтенда вы увидите экран входа в интерфейс управления системой мониторинга. Пользователь для входа по умолчанию admin без пароля. Войдя в систему, нужно сменить ему пароль, завести других пользователей и можно начать настраивать zabbix. Но об этом – уже в следующий раз.
]>» > ‘ Теперь осталось перезагрузить zabbix-agent
Устанавливаем систему мониторинга zabbix
tar xfz zabbix-1.4.5.tar.gz
cd zabbix ./configure –with-mysql –without-pgsql –enable-agent –enable-server –with-libcurl –with-net-snmp make
cat create/data/data.sql | mysql zabbix
cat create/data/images_mysql.sql | mysql zabbix
Для работы агента необходимо всего лишь прописать в его конфигурационном файле IP-адрес сервера. По умолчанию параметр Server=127.0.0.1.