вторник, 1 ноября 2011 г.

Обзор zabbix


Обзор системы мониторинга 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 прекрасно для этого подходит.

Комментариев нет:

Отправка комментария