【Zabbix】Pythonとzabbix-senderでRaspberry PiのCPU動作電圧を送信

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の登録方法は以下ページで解説しています。

【Linux】cron/crontabの読み・書き方・設定方法
Linuxのcronの読み・書き方・設定方法についてまとめました。

③1分毎にアイテム「CPU Voltage」の値が更新されていれば送信成功です。

関連ページ

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

Zabbix入門 使い方まとめ
Zabbixとは?使い方やインストール方法について紹介します。

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

【Linux超入門】システムの基礎とよく使うコマンドなど徹底解説
Linuxシステムの基礎とよく使うコマンドなどについて入門者向けに解説します。

コメント