自宅のZabbixサーバーのVMをUbuntu24.04に移行する一環で、Zabbixも5系から7系にジャンプしました。
それ自体はわりとすんなり片付きましたが、Pythonで値を取得するスクリプトが動かなくなってしまいました。どうやらログイン時のパラメータの仕様が変わったらしいのですが、残念なことにライブラリの更新が止まっていて、各々がパッチを作って雑対処している様子がプルリクとかフォークのコミットから見えました。
github.com
昔は公式がライブラリの紹介なのしてた気がするなあと思ってググってみたところ、公式が開発を始めていたので、こちらに移行することにしました。
github.com
ずいぶん差分が少ないな……?
ざっくりとした差分はこんな感じ。トークンを使うように変えてみたのでログイン周りが差分多めに見えますが、インポートするライブラリ名が変わった以外、クラスとかitem.getは変わっていません。なにこれ、フォークしたとかなのかな……?って思ったけどそうではないっぽいです。ともあれ簡単に移行できてありがたい限り。
- from zabbix.api import ZabbixAPI
+ from zabbix_utils import ZabbixAPI
- zbx = {
- 'url': '',
- 'user': '',
- 'pass': ''
- }
+ZABBIX_AUTH = {
+ "url": "192.168.29.102",
+ "token": "6d02cce218ffc1789f9b43aa779513f92a654394997bf57163155ac9faa7db19"
+}
- z = ZabbixAPI(url=zbx['url'], user=zbx['user'], password=zbx['pass'])
+ z = ZabbixAPI(**ZABBIX_AUTH)
print(z.item.get(itemids=[31323])[0])
ZabbixSender系
ZabbixSender系のスクリプトはまだ問題なく動いていましたが、こちらもzabbix_utilsに移行しました。こちらも名前が多少変わった以外の変更がないのがわかります。これなら雑置換でも対応できるレベルです。
$ diff -Naur backup/raspi1/Thu/bots/send_temp_zabbix.py bots/send_temp_zabbix.py
--- backup/raspi1/Thu/bots/send_temp_zabbix.py 2021-08-28 15:35:22.236318457 +0900
+++ bots/send_temp_zabbix.py 2024-08-16 23:04:29.076383258 +0900
@@ -2,7 +2,7 @@
import sys
import urllib.request
import json
-from pyzabbix import ZabbixMetric, ZabbixSender
+from zabbix_utils import ItemValue, Sender
api = "http://127.0.0.1/api/temp"
@@ -16,8 +16,8 @@
data = json.loads(body)
params = [
- ZabbixMetric("raspi1.local.marokun.net", "room_temp", data['temperature']),
- ZabbixMetric("raspi1.local.marokun.net", "room_humidity", data['humidity']),
- ZabbixMetric("raspi1.local.marokun.net", "room_pressure", data['pressure'])
+ ItemValue("raspi1.local.marokun.net", "room_temp", data['temperature']),
+ ItemValue("raspi1.local.marokun.net", "room_humidity", data['humidity']),
+ ItemValue("raspi1.local.marokun.net", "room_pressure", data['pressure'])
]
-result = ZabbixSender(use_config=True).send(params)
+result = Sender(use_config=True).send(params)
移行するか
今回は頭上のメインラズピッピ環境でだけ作業しました。が、たぶん他のラズピッピとかあちこちで動いていたり、Githubにも公開しているものがいたはずなので、そのへんの手直しもやらにゃいかんなあとなりました。
夏休みなんか頑張った気分になるために頑張るかー。いや、自宅サーバーの移行をそろそろやれよという話はある……。