ホーム » コンピュータ (ページ 3)
「コンピュータ」カテゴリーアーカイブ
muninの測定をnagios4で活用するには
switchbot の温湿度計を munin で読み取るための python スクリプトを活用していたけど、特定閾値を超えた際の処理は nagios4 の方が便利。munin の警告だと閾値を越えている間は何度も警告メールが飛んでくる。nagios であれば、こういった処理がうまい。
かといって、swichbot の python アプリを nagios の check_*** に書き換えてみたが、bluetooth のアクセス権限などの設定が煩雑だしうまくいかなかった。
でも、munin は、ネットワーク経由の監視の機能があるので、それを使うこととした。munin のリモート接続のポート番号4949に接続して、list で測定できるものの一覧が取れて、fetch すれば 値を読み取ってくれる。
((( telnet でプロトコルを確認 ))) $ telnet localhost 4949 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. # munin node at localhost list df load processes switchbotmeterbt . fetch switchbotmeterbt xxxxxxxxxxxx_Temperature.value 27.6 xxxxxxxxxxxx_Humidity.value 54 xxxxxxxxxxxx_Battery.value 87 xxxxxxxxxxxx_Discomfort.value 75.68896000000001 xxxxxxxxxxxx_WBGT.value 24.176256000000006 . QUIT Connection closed by foreign host. ((( 単純なので nc を使って読ませる ))) $ echo -e "fetch switchbotmeterbt\nQUIT\n" | nc localhost 4949 # munin node at localhost xxxxxxxxxxxx_Temperature.value 27.7 xxxxxxxxxxxx_Humidity.value 54 xxxxxxxxxxxx_Battery.value 87 xxxxxxxxxxxx_Discomfort.value 75.82342 xxxxxxxxxxxx_WBGT.value 24.268412 .
ということで、ちょっとだけ手抜きで nc とか使って perl を使って読み取らせる処理を書いてみた。
#!/usr/bin/perl use strict ; use warnings ; my $SWBT_METER = "/usr/bin/echo -e 'fetch switchbotmeterbt\nQUIT\n' | /usr/bin/nc localhost 4949" ; my %value = () ; open( my $FH , "$SWBT_METER 2>/dev/null |" ) or die( "Can't open $SWBT_METER" ) ; while ( my $line = <$FH> ) { if ( $line =~ /^[0-9a-f]+_([^.]+)\.value\s+([\.0-9]+)\s*$/ ) { $value{$1} = $2 ; $flag = 1 ; } } close( $FH ) ;
サーバのX11をWSLgに接続
ssh の ForwardX11 を使うのが簡単
((( サーバ側 /etc/ssh/sshd_config ))) X11Forwarding yes ((( wsl 側 /etc/ssh/ssh_config ))) ForwardX11 yes
((( wsl 側から ))) $ ssh -X ユーザ@サーバ
買い替えたいもの…
Apple の WWDC 2024 の発表を終え、色々と買い替えたいと思い始める。とはいいながら、優先順位つけるだろうけど。
- Apple Watch 5 2019-10-05 (5年)
- WiFi メッシュルーター Buffalo WRM-D2133HP 2019-06-27 (5年)
- iPhone 12 mini (パパすまほ) 2021-05-09 (3年)
ルーターも、すでに5年経過しているようだ。
watchOS11では、series 5 が対象外になるから、Apple Watch かなぁ…
iPhone は、Apple が想定している買い替え周期は 3 年のようだけど、iOS 18 はまだ iPhone12 をサポートしてくれそうだし。
ChatGPTにボケ入り問題を解いてもらった
授業で Forms を用いたクイズを作ってるけど、ちょっとボケた選択肢を入れてみた。でも ChatGPT に解かせたら…
(B)は正しい?
(B)の説明は以下の通りです:
Debian/trixie 更新が頻繁
自宅サーバは、Debian/testing(trixie) で動かしているけど、この10日ほどは apt upgrade をかけると、大量の更新がかかる。しかもコアなパッケージに関連するのか、”aptitude safe-upgrade” だと未適用が若干残る。lib* がこぞって更新される。まぁ、Debian/testing なんてこれが普通ともいえるけど。”aptitude full-upgrade” だと、色々と動かなくなるソフトもでるから面倒なんだよなぁ…
homebridgeはnodejs-22でまだ不安定なのか?
node.js 22 が LTS 対応で出ているようだし、homebridge を動かしている raspberry-pi にインストールしたら、起動してくれない。仕方がないので再び node.js 20 にダウングレード。
xz-utils のバックドア問題
XZ形式の圧縮ファイル生成/解凍の xz-utils にバックドアが仕掛けられるというトラブルが報告されている。オープンソースで開発されているソフトで、誰かがソースコード中に悪意のあるコードを仕込んだらしい。このため、ソースでビルドされたパッケージにも影響する。xz-utils の 5.6.0, 5.6.1 が該当し、Debian でも testing / trixie などでインストールされる。
xz-utilsの確認とダウングレード Debian/trixie
確認すると、しっかりインストールされていた。
$ dpkg -l | grep xz-utils ii xz-utils 5.6.1+really5.4.5-1 amd64 XZ-format compression utilities
さすがに怖いので、安全なバージョンが出るまでダウングレードだな。
$ sudo apt install xz-utils/stable $ sudo aptitude hold xz-utils
Ubuntu 2.2 LTSは大丈夫
dpkg -l | grep xz-utils ii xz-utils 5.2.5-2ubuntu1 amd64 XZ-format compression utilities $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.4 LTS" :
具体的な情報を探すと 「vulnerableなxzがインストールされている状態で xz –version を実行するとバックドアが開いてしまうので実行するなという話だそう。」という情報があるし、インストールされているとはいえ自分自身で活用していないので “xz –version” は実行していない。というか、この記事を遡ると Debian の 5.6.1+really5.4.5-1 は、5.4.5 に戻されていて大丈夫みたいだな。ということで改めて、apt install xz-utils で、5.6.1+really5.4.5-1 が入った。5.6.1 の様に見えるけど、実は 5.4.5 。
wordpressでWP_SITEURL,WP_HOMEでプロトコル指定を省略できないか?
ケーブルテレビのSTBのブラウザで、自宅サーバに接続させようとすると接続が拒否られる。letsencryptのroot証明を受け付けてくれないのが原因。一部の動作確認ページをブラウザから接続させたいと思うけど、自宅サーバはWordPressなのでhttpsで WP_HOME, WP_SITEURL がしてあるために、強制的に https になってしまう。
試しに、wp-config.php で “https://hostname” でなく、”//hostname” とか “/” を指定してみた。
“/” だと、ページが上手く表示されない。(cssなどがうまく読み込めていない様子)
“//hostname” だと、ページは表示できるけど、wp-login.php でのログインが上手くいかない。(多要素認証のプラグインが影響しているのかもしれない)
saslauthd のトラブル
saslauthdが起動しない
メールの送信機能が動いていない。色々と調べたら、”systemctl start saslauthd” を実行しても起動しない。
正確に言うなら、systemctl が終わらない。1,2分ほど待つとタイムアウトが発生して強制終了となっている。
# systemctl start saslauthd # --- 1,2分で強制終了となる # journalctl -xeu saslauthd # journalctl で確認できるとのメッセージがあるので The job identifier is 21448. 3月 15 08:51:27 xxxx saslauthd[33874]: : master pid is: 33874 3月 15 08:51:27 xxxx saslauthd[33874]: : listening on socket: /var/spool/postfix/var/run/saslauthd/mux 3月 15 08:51:27 xxxx systemd[1]: saslauthd.service: Can't open PID file /run/saslauthd/saslauthd.pid (yet?) after start: No such file or directory 3月 15 08:52:57 xxxx systemd[1]: saslauthd.service: start operation timed out. Terminating. 3月 15 08:52:57 xxxx saslauthd[33874]: : master exited: 33874 3月 15 08:52:57 xxxx systemd[1]: saslauthd.service: Failed with result 'timeout'. ░░ Subject: Unit failed
postfix の smtp認証の設定の影響
色々調べると、こちらの記事を見つける。
postfix の中で、smtpd の起動はデフォルト(非chroot)では、/var/run/saslauthd の中にパイプなどを作る。しかし、postfix で SMTP認証を使えるように設定するための設定では、smtpd を chroot で起動するために、/etc/default/saslauthd の中の設定で、/var/spool/postfix/var/run/saslauthd を使うように指定しないといけない。
((( /etc/default/saslauthd ))) # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information. # See the saslauthd man page and the output of 'saslauthd -h' for general # information about these options. # # Example for chroot Postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" # Example for non-chroot Postfix users: "-c -m /var/run/saslauthd" # # To know if your Postfix is running chroot, check /etc/postfix/master.cf. # If it has the line "smtp inet n - y - - smtpd" or "smtp inet n - - - - smtpd" # then your Postfix is running in a chroot. # If it has the line "smtp inet n - n - - smtpd" then your Postfix is NOT # running in a chroot. OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
しかし、何らかの更新の中で 非chroot の /var/run/saslauthd を参照する設定となり、この中にパイプなどを作っても反応がないために、起動に失敗している様子。
ということで、元記事に書いてあるように、/var/spool/postfix/var/run/saslauthd を使わせるために、シンボリックリンクを設置する。saslauthd パッケージの更新で chroot 起動の判定が不十分なのではないかな。
# rm -rf /var/run/saslauthd # ln -sf /var/spool/postfix/var/run/saslauthd /var/run/saslauthd # systemctl start saslauthd
(追記) 次は Permission denied
無事に saslauthd は起動するようになったけど、次はパスワード認証が受け付けない。LOG を確認すると下記のエラーがでるようになった。
2024-03-15T11:59:10.543324+09:00 xxxxx postfix/smtpd[46317]: warning: xxxxxx[xxx.xxx.xx.xx]: SASL PLAIN authentication failed: generic failure, sasl_username=xxxx@xxxx.xxx 2024-03-15T11:59:10.560548+09:00 xxxxx postfix/smtpd[46317]: warning: SASL authentication failure: cannot connect to saslauthd server: Permission denied
これまた、調べてみたけど /var/spool/postfix/var/run/saslauthd 配下のファイルのパーミッションが原因っぽい。
配下のファイルに、下記の制限を設定して無事にメールが出せるようになった。
# chmod -R +x /var/spool/postfix/var/run/saslauthd/
muninで計測した値を参照する方法
muninで測定している値を、nagios でチェックするプラグインを作ったり、homebridge で参照する方法。
(( 最後の5分の LAST 値を参照 )) $ rrdtool fetch 測定対象-g.rrd LAST -s -5min -e now 42 1707829800: 1.5195333333e+01 1707830100: -nan