Использование Zabbix для мониторинга критических систем. Мониторинг был и остается важнейшей частью системного и сетевого администрирования. Но если для маленькой локальной сети зачастую достаточно время от времени смотреть логи, то в случае крупных систем приходится использовать специализированные средства. Мониторинг большого количества устройств требует в помощь. Благо, в Zabbix все эти инструменты есть: это шаблоны, API. SNMP community, В данном примере используется макрос . Обнаружение, SNMP (Предварительный анализ, Настройка snmp. Мониторинг загрузки по SNMP Ожидайте новых видеоуроков, вопросы задавайте в комментариях в блоге. Для начала мониторинга устройства по SNMP, должны быть выполнены следующие шаги: . Для начала мониторинга устройства через SNMP, должны быть выполнены следующие . А что такое вообще таблица SNMP, как ее найти среди других объектов. Zabbix мог находить элементы данных в таких таблицах еще в момент. О том же, как настроить LLD с простыми индексами мы как раз . Об одном из них — Zabbix и поговорим сегодня. Введение. Начнем с архитектуры. Система мониторинга Zabbix состоит из нескольких подсистем, причем все они могут размещаться на разных машинах: сервер мониторинга, который периодически получает и обрабатывает данные, анализирует их и производит в зависимости от ситуации определенные действия, в основном оповещение администратора; база данных — в качестве таковой могут использоваться SQLite, My. SQL, Postgre. SQL и Oracle; веб- интерфейс на PHP, который отвечает за управление мониторингом и действиями, а также за визуализацию; агент Zabbix, запускается на той машине/устройстве, с которой необходимо снимать данные. Его наличие хоть и желательно, но, если установить его на устройство невозможно, можно обойтись SNMP; Zabbix proxy — используется в основном в тех случаях, когда необходимо мониторить сотни и тысячи устройств для снижения нагрузки на собственно сервер мониторинга. Логическая единица мониторинга — узел. Каждому узлу присваивается описание и адрес — в качестве адреса можно использовать как доменное имя, так и IP. Узлы могут объединяться в группы, к примеру группа роутеров, для удобства наблюдения. Каждому серверу соответствует несколько элементов данных, то есть отслеживаемых параметров. Поскольку для каждого сервера настраивать параметры, за которыми нужно следить, неудобно (особенно это верно для больших сетей), можно создавать узлы- шаблоны и каждому серверу или группе серверов будет соответствовать несколько шаблонов. В статье будут рассмотрены интересные сценарии использования Zabbix, но сначала опишем установку этого решения на RHEL- подобные системы с My. SQL в качестве БД. Установка и первичная настройка. Перво- наперво надо подключить репозиторий EPEL: # yum install http: //ftp. Затем поставить нужные пакеты: # yum install zabbix. Для чего нужен httpd и утилиты SNMP, полагаю, понятно. Далее будет описана настройка Zabbix для мониторинга некоторых из них. Также в свойствах Link вы можете настроить отображении линии красным в . Естественно захотелось прикрутить новое железо к Zabbix. В настройке итема выбираем так. Мониторинг с помощью Zabbix - это просто! В статье мы. Настройка SNMP на MikroTik. Zabbix настройка хоста для мониторинга. А вот Nmap нужен для некоторых проверок, чтобы заполнить элементы данных. Теперь необходимо настроить автозапуск служб и их запустить.# chkconfig httpd on. И конечно же, надо произвести начальную настройку My. SQL.# mysql. После этого начальную настройку можно считать завершенной. Конфигурационный файл Zabbix- сервера. Начальная страница настройки веб- интерфейса Zabbix. Примерно так выглядит начальная страница в первый раз после захода на нее. Мониторинг nginx и memcache. Для мониторинга nginx можно, разумеется, использовать самописные скрипты. Но в некоторых случаях, когда времени катастрофически не хватает, хочется найти что- нибудь готовое. В случае с nginx таким готовым решением будет набор питоновских скриптов ZTC. Для их установки сперва нужно установить некоторые пакеты: # yum install lm. Для этого необходимо импортировать шаблон. Template. Замечу, что лежит он именно на том компьютере, где установлен ZTC, так что если у тебя на сервере нет GUI, то файл придется копировать на машину, на которой установлен браузер и с которой собственно и ведется мониторинг. Не стоит забывать, что в этом наборе скриптов кроме мониторинга nginx есть еще мониторинг и других приложений, таких, например, как Mongo. DB. Настраивается он аналогично, поэтому рассматривать его смысла нет. А вот для memcache среди этих скриптов нет ничего, так что придется нам его написать самим. Проверим его работо- и дееспособность: # echo - e . Теперь пишем скрипт- однострочник/etc/zabbix/scripts/memcache. Далее будет описана настройка Zabbix для мониторинга некоторых из них. В большинстве сетей среднего и крупного размера имеется гремучая смесь всевозможного железа, которая досталась нынешнему админу со времен развертывания (и, скорее всего, это развертывание происходило еще при царе Горохе). По счастью, абсолютное большинство сетевого (да и не только) оборудования поддерживает открытый протокол SNMP, с помощью которого можно как получать о нем информацию, так и управлять параметрами. В данном случае нас интересует первое. Вкратце опишу нужные действия: включить поддержку SNMP на устройствах. Не забывай о безопасности — по возможности используй третью версию протокола, устанавливай авторизацию и изменяй имена community; добавить нужные элементы в Zabbix. Одному параметру SNMP соответствует один элемент; также нужно указать OID (идентификатор параметра) версию SNMP и, в зависимости от нее, параметры авторизации; добавить триггеры на нежелательное изменение параметров. У каждой железки могут быть десятки отслеживаемых параметров, и вручную их добавлять замучаешься. Но в Сети можно найти множество шаблонов, которые уже содержат в себе все необходимые элементы, триггеры и графики, — остается только их импортировать и подключить нужные хосты. Также существуют стандартные OID, которые описаны в RFC. К таковым относится, например, uptime с OID . OID . 1. 3. 6. 1. X, где X — номер порта. Например, если вам нужно сделать Discovery двух RAID- контроллеров на одном сервере и всех физических и логических дисков за ними, то, увы, мы этого сделать не могли без костылей. Работало только для первого RAID- контролера в списке. Но, как говорится, все течет, все меняется! И вот долгожданный релиз 2. Рассказать о нововведении я бы хотел на примере шаблона для HP серверов. Но сначала немножко вспомним про SNMP. SNMP. Итак, что такое LLD для SNMP? Это добавление элементов данных на основе строк в таблице SNMP. Каждая строка это один новый элемент данных на основе прототипа. А что такое вообще таблица SNMP, как ее найти среди других объектов SNMP в MIB? Это объект (OBJECT- TYPE), чей атрибут SYNTAX определен как SEQUENCE OF X, где X - последовательность объектов, описывающая столбцы таблицы. Сами строки таблицы хранятся этажом ниже в другой объекте, и от таблицы отличаются наличием АТРИБУТА INDEX, уникального ключа, использующегося для идентификации строк. Что это я сказал? Лучше пример. Возьмем всем известную таблицу if. Table с интерфейсами из IF- MIB, ее MIB в дереве SNMP будет выглядеть вот так: А результат запроса к такой таблице на каком- нибудь коммутаторе будет выглядеть вот так: Причем, index является составной частью OID, и как раз служит, чтобы отличить столбцы одной строчки таблицы от другой: administrator@zproxy. On 1. 0. 2. 0. 1. IF- MIB: if. Descr . STRING: D- Link DES- 3. R1. 2. 8 Port 1. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 2. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 3. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 4. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 5. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 6. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 7. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 8. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 9. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 0. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 1. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 2. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 3. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 4. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 5. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 6. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 7. STRING: D- Link DES- 3. R1. 2. 8 Port 1. 8. STRING: D- Link DES- 3. R1. 2. 8 8. 02. 1. Q Encapsulation Tag 0. STRING: D- Link DES- 3. R1. 2. 8 8. 02. 1. Q Encapsulation Tag 0. STRING: D- Link DES- 3. R1. 2. 8 8. 02. 1. Q Encapsulation Tag 0. STRING: D- Link DES- 3. R1. 2. 8 rif. 0(1. В IF- MIB: if. Table index простой и равен одному столбцу в таблице: if. Index. Zabbix мог находить элементы данных в таких таблицах еще в момент появления LLD, с версии 2. Table есть в стандартном шаблоне. О том же, как настроить LLD с простыми индексами мы как раз писали на хабре в прошлый раз. Но в SNMP бывают таблицы, где индекс составной и выглядит посложнее, чем просто одинокая цифра. Вот например таблица TCP- MIB: tcp. Conn. Table, в которой хранятся все текущие соединения. В этой таблице индекс составной и состоит из четырех объектов: Local IP Address. Local Port. Remote IP Address. Remote Port. Вот они в MIB- файле: А вот эти индексы при опросе оборудования: administrator@zproxy. Os - Ciw 1. 50 1. TCP- MIB: tcp. Conn. Table. SNMP table: tcp. Conn. Tableindex tcp. Conn. State tcp. Conn. Local. Address tcp. Conn. Local. Port tcp. Conn. Rem. Address tcp. Conn. Rem. Port. 0. Os 1. 0. 2. 0. 1. TCP- MIB: tcp. Conn. Tabletcp. Conn. State. INTEGER: listen(2)tcp. Conn. State. 0. 0. INTEGER: listen(2)tcp. Conn. Local. Address. Ip. Address: 0. 0. Conn. Local. Address. Ip. Address: 0. 0. Conn. Local. Port. INTEGER: 2. 2tcp. Conn. Local. Port. INTEGER: 8. 0tcp. Conn. Rem. Address. Ip. Address: 0. 0. Conn. Rem. Address. Ip. Address: 0. 0. Conn. Rem. Port. 0. INTEGER: 0tcp. Conn. Rem. Port. 0. 0. 0. INTEGER: 0. Раньше такие индексы вводили Zabbix в ступор. В 2. 2 теперь мы можем мониторить и такие таблицы. Давайте рассмотрим на практическом примере. HP Insight Manager. Итак, у нас есть сервер HP Proliant, а в нем стоят два RAID- контроллера. Кроме всего прочего про систему нас интересует состояние всех жестких дисков, подключенных к RAID- контроллеру. Чтобы получить доступ к этим данным, если у нас ОС Windows или Linux, нам необходимо установить HP Insight Management Agent, который и выложит эти информацию для доступа по snmp. Останется ее только забрать. Чтобы понять, что нам забирать, обратимся к MIB- файлу. Для RAID это CPQIDA- MIB, а для физических дисков это таблица CPQIDA- MIB: cpq. Da. Phy. Drv. Table. Как мы видим, индекс здесь состоит из двух частей: Первая часть индекса — индекс контроллера. Вторая часть — индекс диска. Опросим таблицу, ее столбец со статусом дисков: administrator@zproxy. INTEGER: 1iso. 3. INTEGER: 2iso. 3. INTEGER: 3iso. 3. INTEGER: 4iso. 3. INTEGER: 5iso. 3. INTEGER: 6iso. 3. INTEGER: 7iso. 3. INTEGER: 8. Видим, что у нас восемь дисков (cpq. Da. Phy. Drv. Index) расположенных на контроллерах под индексами 1 и 4 (cpq. Da. Phy. Cntlr. Index). В 2. 0 через LLD нашлось бы только первые четыре диска. Как настраивать обнаружение? Да точно также, как и LLD с обычными индексами: Шаг 1: Сначала создаем обнаружение в шаблоне для HP: Ключcpq. SNMP агент . Это поведение повлияет на все виды SNMP элементов данных (простые SNMP элементы данных, элементы данных с динамическими индексами и также низкоуровневые SNMP обнаружения) и обработка SNMP элементов данных сейчас должна быть более эффективной. Пожалуйста обратите внимание на раздел с техническими подробностями ниже, описывающий как работает изнутри этот функционал. Начиная с Zabbix 2. Использовать массовые запросы”, которая позволяет отключать массовые запросы у устройств, которые не способны обработать их должным образом. Дополнительно демоны не выполняют повторных запросов после одного неуспешного (по превышении времени ожидания/неверные настройки учетных данных) SNMP запроса. Ранее на самом деле использовались стандартные для библиотеки SNMP значения времени ожидания и количества повторов (1 секунда и 5 повторов соответственно). Согласно RFC 2. 57. Вы можете использовать один из поставляемых шаблонов SNMP (Template SNMP Device и другие), которые автоматически добавят некоторый набор элементов данных. Тем не менее, шаблон может быть не совместим с узлом сети. Нажмите на Добавить для сохранения узла сети. Если это не произойдет, то возможно что SNMP 'community' отличается от стандартного 'public', в этом случае вам необходим узнать это имя. Смотрите также: Динамические индексы. Полный список поддерживаемых типов ASN. Приведенные типы грубо соответствуют “Counter. Counter. 64”, “UInteger. INTEGER”, “Float”, “Double”, “Timeticks”, “Gauge. Ip. Address”, “OCTET STRING”, “OBJECT IDENTIFIER” в выводе snmpget утилиты, но могут также отображаться как “STRING”, “Hex- STRING”, “OID” и другие, в зависимости от наличия полученной подсказки. В зависимости от того использовали ли вы шаблон при создании узла сети или нет, вы должны будете увидеть список элементов данных SNMP, связанных с вашим узлом сети или попросту окно нового элемента данных. Мы будем исходить из предположения, что вы собираетесь создать элемент данных самостоятельно, с помощью информации, которую вы только что собрали используя snmpwalk или snmpget, так что введите простое описание на русском языке (или английском) в поле 'Описание' в диалоге нового элемента данных. Убедитесь, что в поле 'Узел сети' находится ваш коммутатор/роутер и измените поле 'Тип' в значение “SNMPv* агент”. Введите community (обычно public) и укажите текстовый или числовой OID, который вы получили ранее, в поле 'SNMP OID', например: . Введите 'Порт SNMP' - 1. Ключ' - что- то осмысленное, например, SNMP- In. Octets- Bps. Выберите множитель, если желаете, и укажите 'Интервал обновления', и 'Хранение истории', если вы хотите чтобы значения параметров отличались от умолчаний. Установите 'Тип информации' в значение равное Числовой (с плавающей точкой) и 'Хранение значения' как Дельта (скорость в секунду) (важно, в противном случае вы будете получать накопленные значения с SNMP устройства вместо последнего изменения). Имя безопасности Введите имя безопасности. В данном поле раскрываются пользовательские макросы. Уровень безопасности. Выберете уровень безопасности: no. Auth. No. Priv - ни аутентификация, ни протокол безопасности не используются Auth. No. Priv - используется протокол аутентификации, протокол безопасности нет. Auth. Priv - используются и протокол аутентификации, и протокол безопасности Протокол аутентификации. Выберете протокол аутентификации - MD5 или SHA. Тем не менее, в некоторых случаях, строковый OID должен быть сконвертирован в числовое представление. Для этого можно использовать утилиту snmpget. On localhost public enterprises. Total. Swap. 0. Мониторинг SNMP параметров возможен, если указан флаг - -with- net- snmp при конфигурировании исходных кодов Zabbix. Такое поведение затрагивает следующие типы SNMP элементов данных. Все элементы данных SNMP с одного интерфейса запланированы на опрос в одно время. Первые два типа элементов данных собираются поллерами порциями не более чем по 1. Для “прохождения”, используется Get. Next. Request- PDU для SNMPv. Get. Bulk. Request с полем “max- repetitions” с наибольшим количеством в 1. SNMPv. 2 и SNMPv. Некоторые всегда возвращают корректный ответ, но другие либо отвечают с ошибкой “too. Big(1)”, либо не отвечают вообще, когда потенциальный запрос превышает определенный лимит. Начинается с осторожного запроса одного значения. Это запрос выполнен успешно, запрашивается 2 значения за один запрос. Если запрос снова выполнен успешно, запрашивается 3 значения за запрос и продолжается аналогично умножением количества запрашиваемых значений на 1. Если устройство доступно, далее запросы должны работать в большинстве случаев, потому что известно что 2. Тем не менее если проблема с запросами продолжается, Zabbix уменьшает количество запросов последовательно согласно этому алгоритму. Если и далее проблемы с запросами все еще актуальны, значит устройство определенно не отвечает и количество запросов это не корень проблемы. Например, предположим что максимально возможное количество запросов для данного устройства это 3. SNMP агент . Оно должно быть уникальным для каждого устройства. Установите состояние узла сети в БЕЗ НАБЛЮДЕНИЯ. Вы можете использовать один из поставляемых шаблонов SNMP (Template SNMP Device и другие) которые автоматически добавят некоторый набор элементов данных. Тем не менее, шаблон может быть не совместим с узлом сети. Если это не произойдет, то возможно что SNMP 'community' отличается от стандартного 'public', в этом случае вам необходим узнать это имя. Смотрите также: Динамические индексы. В зависимости от того использовали ли вы шаблон при создании узла сети или нет, вы должны будете увидеть список элементов данных SNMP, связанных с вашим узлом сети или попросту окно нового элемента данных. Мы будем исходить из предположения, что вы собираетесь создать элемент данных самостоятельно, с помощью информации, которую вы только- что собрали используя snmpwalk или snmpget, так что введите простое описание на русском в поле 'Описание' в форме нового элемента данных. Убедитесь, что в поле 'Узел сети' находится ваш свитч/роутер и измените поле 'Тип' в значение “SNMPv* агент”. Введите community (обычно public) и укажите текстовый или числовой OID, который вы получили ранее, в поле 'SNMP OID', например: . Введите 'Порт SNMP' равным 1. Ключ' чем то осмысленным, например, SNMP- In. Octets- Bps. Выберите Множитель, если захотите и укажите 'интервал обновления' и 'хранение истории', если вы хотите чтобы значение отличалось от умолчания. Установите 'Состояние' в Наблюдается, 'Тип информации' в значение равное Числовой (с плавающей точкой) и 'Хранение значения' как ДЕЛЬТА (важно, в противном случае вы будете получать суммарные значения с SNMP устройства вместо последнего изменения). От сюда измените состояние SNMP устройства в 'Наблюдается' и проверьте в Последних данных ваши данные SNMP! Тем не менее, в некоторых случаях, строковый OID должен быть сконвертирован в числовое представление. Для этого можно использовать утилиту snmpget. On localhost public enterprises. Total. Swap. 0. Мониторинг SNMP параметров возможен, если один из - -with- net- snmp или - -with- ucd- snmp флагов был указан в процессе конфигурирования исходных кодов Zabbix.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories |