Pythonとzabbix-senderでRaspberry PiのCPU動作電圧をZabbixサーバーに送信する方法を紹介します。
zabbix-senderとは
zabbix_senderは、監視データをZabbixサーバーに送信するコマンドライン機能です。
このコマンドを使用すると、監視対象から監視サーバへ指定した値を送信できます。
zabbix_senderコマンドの書式と主なオプションは以下のとおりです。
# zabbix_sender -vv -z-s <登録されているホスト名> -k <トラッパーのキー> -o <送信する値>
| オプション | 概要 |
|---|---|
| -z –zabbix-server |
Hostname or IP address of Zabbix Server |
| -v –verbose | Verbose mode, -vv for more details |
| -s –host |
Specify host name. Host IP address and DNS name will not work |
| -k –key |
Specify item key |
| -o –value |
Specify value |
Zabbix Agentをインストール済のホスト上では、zabbix_senderコマンドを利用できますが、
Zabbix ServerやZabbix Agentが入っていない端末では、zabbix-senderパッケージをインストールする必要があります。
今回は、Zabbix ServerをインストールしたRaspberry Pi 5の動作電圧をPythonで取得して送信します。
zabbix-senderパッケージのインストール
Raspbeery Pi OSの場合、以下のコマンドでzabbix-senderパッケージをインストールします。
# apt install zabbix-sender
サーバー側でアイテムを作成(Zabbixトラッパーの設定)
zabbix-senderで送信したデータをZabbixサーバーで受信するには、アイテムを作成し、Zabbixトラッパーの設定を行う必要があります。
以下の内容でアイテムを作成します。
| 項目 | 値 |
|---|---|
| 名前 | CPU Voltage |
| タイプ | Zabbixトラッパー |
| キー | cpu_voltage |
| データ型 | 数値(浮動小数) |
| 単位 | V |
ホスト側でスクリプトを作成
①ホスト側でPythonスクリプトを作成します。
【/home/username/cron/send_raspi_info.py】
import subprocess CMD = ['zabbix_sender', '-z', '127.0.0.1'] CPU_VOLTAGE_OPTION = ['-k', 'cpu_voltage', '-o', '`vcgencmd measure_volts | tr -d "volt=V"`'] subprocess.run(CMD + CPU_VOLTAGE_OPTION)
②上記スクリプトの定期実行をcronに登録します。例えば1分毎なら以下のように設定します。
*/1 * * * * /usr/bin/sh /home/username/cron/send_raspi_info.py
※cronの登録方法は以下ページで解説しています。

③1分毎にアイテム「CPU Voltage」の値が更新されていれば送信成功です。
関連ページ
Zabbixの使い方については以下ページにまとめています。

Ubuntuの使い方については以下ページにまとめています。

コメント