Zabbix. Регулярное срабатывание system.cpu.load
Список форумов SYSAdmins.RU -> UNIX | На страницу 1, 2 След. |
Автор | |||||
---|---|---|---|---|---|
medlov Новичок Зарегистрирован: 20.03.2014
|
| ||||
Вернуться к началу |
| ||||
Зарегистрируйтесь и реклама исчезнет! | |||||
3zh1k Активный участник Зарегистрирован: 31.08.2010
|
| ||||
Вернуться к началу |
| ||||
medlov Новичок Зарегистрирован: 20.03.2014
|
| ||||
Вернуться к началу |
| ||||
3zh1k Активный участник Зарегистрирован: 31.08.2010
|
| ||||
Вернуться к началу |
| ||||
medlov Новичок Зарегистрирован: 20.03.2014
|
| ||||
Вернуться к началу |
| ||||
Skyman Участник форума Зарегистрирован: 29.03.2004 |
| ||||
Вернуться к началу |
| ||||
Vengant Активный участник Зарегистрирован: 12.01.2008 |
| ||||
Вернуться к началу |
| ||||
3zh1k Активный участник Зарегистрирован: 31.08.2010
|
| ||||
Вернуться к началу |
| ||||
medlov Новичок Зарегистрирован: 20.03.2014
|
| ||||
Вернуться к началу |
| ||||
asder30 Новичок Зарегистрирован: 07.01.2013 Мониторим ядра CPU в Zabbix и создаем произвольные счетчики в Low-level discoveryНе так давно тут проходила статья про LLD. Мне она показалась скучной т.к. описывает примерно то же, что есть и в документации. Я решил пойти дальше и с помощью LLD мониторить те параметры, которые раньше нельзя было мониторить автоматически, либо это было достаточно сложно. Разберем работу LLD на примере логических процессоров в Windows: Изначально интересовал расширенный монтиринг помимо ядрер CPU и нагрузка на физические диски. До того как обнаружение было введено, эти задачи частично решались ручным добавлением. Я добавлял условные диски в файл конфигурации zabbix_agent и вообще по-разному извращался. В результате это было очень неудобно, добавлялось много неприятной ручной работы и вообще неправильно в общем как-то было 🙂 Тип отправляемых данныхДля начала стоит отослать к документации, где расписывается что такое LLD и с чем его едят. Помимо стандартных шаблонов нас будет интересовать 4-ый раздел с описание JSON формата обнаружения. То есть мы будем создавать свой собственный метод обнаружения. По сути все сводится к вызову скрипта, который формирует в нужном формате нужные данные. Скрипт формирования данныхСам скрипт выглядит так: Сейчас мы получаем, что при запуске скрипта он узнает сколько ядер и формирует пакет для отправки. Добавялем низкоуровневое обнаружение в настройках zabbix сервераДля этого заходим в нужный шаблон, который добавлен к интересующим нас хостам, в раздел Discovery и нажимаем кнопку Create discovery rule. Мы создали новое правило обнаружения с пользовательским сбором данных. Запрос на изменение информации задан как 1 час. Пожалуй, для таких статических данных, как количество процессоров, это слишком часто :), но каждый волен поставить свое значение. Для первоначального сбора данных и отладки лучше это значение уменьшить до совсем небольших значений, чтобы не ждать часами выполнение скрипта. Настройка прототипов данныхХорошо. Данные о количестве процессоров мы начали собирать. Но в результате нам нужны не эти данные, а новый item в мониторинге. Именно item может собирать данные, а не наш скрипт, наш скрипт служит только для обнаружения самих элементов для сбора данных. Для сбора данных используется стандартный счетчик производительности. В zabbix для сбора этих данных есть ключ perf_counter. Вместо номера логического ядра мы вставляем полученное значение в виде переменной из раздела Discovery. Эти элементы нельзя удалить стандартным способом, т.к. они созданы автоматически, они выделены особенным префиксом с названием правила низкоуровневого обнаружения. На скриншоте кажется, что написана какая-то фигня в имени :), на самом деле все просто, я использую трехзначный код в каждом имени для сортировки. То есть 100 это только лишь сортировочный номер. Следующая цифра от 0 до 11 это номер логического процессора. А дальше уже «% загруженности процессора». А то сначала может показаться, что это 0% загруженности процессора и я пытаюсь это значение собрать 🙂 Единственный недостаток всего этого метода в том, что график, такой как в заголовке этого поста, нельзя создать с помощью механизма низкоуровневого обнаружения. То есть мы можем, конечно, создать не только item, но и graph объект для каждого логического процессора, но создать один суммарный график автоматически со всеми обнаруженными логическими процессорами не получится. По крайней мере я не видел как это можно было бы сделать, на форуме zabbix мне также не смогли подсказать. Это, конечно, не особенно серьезный недостаток, но если у вас 200 хостов, это может стать проблемой :). Ведь график для каждого хоста нужно будет создавать вручную. Мониторим производительность каждого физического диска в системеВ вышеприведённом способе лучше разобраться и тогда это открывает достаточно широкие возможности для мониторинга объектов в системе, количество которых либо отличается от хоста к хосту либо их количество во все изменяется во время работы. Тут, конечно, надо быть внимательным и если mysql у вас стоит на каком-нибудь стареньком забитом компе, то подобное количество достаточно быстро унесет вашу базу данных в небеса. Т.к. в приведенном примере для каждого хоста создается для каждого физического диска 20 новых элементов, которые будут создавать одного новое значение в минуту. В масштабе пары десятков серверов с кучами разных дисков это выливается в более-менее весомое количество данных. Но тут каждый волен выбирать свой путь самурая 🙂 Скрипт для LLD физических дисков выглядит так: Добавляем новое правило обнаружения по аналогии с CPU. Точно также мы создаем нужные элементы в discovery. Вообще, конечно, этот механизм дает довольно большие возможности по определению различных элементов для мониторинга. Таким же способом можно, например, добавить мониторинг сетевых интерфейсов, процессов в системе, служб и любых других элементов, имя которых и количество заранее неизвестно. |