Документация по ОС FreeBSD Понедельник, 25.11.2024, 16:40
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

FreeBSD: Мониторинг состояния оборудования с поддержкой IPMI в Zabbix [2010]

Одной из полезнейших возможностей системы мониторинга Zabbix является наблюдение за состоянием оборудования с поддержкой IPMI (Intelligent Platform Management Interface) – интеллектуального интерфейса управления платформой, который предназначен для автономного мониторинга состояния компонентов серверных платформ, а также для управления встроенными в них аппаратными и микропрограммными функциями даже в тех случаях, когда система находится в выключенном состоянии.

Постановка задачи

Необходимо "научить” Zabbix следить за такими параметрами сервера с поддержкой IPMI, как: окружающая температура, температура центральных процессоров, скорость вращения вентиляторов систем охлаждения, напряжение на выходах блока питания, состояние батареи CMOS и т.д. (полный список параметров зависит от возможностей используемого BMC). Данная статья содержит рекомендации по получению списка сенсоров (датчиков), поддерживаемых Вашей платформой, включению IPMI мониторинга узлов сети, а также созданию элементов данных и триггеров, предназначенных для контроля текущего состояния оборудования и оповещения системных администраторов о предстоящем возникновении проблем.

Исходные данные

Имеется сервер HP ProLiant DL140 G3 c модулем удаленного управления HP Lights-Out 100i (LO100i) Remote Management standard, работающий под управлением операционной системы FreeBSD и, кроме всего прочего, являющийся сервером Zabbix. Для получения информации о поддерживаемых сенсорах и критических значениях измеряемых ими параметров будет использоваться утилита ipmitool, а для обеспечения поддержки IPMI сервером Zabbix – компоненты пакета OpenIPMI. Все программное обеспечение будет устанавливаться из портов, поэтому я рекомендую Вам обновить их (я использовал FreeBSD 8.1-STABLE и последние на начало августа 2010 года версии портов для нее).

Получение информации о доступных сенсорах IPMI

Перед выполнением действий, которые описаны в данной статье, следует убедиться, что используемая Вами платформа поддерживает функции IPMI. Для этого достаточно загрузить модуль ядра (драйвер) IPMI командой kldload ipmi, а затем посмотреть содержимое журнала системных сообщений командой dmesg | grep ipmi. Если используемая платформа поддерживает функции IPMI, будут отображены примерно такие сообщения:

ipmi0: <IPMI System Interface> port 0xca2-0xca3 on acpi0
ipmi0: KCS mode found at io 0xca2 on acpi
ipmi0: IPMI device rev. 1, firmware rev. 2.2, version 2.0
ipmi0: Number of channels 1
ipmi0: Attached watchdog

Утилиту ipmitool, являющуюся одним из удобнейших инструментов для работы с IPMI из консоли, необходимо установить из портов:

cd /usr/ports/sysutils/ipmitool
make install clean

Для получения информации о доступных сенсорах можно выполнить команду ipmitool sensor, которая отобразит примерно такую таблицу:

....
CPU Fan 1        | 7735.747 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 2        | 8269.247 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 3        | 7494.005 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 4        | 8269.247 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 5        | 8269.247 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 6        | 7993.605 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 7        | 7993.605 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 8        | 7735.747 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 9        | 7735.747 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU Fan 10       | 7735.747 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
System Fan 1     | 7494.005 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
System Fan 2     | 7993.605 | RPM       | ok | na | na     | na    | 3996.803 | 3475.480 | na
CPU0 Vcore       | 1.147    | Volts     | ok | na | 0.402  | 0.500 | 1.597    | 1.695    | na
CPU1 Vcore       | 1.225    | Volts     | ok | na | 0.402  | 0.500 | 1.597    | 1.695    | na
Standby 5V       | 5.027    | Volts     | ok | na | 4.263  | 4.528 | 5.527    | 5.792    | na
System 5V        | 4.998    | Volts     | ok | na | 4.263  | 4.528 | 5.527    | 5.792    | na
System 3.3V      | 3.205    | Volts     | ok | na | 2.822  | 2.999 | 3.675    | 3.851    | na
3V CMOS Sense    | 2.891    | Volts     | ok | na | 2.617  | 2.781 | na       | na       | na
...
AMB Temp         | 20.000   | degrees C | ok | na | 10.000 | na    | 30.000   | 45.000   | na
...
CPU0 Dmn 0 Temp  | 33.000   | degrees C | ok | na | na     | na    | na       | 85.000   | 95.000
CPU1 Dmn 0 Temp  | 34.000   | degrees C | ok | na | na     | na    | na       | 85.000   | 95.000
...

Первый столбец этой таблицы содержит название сенсора (Sensor ID), второй – текущее значение параметра (Sensor Reading), третий – единицу измерения (Sensor Type), четвертый – статус (Status), пятый – низшее значение, при котором соответствующий узел может выйти из сторя (Lower Non-Recoverable), шестой – низшее критическое значение (Lower Critical), седьмой – низшее некритическое значение (Lower Non-Critical), восьмой – высшее некритическое значение (Upper Non-Critical), девятый – высшее критическое значение (Upper Critical), десятый – высшее значение, при котором соответствующий узел может выйти из сторя (Upper Non-Recoverable).
Если Вас не устраивает табличное отображение информации, выполните команду ipmitool -v sensor, а затем "отфильтруйте” предоставленные ей данные. Например, команда ipmitool -v sensor | grep -A 13 "AMB Temp" отобразить список параметров сенсора AMB Temp в таком виде:

Sensor ID              : AMB Temp (0x48)
 Entity ID             : 0.0
 Sensor Type (Analog)  : Temperature
 Sensor Reading        : 19 (+/- 0) degrees C
 Status                : ok
 Lower Non-Recoverable : na
 Lower Critical        : 10.000
 Lower Non-Critical    : na
 Upper Non-Critical    : 30.000
 Upper Critical        : 45.000
 Upper Non-Recoverable : na
 Assertion Events      :
 Assertions Enabled    : lcr- unc+ ucr+
 Deassertions Enabled  : lcr- unc+ ucr+

Настройка удаленного доступа к функциям IPMI

В отличие от утилиты ipmitool сервер Zabbix не поддерживает работу через драйвер IPMI и может подключаться к наблюдаемому оборудованию только по сети с использованием IP-адреса или доменного имени, имени пользователя и пароля. Способы установки значений этих параметров зависят как от аппаратной реализации, так и от программной конфигурации используемой платформы. Дорогие модули удаленного управления имеют в своем составе отдельные сетевые интерфейсы и развитые средства конфигурирования, а для настройки более бюджетных моделей без собственных сетевых интерфейсов и средств конфигурирования придется воспользоваться сторонними инструментами.
Если Вы (как и я) являетесь обладателем достаточно серьезного модуля удаленного управления, изучите поставляемую с ним документацию, а затем задайте соответствующие параметры любым удобным способом. Например, при использовании серверов HP ProLiant можно установить IP-адрес в настройках BIOS, а затем подключиться к слушающему этот адрес BMC HTTP Server’у и создать аккаунт пользователя прямо из браузера.
Для настройки бюджетных модулей удаленного управления подойдет утилита ipmitool. С ее помощью придется выбрать сетевой интерфейс, к которому будет привязан виртуальный интерфейс модуля удаленного управления, задать IP-адрес и маску подсети (при необходимости доступа из-за пределов локальной сети еще и шлюз по умолчанию), а также создать аккаунт пользователя с нужными именем, паролем и привилегиями.
Для того, чтобы выбрать первый сетевой интерфейс материнской платы и задать для него IP-адрес 192.168.0.253, маску подсети 255.255.255.0 и шлюз по умолчанию 192.168.0.1, необходимо выполнить команды:

ipmitool lan set 1 ipsrc static
ipmitool lan set 1 ipaddr 192.168.0.253
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 192.168.0.1

Для просмотра сделанных изменений можно выполнить команду ipmitool lan print 1, которая отобразит примерно такое сообщение:

Set in Progress         : Set Complete
Auth Type Support       : NONE MD5 PASSWORD
Auth Type Enable        : Callback : NONE MD5 PASSWORD
                        : User     : NONE MD5 PASSWORD
                        : Operator : NONE MD5 PASSWORD
                        : Admin    : NONE MD5 PASSWORD
                        : OEM      : NONE MD5 PASSWORD
IP Address Source       : Static Address
IP Address              : 192.168.0.253
Subnet Mask             : 255.255.255.0
MAC Address             : 00:1c:c4:fa:4f:8f
SNMP Community String   : public
IP Header               : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP      : 192.168.0.1
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 0,1,2,3
Cipher Suite Priv Max   : OOOOXXXXXXXXXXX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM

При работе с утилитой ipmitool для указания пользователей применяются числовые идентификаторы (ID). Уровни привилегий (Priv) также задаются цифрами, при этом 1 соответствует CALLBACK, 2USER, 3OPERATOR, 4ADMINISTRATOR, 5OEM, 15NO ACCESS. С учетом этих особенностей для создания пользователя с идентификатором 2, именем zabbix, паролем password4zabbix и уровнем привилегий USER, а также для разрешения этому пользователю доступа к функциям IPMI канала 1 с привилегиями USER следует выполнить команды:

ipmitool user set name 2 zabbix
ipmitool user set password 2 password4zabbix
ipmitool user priv 2 2 1
ipmitool channel setaccess 1 2 ipmi=on privilege=2

Для просмотра прав доступа к каналу 1, предоставленных пользователю с идентификатором 2, подойдет команда ipmitool user getaccess 1 2, которая отобразит примерно такое сообщение:

Maximum User IDs     : 16
Enabled User IDs     : 3
User ID              : 2
User Name            : zabbix
Fixed Name           : No
Access Available     : callback
Link Authentication  : disabled
IPMI Messaging       : enabled
Privilege Level      : USER

На этом настройка заканчивается. Для тестирования работоспособности свежесозданной конфигурации можно выполнить любую из рассмотренных в предыдущем разделе команд (командам из текущего раздела требуется более высокий уровень привилегий), указав IP-адрес или доменное имя, имя пользователя, пароль и уровень привилегий с помощью ключей -H, -U, -P и -L. Например, команда получения списка доступных сенсоров с учетом заданных параметров доступа по сети будет иметь вид ipmitool -H 192.168.0.253 -U zabbix -P password4zabbix -L USER sensor и т.д.
В связи с разнообразием модулей удаленного управления я настоятельно рекомендую Вам начинать настройку только после изучения документации по используемой платформе, а также руководства по работе с утилитой ipmitool.

Подготовка сервера Zabbix для IPMI мониторинга

Для того, чтобы сервер Zabbix мог осуществлять IPMI мониторинг, необходимо пересобрать его из портов с опцией WITH_IPMI:

cd /usr/ports/net-mgmt/zabbix-server
make -DWITH_IMPI deinstall install clean

После завершения пересборки, в процессе которой установятся все необходимые зависимости, включая пакет OpenIPMI, следует добавить в файл конфигурации сервера Zabbix /usr/local/etc/zabbix/zabbix_server.conf строку, задающую количество поллеров IPMI (для нескольких десятков элементов данных, связанных с параметрами нескольких серверов, хватит одного поллера):

StartIPMIPollers=1

Теперь можно перезапустить сервер Zabbix командой /usr/local/etc/rc.d/zabbix_server restart и посмотреть содержимое его лога командой grep IPMI /tmp/zabbix_server.log. Если Вы не допустили ни каких ошибок, будут отображены примерно такие сообщения:

... IPMI monitoring:       YES
... server #.. started [IPMI Poller]

Включение IPMI мониторинга узлов сети

Для включения IPMI мониторинга любого из узлов сети нужно зайти в раздел Настройка » Узлы сети и перейти по соответствующей ссылке в столбце Имя. На открывшейся странице КОНФИГУРАЦИЯ УЗЛОВ СЕТИ следует установить "галочку” Использовать IPMI, а затем указать заданные ранее IPMI IP адрес, Имя пользователя IPMI и Пароль IPMI. После внесения изменений страница КОНФИГУРАЦИЯ УЗЛОВ СЕТИ будет выглядеть примерно так:

Включение IPMI мониторинга узла сети

Создание элементов данных для IPMI мониторинга

При создании элементов данных, связанных с сенсорами IPMI, следует помнить три момента: во-первых, их Тип должен иметь значение IPMI агент, во-вторых, их параметр IPMI Sensor должен содержать Sensor ID, возвращаемый утилитой ipmitool, в третьих, их параметр Ключ может содержать любой текст без пробелов (во избежание путаницы такой же текст, как IPMI Sensor, только без пробелов). Например, для создания элемента данных Ambient temperature, связанного с сенсором AMB Temp, нужно зайти в раздел Настройка » Узлы сети и перейти по ссылке Элементы данных в столбце Элементы данных. На открывшейся странице ЭЛЕМЕНТЫ ДАННЫХ необходимо нажать кнопку Создать элемент данных, а затем на открывшейся странице НАСТРОЙКА ЭЛЕМЕНТОВ ДАННЫХ следует ввести Описание (произвольное название элемента данных), выбрать в списке Тип значение IPMI агент, ввести в поле IPMI Sensor значение Sensor ID, ввести аналогичный текст (естественно, удалив пробел) в поле Ключ, задать Единицу измерения и Интервал обновления (на мой взгляд, не следует "мерить” значения инертных параметров IPMI чаще, чем раз в 3 минуты):

Добавление элемента данных для IPMI мониторинга

Значения элементов данных, созданных для IPMI мониторинга, можно посмотреть в разделе Мониторинг » Последние данные.

Создание триггеров для IPMI мониторинга

Создание триггеров, предназначенных для фиксации ненормального состояния оборудования не имеет каких-либо особенностей, при этом в качестве порогов срабатывания можно использовать значения Lower Non-Critical и/или Upper Non-Critical, возвращаемые утилитой ipmitool. Например, для создания триггера High ambient temperature on {HOSTNAME}, срабатывающего в случае превышения верхней границы диапазона нормальной окружающей температуры, необходимо зайти в раздел Настройка » Узлы сети и перейти по ссылке Триггеры в столбце Триггеры. На открывшейся странице ТРИГГЕРЫ следует нажать кнопку Создать триггер, на открывшейся странице НАСТРОЙКА ТРИГГЕРОВ нужно ввести выбранное Имя, задать Выражение {server.company.com:AMBTemp.last(0)}>30, а также выбрать в списке Важность значение Предупреждение:

Добавление триггера для IPMI мониторинга

Выражения триггеров, фиксирующих слишком маленькую скорость вращения вентиляторов систем охлаждения, отличаются от рассмотренного только знаком. Например, для триггера Slow CPU Fan 1 speed on {HOSTNAME} подойдет выражение {server.company.com:CPUFan1.last(0)}<3996.803.
Выражения триггеров, предназначенных для выявления слишком низкого и слишком высокого напряжения источников питания, имеют более сложную структуру и представляют из себя логические суммы пар простых выражений. Например, для триггера Wrong CPU0 VCore voltage on {HOSTNAME} подойдет выражение {server.company.com:CPU0Vcore.last(0)}<0.500 | {server.company.com:CPU0Vcore.last(0)}>1.597.

Шаблон для IPMI мониторинга серверов HP ProLiant DL140 G3

В связи с тем, что в моем "хозяйстве” есть несколько серверов HP ProLiant DL140 G3, я решил вынести связанные с ними элементы данных и триггеры для IPMI мониторинга в отдельный шаблон Template_IPMI_HP_DL140G3, который содержит 3 группы элементов данных, 19 элементов данных и 19 триггеров. Для того, чтобы импортировать этот шаблон в систему мониторинга Zabbix, следует зайти в раздел Настройка » Экспорт/Импорт, выбрать в выпадающем списке в правом верхнем углу окна значение Импорт, нажать кнопку Обзор, выбрать файл template-ipmi-hp-dl140g3.xml и нажать кнопку Импорт. Теперь вместо ручного создания элементов данных и триггеров для IPMI мониторинга серверов HP ProLiant DL140 G3 достаточно добавить к нужным узлам сети свежеустановленный шаблон Template_IPMI_HP_DL140G3.

Заключение

Я надеюсь, что данная статья, поможет Вам достаточно быстро и без лишних затруднений настроить систему мониторинга Zabbix для наблюдения за состоянием оборудования с поддержкой IPMI. Позже я обязательно продолжу знакомить Вас с другими не менее полезными возможностями системы мониторинга Zabbix, поэтому не забудьте подписаться на новости.



Источник: http://www.sergeysl.ru/freebsd-ipmi-monitoring-on-zabbix/
Категория: Работа с железом | Добавил: oleg (19.08.2010) | Автор: sergeysl
Просмотров: 4032 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024