smartctl を使用して取得したSMART情報をZABBIXに送信します。 WindowsとLinuxに対応しています。 外部コマンドとしてsmartctlに依存します。なお、zabbix_senderは使用しません。
python3 smart_to_zabbix.py
git clone https://github.com/yakumo-saki/smart_to_zabbix.git
環境変数で設定可能です。設定可能項目は以下の通り。
変数名 | 設定例 | 用途 |
---|---|---|
ZABBIX_SERVER | 192.168.1.123 | Zabbixサーバーのホスト名orIPアドレス。省略不可 |
ZABBIX_PORT | 10051 | Zabbixサーバーのポート。省略時は10051 |
ZABBIX_HOST | test | Zabbixホスト名。省略不可 |
以下の2つの方法があります。同時に行われた場合は、exportされた環境変数が優先されます。
export ZABBIX_SERVER=192.168.1.123
export ZABBIX_PORT=10051
export ZABBIX_HOST=test
.env.sample ファイルを .env にコピーして内容を編集してください。 .envファイルは存在しなくても動作します。
Zabbixの設定 → テンプレート → インポート(右上) を押す
zabbix_templates/zbx_export_templates.xml
を選択。
smart_to_zabbix xxxxxxxx by yakumo-saki
テンプレートをホストに紐付け。
(テンプレート名がアレだと思う場合はリネームしてください。)
- (特にテンプレートに値を追加したとき)discovery後にアイテムが生成されるのに時間がかかり(?)値の送信がfailedになることがある。
LLDの応答
zabbix_get -s 192.168.10.190 -k vfs.fs.discovery | jq
zabbix公式の説明 https://www.zabbix.com/documentation/current/manual/appendix/items/trapper
py-zabbix (特に Sender.py) https://github.com/adubkov/py-zabbix
https://www.slideshare.net/takeshiyamane9/lld-zabbix
http://blog.father.gedow.net/2015/12/08/aws-lambda-python-send-metric-value-to-zabbix/
ESP-WROOM-02からZabbixサーバーにZabbix senderプロトコルでデータを送信する (データ送信時の形式について参考にさせていただきました) https://qiita.com/mutz0623/items/2c7eae0f762d760875bb
SSDのS.M.A.R.T.を調べてみた https://qiita.com/ken-yossy/items/ecb827f7a60b3e27588e
(上記リンクされているSMARTリファレンス) Micron https://www.micron.com/search-results?searchRequest={"term":"SATA SMART"}
IronWolf 125 ユーザー・マニュアル https://www.seagate.com/jp/ja/products/nas-drives/ironwolf-ssd/#specs
Estimating SSD Endurance With SMART Attributes https://insights.samsung.com/2016/05/20/estimating-ssd-endurance-with-smart-attributes/