Имеется в наличии система Proxmox 4.4, установленная на RAID1 ZFS. Нам нужно знать, что системой все в порядке и мы будем с определенной периодичностью с помощью Zabbix это проверять. Для начала необходимо установить сам агент:

apt-get install zabbix-agent

Также нужно иметь в виду, то Proxmox по умолчанию не имеет sudo и нужно его скачать чтобы мы могли запускать скрипты от пользователя zabbix

apt-get install sudo

Создадим скрипт проверки zfs_check.sh

mkdir /etc/scripts/
touch /etc/scripts/zfs_check.sh

Зададим владельца и права

chown zabbix. /etc/scripts/zfs_check.sh
chmod 0755 /etc/scripts/zfs_check.sh
nano /etc/scripts/zfs_check.sh

Вставим в скрипт вот такой текст

#!/bin/bash
/usr/bin/sudo /sbin/zpool status | grep DEGRADED | wc -l

Теперь отредактируем конфигурационный файл zabbix

nano /etc/zabbix/zabbix_agentd.conf
Server=xxx.xxx.xxx.xxx (адрес нашего Zabbix-сервера)
ServerActive=xxx.xxx.xxx.xxx (адрес нашего Zabbix-сервера)
ListenPort=10051 (по умолчанию порт, на котором работает агент - 10050)
Hostname=nash_site (имя нашего хоста)

И в конце файла добавляем строку:

UserParameter=zpool.health,/etc/scripts/zfs_check.sh

Перезапускаем агента. В Proxmox это делается так:

service zabbix-agent restart

Далее, необходимо разрешить работать с zfs пользователю zabbix т.к. изначально это может делать только root.
Добавим в /etc/sudoers

Defaults:zabbix !requiretty
zabbix ALL=(root) NOPASSWD: /sbin/zpool
zabbix ALL=(root) NOPASSWD: /sbin/zfs
zabbix ALL=(root) NOPASSWD: /sbin/zpool status

Запускаем наш скрипт. В случае, если RAID исправен скрипт нам возвращает ‘0’:

#sudo -u zabbix /etc/scripts/zfs_check.sh
0
root@pve:~# zpool status
  pool: rpool
 state: ONLINE
  scan: resilvered 21.7M in 0h0m with 0 errors on Sun Mar 5 17:04:49 2017
config:

  NAME STATE READ WRITE CKSUM
  rpool ONLINE 0 0 0
  mirror-0 ONLINE 0 0 0
  sda2 ONLINE 0 0 0
  sdb2 ONLINE 0 0 0

errors: No known data errors

Имитируем отказ одного диска:

# zpool offline rpool sdb2
root@pve:~# zpool status
  pool: rpool
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
  Sufficient replicas exist for the pool to continue functioning in a
  degraded state.
action: Online the device using 'zpool online' or replace the device with
  'zpool replace'.
  scan: resilvered 21.7M in 0h0m with 0 errors on Sun Mar 5 17:04:49 2017
config:

  NAME STATE READ WRITE CKSUM
  rpool DEGRADED 0 0 0
  mirror-0 DEGRADED 0 0 0
  sda2 ONLINE 0 0 0
  sdb2 OFFLINE 0 0 0

errors: No known data errors

Опять запускаем скрипт:

#sudo -u zabbix /etc/scripts/zfs_check.sh
3

Итак, мы видим, что вместо ‘0’ теперь у нас ‘3’ т.к слово DEGRADED в результате выполнения скрипта встречается 3 раза.
Мы настроим триггер так, что если DEGRADED выводиться хоть раз, приходит оповещение.
Параллельно можно зайти на Zabbix-сервер и сверять данные, которые выдает скрипт с тем, что получает наш сервер Zabbix, запустив команду zabbix_get
Например:

zabbix_get -s nash_site -p 10051 -k zpool.health

Здесь мы проверяем ключ zpool.health на хосте nash_site и где агент работает на порту 10051

Настройка мониторинга состояния RAID ZFS в Zabbix на Proxmox
Метки:             

Одна мысль о “Настройка мониторинга состояния RAID ZFS в Zabbix на Proxmox

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *