フォーク元: https://github.com/ronivay/zabbix-dell-omsa
このリポジトリには、Dellサーバーのハードウェア情報をZabbixで監視する為のスクリプト、Zabbix Agent設定、Zabbixテンプレートが含まれています。
既存のomsa.*キーとの互換性を維持しつつ、OMSAが使える環境ではOMSAを最優先で使用します。
OMSAが無い環境やOMSAで取得できない項目は、dmidecode、ipmitool -I open、perccli、Redfish、racadm等で取得を試みます。
更新日: 2026年7月30日(木)
- 🧭 現在の方針
- ✅ テスト済みバージョン
- 🔄 OMSA 11.0 / 11.1互換について
- 🧩 OMSAとは
- 📊 Zabbixとは
- 📦 本リポジトリについて
- 🔁 取得優先順位
- 🧱 取得元ごとの役割
- 🔎 自動検出される項目
- 🚨 監視される主な項目とトリガー
- 🔐 iDRACライセンスについて
- 🏷️ 状態値の扱い
- 🔢 数値アイテムの取得不可時の値
- 🛠️ インストール方法
- 🔑 sudoers.d設定
- 📥 必要パッケージ
- 💽 perccliについて
- 🌐 Redfishについて
- 🧪 手動確認
- 🧾 主な手動取得例
- ⚙️ 主な環境変数
- 🗄️ IPMIキャッシュについて
⚠️ 注意点- 💡 Tips
既存のOMSA監視環境は、これまで通りOMSAを使って監視します。
新規構築サーバーやUbuntu 26.04以降等、OMSAの導入や動作が難しい環境では、OMSAに依存しない監視もできるようにしています。
基本方針は以下です。
- OMSAで取得できる場合は、OMSAの値を最優先します。
- OMSAが未導入、失敗、非対応、対象項目が空の場合のみ別手段へフォールバックします。
- OMSAが
Critical、Failed、Degraded等の異常値を返した場合は、その値を採用します。 - 取得できない項目は
UnknownまたはUnsupportedとして扱います。 - Zabbix側の既存テンプレートや
omsa.*キーはできるだけ維持します。
現時点で確認している主なバージョンです。
| 種別 | バージョン |
|---|---|
| スクリプト | 2.1.0 |
| OMSA | 11.0.0.0 / 11.1.0.0 |
| Zabbix | 7.0.26 |
| perccli | 007.1020.0000.0000 |
スクリプトv2.1.0では、OMSA 11.0.0.0と11.1.0.0の両方を同一コードで扱えるように、omreportの解析方法を見直しています。
従来は一部でawk '{print $3}'等の固定列を参照していましたが、OMSAのバージョンやコマンドによって空白位置や単位表記が変わると誤取得する可能性があります。
現在は可能な限り項目名 : 値を基準に取得します。
特に以下を改修しています。
- ファンRPM:
2380 RPM/2380RPMの両方から2380だけを返す - 温度:
24.0 C/24.0Cの両方から数値だけを返す - 消費電力:
539 W/539Wの両方から数値だけを返す - ファン、温度、PSU、RAM、電力監視のIndex解析を固定列依存から変更
- 物理ディスク、仮想ディスクのOMSA出力解析を項目名ベースへ変更
- BMC/iDRAC情報は新しい
remoteaccessと従来のbmcを利用可能な範囲で併用
この設計はOMSAバージョン番号で処理を分岐する方式ではありません。 その為、11.0.0.0/11.1.0.0だけでなく、同系統の出力形式を持つ小改訂でも壊れにくい構成を目指しています。
まずスクリプト単体で確認します。
/home/zabbix/.sh/omsa.sh fandiscovery
/home/zabbix/.sh/omsa.sh fanstatus 0 rpm
/home/zabbix/.sh/omsa.sh fanstatus 0 statusOMSA生出力も確認します。
/opt/dell/srvadmin/bin/omreport chassis fans
/opt/dell/srvadmin/bin/omreport chassis fans index=0fanstatus 0 rpmが実際のRPM数値を返せば、Zabbix Agent側からも確認します。
zabbix_agentd -t 'omsa.fanstatus[0,rpm]'Agent 2の場合は環境に応じてzabbix_agent2 -tを使用してください。
Dell OpenManage Server Administrator (OMSA) は、Dellサーバーの物理コンポーネントの状態取得や設定を行えるツールです。
Zabbixはオープンソースの監視ソリューションです。
このリポジトリ内のスクリプトとテンプレートは、Dellサーバーの主要なハードウェア情報を監視することを目的としています。
OMSA、iDRAC、Redfish、perccli等が提供する全ての細かい情報を網羅するものではありません。
スクリプトは、原則として以下の順番で情報取得を試みます。
- OMSA
omreport - ローカルコマンド
dmidecodeipmitool -I openperccli
- Redfish
racadm
ただし、項目によって最適な取得元が異なる為、実際の処理では項目ごとに取得元を切り替えます。
OMSAで取得できた値は、基本的にそのまま採用します。
OMSAで取得できなかった項目だけ、OMSA以外の方法で取得を試みます。
| 取得元 | 主な用途 |
|---|---|
| OMSA | 既存OMSA監視環境での最優先取得元 |
| dmidecode | モデル、サービスタグ、BIOSバージョン |
| ipmitool -I open | BMC/iDRAC基本情報、温度、ファン、PSU系センサー |
| perccli | PERC、RAID、物理ディスク、仮想ディスク、BBU/CV |
| Redfish | 全体ヘルス、iDRAC FW、温度、ファン、ログ、iDRAC9/10ライセンス補助 |
| racadm | iDRACライセンス等の補助取得 |
- 仮想ディスクとそのコントローラー
- 物理ディスクとそのコントローラー
- ファン
- 電源ユニット PSU
- 温度センサー
- RAMモジュール
- CMOSバッテリー
- BBU/CV
- 物理ディスクの状態
Trigger: physical disk not online or predictive failure is true
- 仮想ディスクのRAID種類、サイズ、ステータス
Trigger: virtual disk status is not ok
- ファンの状態、RPM
Trigger: fan status not ok
- PSUの状態
Trigger: PSU status not ok
- 温度センサーの値
- RAMモジュールの状態
Trigger: RAM status not ok
- サーバーモデル
- サーバーのサービスタグ
- BIOSバージョン
- iDRACバージョン
- iDRAC IPv4アドレス
- iDRACライセンス
- サーバー全体のヘルスステータス
Trigger: if any of the status indicators is not ok
iDRACライセンスは、取得できる環境と取得できない環境があります。 取得優先順位は以下です。
- OMSA
- iDRAC9/10 Redfish
DellLicenseCollection racadm license viewUnsupported
OMSAでBaseboard Management Controller等の値が取得できた場合は、OMSAの値としてそのまま出力します。
OMSAで取得できなかった後に、Redfishやracadm等の非OMSA取得元でBMCやBaseboard系の値しか判断できない場合は、ライセンス種別ではない為Unsupportedを返します。
iDRAC8以下では、Redfishでライセンス種別を取得できない前提です。
状態値は、可能な範囲で以下のように正規化します。
OKWarningCriticalUnknownUnsupportedTimeoutAuthFailed
Unsupportedは、非対応や未導入を示す値です。
原則として、障害扱いにしない想定です。
Unknown、Timeout、AuthFailedは、環境や項目によって監視上の注意対象にするか検討してください。
Zabbixの数値型アイテムに文字列を返すと型エラーになります。
その為、取得不可時は以下のように返します。
| 項目 | 返却値 |
|---|---|
| 温度 | -273 |
| ファンRPM | 0 |
温度の取得不可時の値は、環境変数TEMP_UNSUPPORTED_VALUEで変更できます。
TEMP_UNSUPPORTED_VALUE=-999 /home/zabbix/.sh/omsa.sh tempstatus Inlet Tempmkdir -p /home/zabbix/github
cd /home/zabbix/github
git clone https://github.com/Osamix2000/zabbix-dell-omsa.gitXMLファイルをZabbix Serverへインポートする為、作業しているPCにもクローンしておくと便利です。
cd zabbix-dell-omsa既存の/home/zabbix/.sh/omsa.shがある場合は、先にバックアップしてください。
mkdir -p /home/zabbix/.sh
cp -a /home/zabbix/.sh/omsa.sh /home/zabbix/.sh/omsa.sh.bak.$(date +%Y%m%d%H%M%S)新規配置または置き換えます。
ln -s /home/zabbix/github/zabbix-dell-omsa/omsa.sh /home/zabbix/.sh/omsa.sh
ln -s /home/zabbix/github/zabbix-dell-omsa/omsa.conf /etc/zabbix/zabbix_agentd.d/omsa.conf既にファイルが存在している場合は、必要に応じてln -sfnで貼り直してください。
chown -R zabbix:zabbix /home/zabbix
chmod 700 /home/zabbix/github/zabbix-dell-omsa/omsa.shZabbix Agentからomsa.shをroot権限で実行できるようにします。
本リポジトリでは、/etc/sudoers本体へ直接追記するのではなく、/etc/sudoers.d/zabbix-omsaとして分離して管理する方針です。
詳細は🔑 sudoers.d設定を参照してください。
OMSA以外の取得では、ipmitoolやperccliが少し時間を使う可能性があります。
Zabbix Agent側のTimeoutは12秒程度を推奨します。
Zabbix Agentの場合です。
vim /etc/zabbix/zabbix_agentd.confTimeout=12
Zabbix Agent2の場合です。
vim /etc/zabbix/zabbix_agent2.confTimeout=12
Zabbix Agentの場合です。
systemctl restart zabbix-agentZabbix Agent2の場合です。
systemctl restart zabbix-agent2dell-omsa-template-ja.xmlをZabbix Serverにインポートして、対象ホストにテンプレートを割り当てます。
Zabbix Agentは通常zabbixユーザーで動作する為、Dellハードウェア情報を取得するomsa.shはsudo経由でroot権限実行します。
設定は/etc/sudoers本体ではなく、/etc/sudoers.d/zabbix-omsaへ分離することを推奨します。
これにより、Git管理やOSごとの差分管理がしやすくなります。
RedHat系では、以下のように表示されることがあります。
grep -n 'includedir' /etc/sudoers## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
この#includedirの#はコメントではありません。
その為、#は消さずにそのままでOKです。
Ubuntu系では、以下のような形式が多いです。
@includedir /etc/sudoers.d
これもそのままでOKです。
CentOS7、AlmaLinux 9、Ubuntu 24.04等、従来sudoを使う環境では、同梱のsudoers.d/zabbix-omsaを使用します。
この設定では、omsa.shに該当するsudo成功ログとPAM sessionログを抑制します。
配置例です。
install -o root -g root -m 440 sudoers.d/zabbix-omsa /etc/sudoers.d/zabbix-omsa文法確認を行います。
visudo -cf /etc/sudoers.d/zabbix-omsavisudo -cUbuntu 26.04やその他環境でsudo-rsを使う環境では、従来sudo向けの以下の設定が使えません。
Defaults!ZABBIX_OMSA syslog_goodpri=none
Defaults!ZABBIX_OMSA !pam_session
sudo-rs環境では、同梱のsudoers.d/zabbix-omsa.sudo-rsを/etc/sudoers.d/zabbix-omsaとして配置してください。
sudo-rs向け設定は実行許可のみを行い、sudoログ抑制は行いません。
配置例です。
install -o root -g root -m 440 sudoers.d/zabbix-omsa.sudo-rs /etc/sudoers.d/zabbix-omsa文法確認を行います。
visudo -cf /etc/sudoers.d/zabbix-omsavisudo -czabbixユーザーからsudo実行できるか確認します。
runuser -u zabbix -- sudo -n /home/zabbix/.sh/omsa.sh model引数付きも確認します。
runuser -u zabbix -- sudo -n /home/zabbix/.sh/omsa.sh bmc ipv4ログ確認です。
journalctl -n 100 --no-pager | grep -E 'sudo|omsa|pam_unix'従来sudo向け設定では、omsa.sh実行時のsudo成功ログとPAM sessionログが出なくなる想定です。
sudo-rs向け設定では、実行許可のみの為、sudoログはjournalに残ります。
既に/etc/sudoers本体に以下のような行がある場合は、先に/etc/sudoers.d/zabbix-omsaを作成して動作確認してから削除またはコメントアウトしてください。
zabbix ALL=(ALL) NOPASSWD: /home/zabbix/.sh/omsa.sh
安全な作業順です。
/etc/sudoers.dのincludeを確認する。/etc/sudoers.d/zabbix-omsaを配置する。visudo -cf /etc/sudoers.d/zabbix-omsaで確認する。visudo -cで全体確認する。zabbixユーザーでomsa.sh実行確認を行う。- 問題なければ
/etc/sudoers本体の既存zabbix行を削除またはコメントアウトする。 - 再度
visudo -cで確認する。
OMSAのみで監視する場合は、OMSAが正常に動いていれば最低限の監視は可能です。
OMSAなし環境、またはOMSAで取得できない項目を補助取得する場合は、以下を導入します。
/home/zabbix/.sh/omsa.sh --install-packagesこのオプションはOSを判定し、必要パッケージのインストールとIPMI関連サービスの有効化を行います。
perccliはDell配布ファイルから導入する必要がある為、自動インストール対象には含めていません。
yum -y install dmidecode ipmitool OpenIPMI curl
systemctl enable --now ipmi
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_sidnf -y install dmidecode ipmitool OpenIPMI curl
systemctl enable --now ipmi
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_siapt update
apt -y install dmidecode ipmitool openipmi curl
systemctl enable --now openipmi
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_siperccliは標準リポジトリではなく、Dell配布のdeb/RPM/tar.gzから導入します。
Dell PERC環境では、RAID、物理ディスク、仮想ディスク、BBU/CV監視の主な取得元になります。
代表的な確認コマンドです。
/opt/MegaRAID/perccli/perccli64 show/opt/MegaRAID/perccli/perccli64 /c0/vall show/opt/MegaRAID/perccli/perccli64 /c0/eall/sall showスクリプトは主に以下のパスを自動検出します。
/opt/MegaRAID/perccli/perccli64
/opt/MegaRAID/perccli/perccli
/opt/MegaRAID/storcli/storcli64
/opt/MegaRAID/storcli/storcli
Redfishは必須ではありません。
使える環境だけ補助的に利用します。
Redfishを使う場合は、以下の設定ファイルを作成します。
/home/zabbix/.config/dell-redfish.conf
/home/zabbix/.sh/omsa.sh --create-redfish-conf作成される内容の例です。
# REDFISH_BASE="https://169.254.0.1"
# 上記の接続先はこのスクリプトが読み込みます。
# curl自体はURLをコマンド引数から受け取ります。
insecure
silent
show-error
connect-timeout = 12
max-time = 12
user = "zabbix-redfish:example-password"
Redfish接続先は、設定ファイル内の# REDFISH_BASE="..."に保存されます。
環境変数REDFISH_BASEを指定した場合は、環境変数側が優先されます。
install -o zabbix -g zabbix -m 700 -d /home/zabbix/.configvim /home/zabbix/.config/dell-redfish.conf# REDFISH_BASE="https://169.254.0.1"
insecure
silent
show-error
connect-timeout = 12
max-time = 12
user = "zabbix-redfish:example-password"
chown zabbix:zabbix /home/zabbix/.config/dell-redfish.conf
chmod 600 /home/zabbix/.config/dell-redfish.conf導入後は、まず手動で状態確認してください。
/home/zabbix/.sh/omsa.sh --help/home/zabbix/.sh/omsa.sh --backend-status/home/zabbix/.sh/omsa.sh --test-omsa/home/zabbix/.sh/omsa.sh --test-local/home/zabbix/.sh/omsa.sh --test-ipmi/home/zabbix/.sh/omsa.sh --test-perccli/home/zabbix/.sh/omsa.sh --test-redfish取得元を確認したい場合です。
/home/zabbix/.sh/omsa.sh --source modelデバッグ出力を出したい場合です。
/home/zabbix/.sh/omsa.sh --debug model/home/zabbix/.sh/omsa.sh model/home/zabbix/.sh/omsa.sh stag/home/zabbix/.sh/omsa.sh bios/home/zabbix/.sh/omsa.sh idrac/home/zabbix/.sh/omsa.sh status/home/zabbix/.sh/omsa.sh bmc ipv4/home/zabbix/.sh/omsa.sh bmc device_type/home/zabbix/.sh/omsa.sh tempdiscovery/home/zabbix/.sh/omsa.sh fandiscovery/home/zabbix/.sh/omsa.sh vddiscovery/home/zabbix/.sh/omsa.sh pddiscovery| 変数 | 既定値 | 用途 |
|---|---|---|
COMMAND_TIMEOUT |
12 |
共通の内部タイムアウト秒数 |
OMSA_TIMEOUT |
12 |
OMSAコマンドの内部タイムアウト秒数 |
IPMI_TIMEOUT |
12 |
ipmitoolの内部タイムアウト秒数 |
PERCCLI_TIMEOUT |
12 |
perccliの内部タイムアウト秒数 |
IPMI_CACHE_TTL |
240 |
IPMI sensor結果キャッシュの有効秒数 |
TEMP_UNSUPPORTED_VALUE |
-273 |
温度取得不可時の返却値 |
SIZE_BASE |
1024 |
仮想ディスクサイズ換算基準 |
REDFISH_BASE |
https://169.254.0.1 |
Redfish接続先 |
REDFISH_CONFIG |
/home/zabbix/.config/dell-redfish.conf |
Redfish用curl設定ファイル |
ipmitool -I open sensorはZabbixから同時実行されると重くなりやすい為、スクリプト側でキャッシュします。
既定では240秒です。
IPMIセンサーキャッシュは、実行ユーザーごとに分離されます。
rootで手動確認したキャッシュが、Zabbix実行時に干渉しにくいようにしています。
sudoers.d/zabbix-omsaを追加しました。- 従来sudo環境では、
omsa.sh実行時のsudo成功ログとPAM sessionログを抑制できるようにしました。 - Proxmox 9、Ubuntu 26.04等のsudo-rs環境向けに、
sudoers.d/zabbix-omsa.sudo-rsを追加しました。 - sudo-rs環境では、sudoersだけで
omsa.shのsudoログを個別抑制できない為、実行許可のみ行う方針をREADMEへ追記しました。 omsa.sh本体の監視処理には変更ありません。
- まず検証サーバーで手動実行してください。
- 既存OMSAサーバーではOMSAが第1優先です。
- OMSAが異常値を返した場合は、その値を採用します。
- Redfishは取れる環境だけ補助的に使います。
- iDRAC8以下ではRedfishでライセンス取得できない前提です。
- iDRAC9/10では
DellLicenseCollectionを試します。 - iDRAC10はBasic認証だけを前提にしない方針ですが、現時点では実機未検証です。
Unsupportedは非対応や未導入を表す為、原則として障害扱いしない想定です。UnknownやTimeoutは監視上の注意対象にするか検討してください。perccliの物理ディスクIDは32:0のようなEID:Slt形式になる場合があります。- OMSAの物理ディスクID
0:1:0とは表記が異なる為、取得元を切り替える場合はZabbix上で別アイテムとして再検出される可能性があります。
OMSAのomreportパスは、既定で以下を想定しています。
/opt/dell/srvadmin/bin/omreport
環境によってOMSAが別ディレクトリにインストールされている場合は、スクリプト内のOMSAパス設定を変更してください。