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の使い方については以下ページにまとめています。
コメント