LINE bot が動いていない… 月当たり最大数オーバー
我が家では、以前より 自宅専用の LINE bot を動かしていて、サーバからの通知に使っていた。
最近は、homebridge-people-pro による家への出入りの通知を、LINE に流す設定を便利に使っていたけど、先週からメッセージが滞っている。プログラムのトラブルかと思ったけど、特に問題はなさそう。
LINE bot 無料プランは最大200メッセージ/月
でも改めて考えてみたら、LINE bot が出せる最大メッセージ制限を疑う。確認すると、「無料プランだと月に200メッセージまで」とな。最近は、homebridge からの通知は1日10通ほどでてるし、軽くオーバーしてらぁ。先週 6/18 で止まってるし、まあまあ、そんなもんだな。
ということで、homebridge-inotify からの通知に LINE を使うのは最小限にしなくては。
rkhunter の設定
卒研のセキュリティの説明の中で rkhunter を紹介。説明してたら、自宅サーバにはサーバ機以降後に rkhunter がインストールされていなくって、説明がてらでインストール。
/usr/bin/lwp-request に警告が出ていたけど、Gemini で問い合わせしたら、Perl script なので、警告がでるかも。パッケージ情報を設定すれば、パッケージ情報を踏まえた検証をしてくれるようになって警告が消えるとのことなので、
((( /etc/rkhunter.conf ))) PKGMGR=DPKG # Ubuntuなので
を設定。
Checking if SSH root access is allowed [ Warning ] の警告も出ていて確認したが、確実に PermitRootLogin no に設定しておこう。
((( /etc/ssh/sshd_config ))) #PermitRootLogin prohibit-password (デフォルト) PermitRootLogin no
network トラブル kde-plasma-desktop
自宅ネットワークが動かなくなる。
原因は Ubuntu の記事で KDE Plasma が X11 から Wayland への移行がすすみ安定してきたとのことで、”apt install kde-plasma-desktop”を実行。これがトラブルの始まりだった。
この中でたっぷりパッケージインストールがあったけど、この中で firewalld がインストールされたと共に、iptables-persistent , netfilter-persistent が uninstall された。最終的な症状としては firewalld が DNS をブロック(他のポートもほぼ全部シャットアウト)したようで、自宅ネットワークで名前解決が動かなくなり、自宅全体が ネットワークにつながらない(パケットは流れるけど、名前解決できなきゃ何もできない)
端末側で nslookup server 192.168.xx.xx でサーバに問い合わせをかけても返事がない。nmap 192.168.xx.xx で確認すると、ssh 以外のポートが全滅。iptables -L -n してもちゃんと普通のルールが表示されるし、iptables を消去しても変化なし。この辺でようやく iptables の問題ではないと見えてくる。(でもこの段階で別のFireWallが動いているとはイメージできてなかった)
ということで、
$ sudo apt purge firewalld $ sudo apt install iptables-persistent netfilter-persistent $ sudo netfilter-persistent save # 最初、iptables-persistent も消えているのに気づかず、 # netfilter-persistent save が動かず悩んだ。
設定を復旧するなか途中で LAN (enp2s0) も動かなくなるけど、netplan の設定をやり直して無事回復。(netplanの一言をメモに残しておかないと、IPアドレス固定の設定どこでやったっけ…ということを思い出せない NetworkManager だっけ /etc/network 配下だっけ…と無駄に悩む)
$ cd /etc/netplan $ sudo vi 90-NM-xxxx....xxxx.yaml $ sudo netplan apply
letsencryptのCAA関連のトラブル再び
letsencrypt から自宅サイトの証明書の更新が切れるとの警告メール。
自動更新にしているはずなのに….
確認してみると、CAAのエラー
$ sudo /etc/dehydrated/update-dehydrated --force --cron ERROR: Challenge is invalid! (returned: invalid) (result: ["type"] "http-01" ["url"] "https://acme-v02.api.letsencrypt.org/acme/chall/xxxxxxx/xxxxxxxxxxxx/_VfALA" ["status"] "invalid" ["validated"] "2025-06-06T00:54:07Z" ["error","type"] "urn:ietf:params:acme:error:caa" ["error","detail"] "During secondary validation: While processing CAA for tsaitoh.net: CAA record for tsaitoh.net prevents issuance" ["error"] {"type":"urn:ietf:params:acme:error:caa", "detail":"During secondary validation: While processing CAA for tsaitoh.net: CAA record for tsaitoh.net prevents issuance"} ["token"] "xxxxxxxxxxxxxxxxxxxxxxxx--xxxxxxxxxxxxxxxxx" ["validationRecord",0,"url"] "http://tsaitoh.net/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxx--xxxxxxxxxxxxxxxxx"
mydns.jp で運用している DNS の設定に、IN CAA 0 issue “letsencrypt.org” を加える必要があるらしい。
でも、長年運用していたので、問題ないはずなんだけど、dig で確認すると、設定が消えている。
$ dig @8.8.8.8 tsaitoh.net CAA tsaitoh.net. 300 IN CAA 0 issue "\000"
実際、自分の記事で確認すると、CAA のトラブルの記事 でちゃんと設定していたはず。
サーバの移行によって、CAA レコードが消えたのかな…!?!? mydns の設定を間違って消したのかな…!?!?
ということで、mydns.jp で CAA の設定を修正して無事更新。
Ubuntu25とWaylandとgdm
先日、Ubuntu24から25にアップグレードを行ったけど、Muninのusersプラグインに、今までにないttyとOther users の出力が出るようになっている。
確認すると、gdm が 2つ 出力されている。不気味だし、Gemini に gdm に聞いてみたら、どうやら Ubuntu 25 の導入で X11 が Xorg から Wayland に切り替わって gdm セッションが login 情報として表示されるようになったらしい。
gdm seat0 2025-05-23 23:04 gdm tty1 2025-05-23 23:04 <<myid>> sshd pts/0 2025-05-22 19:36 (192.168.xx.xx)
Ubuntu 25.04 アップグレード
Ubuntuに Desktop で入ったら、Ubuntu 25.04 (Plucky Puffin)が出てるしアップグレードする?ってでたから、インストール。
ほとんど問題なく立ち上がると思ったけど、再起動後 apache2 が起動しない。php8.3 から php8.4 に移行されていたので、モジュールを追加インストール。トラブルと面倒そうなメール周りは、特に問題なし。
# apt install `dpkg -l | grep php8.3 | awk '{print $2}' | sed s/8.3/8.4/`
NFSが動かなくなってるな。”systemctl start nfs-kernel-server”で動き出した。systemctl enable nfs-kernel-server もやっとくか。
homebridge-people-pro + inotify 検出処理
homebridge-people-pro による、WiFi ping を使った在宅確認をしていたが、その検出状態を Linux の inotify 機能で、様々な通知を行う処理を自作運用中。
しかし、最近、自宅にいる状態なのに外出検知をすることが発生中。WiFi で ping で調べる仕組みだけど、サーバの負荷を上げないように、ping 間隔は 約1分間隔で設定していた。ping に失敗することも多いようなので、 ping 間隔を 約30 秒に変更。
Ubuntu 24.04 LTS を 24.10 normal に更新
ただのメモ
自宅サーバを更新するにあたって、Ubuntu 24.04 LTS を入れたけど、以前の Debian では testing で運用していたし、Ubuntu も LTS より 新しくさせたい。
ということで、Ubuntu 24.04 LTS(Noble Numbat) から 24.10 normal(Oracular Oriole) に更新。
$ sudo apt install ubuntu-release-upgrader-core $ sudo vi /etc/update-manager/release-upgrades ((( 修正 ))) # /etc/update-manager/release-upgrades - Prompt=lts + Prompt=normal $ do-release-upgrade
switchbot API の排他処理とリトライ
自宅サーバを更新し、Switchbot の温度監視を munin でグラフ化、その結果を nagios4 で結果のモニタリングをしていたけど、新しいサーバで Unknown の状態が頻発している。旧サーバでの運用時より、発生回数が増えている。
排他処理とリトライの追加
Switchbot API での値の取得だけれど、muninでの値取得とnagios4での値取得の処理と重なるとデータ取得に失敗すると思われるので、flock コマンドで排他処理を追加。これである程度は Unknown が減ったが、それでも Unknown 発生する。
しかたがないので、Switchbot API で 成功ステータス100が取れなかった時は、1秒の間をあけて1度だけリトライするようにした。(当初は0.3秒 sleep にしたけど効果が薄かった) これにより Unknown はかなり減ったけど、まだ失敗することがある。しかしながら、Switchbot API の1日あたりの回数制限もあるし、何度もリトライさせるのはやめておこう。
#!/bin/bash . "/usr/local/etc/switchbot/token-v11.sh" function curl_status() { # flockで排他処理 /usr/bin/flock -x /tmp/switchbot-api.lock \ /usr/bin/curl -s --request GET \ -H "Content-Type: application/json" -H "Authorization: ${token}" \ -H "sign: ${sign}" -H "nonce: ${nonce}" -H "t: ${t}" \ "${url_list_v11_meter}" } function device_status() { url_list_v11_meter="${url_list_v11}/$1/status" JQ=/usr/bin/jq json=$(curl_status) state=$($JQ '.statusCode' <<< "$json" ) # 取得に失敗したら1度だけリトライ if [ "$state" != "100" ]; then # リトライ間隔(sleep 0.3 では効果が薄かった) sleep 1 json=$(curl_status) fi $JQ -r '. | (.statusCode|tostring) + " " + (.message|tostring)' <<< "$json" }
(追記) 0:00 頃に unknown
上記の改良後だけど、2日連続で 0:00 に unknown 状態になる。 Switchbot HUB 自身が、日替わり時に何らかの処理を実行しているんだろうなぁ…
homebridgeも新サーバに移行
今まで、raspberry-pi で動かしていた、homebridge を 新サーバに移行させた。
機能の中には、webとhomebridgeの連携で、機能の中継でムダな処理があったけど、一体化してすっきり。
ただ、cec-client による HDMI を使った TV,CATVSTB などのON/OFF/入力切替 については、パソコンではできないので、cec-client 処理は raspberry-pi に依存したまま。