ホーム » コンピュータ (ページ 9)
「コンピュータ」カテゴリーアーカイブ
よく出来たフィッシングだな….
コロナ感染入院給付金の請求
と思いフィルタ設定をしようと “Received:”タグを確認して、送信元の IP アドレスを確認したら本物だった。
改めて、日本生命さんのサイトに”メールのリンクを使わずに”ログインして確認してみたけど、しっかり自宅サーバのメアドも登録してあった。
<重要>【三井住友カード】お取引が決済できませんでした
((( /etc/postfix/main.cf ))) smtpd_client_restrictions = permit_mynetworks, check_client_access regexp:/etc/postfix/smtpd_client_regexp : ((( /etc/postfix/smtpd_client_regexp ))) : /\.googleusercontent.com$/ REJECT
Raspberry-Pi MZ80C のボード差し替え
RPi model A+ が異常
以前に購入した Raspberry-Pi model A+ の MZ80C だけど、ボードがおかしくなっているのか、CPU 負荷がアイドル状態なのに 100% となっている。同様の Rapberry Pi と処理速度も変わらないし、何か変。RPi3 のボードに比べると処理速度も遅いし、RPi 3 model A+ のボードが同じ RPi3 model B より割安なのでボード差し替えをやってみる。
RPi 3 model A+ に差し替え
せっかくだし、表示部分も I2C 接続の SSD1306 の OLED Display を買う。
https://github.com/adafruit/Adafruit_Python_SSD1306
((( SSD1306 ))) GND VCC SCL SDA 黒 白 灰 紫 ((( BME280 ))) VDD GND NC SDI SDO SCK VDD GND -- SDA --- SCL 白 赤 × 黄 × 青 ((( Raspberry-Pi ))) 3.3 SDA SCK × GND
BME280, Adafruit SSD1306を使えるように
この RPi は、2Fのトイレに設置して、2Fの廊下全体の温度を測っていた。なので、載せ替えした RPi にも同様の機能を移植。
なんとか動くようになったかな。
ただ、syslog を見ると、電源電圧不足の警告が出ているし、たまに繋がらなくなる。確認すると再起動してる。USB電源アダプタ電流とれるやつに差し替えが必要だな。
次のホームサーバの検討
先日、安定して動いていた自宅サーバでトラブル発生。自宅BLOGをみると 2010年から動かしているみたいだな。そろそろ、次のサーバへの移行も考える時期かな。
最近の運用状況からすれば、CPU能力が必要な訳ではないし、今のサーバでも能力不足は特に感じない。小型PC用の CPUがN100 , Mem=8GB で、Windows11 が動くのものが、3万円ほどでも見つかる。
でも、同じような性能であれば、かなり古い macbookair に Ubuntu を入れたマシンもある。性能面で持ち運びで使う機会もないし、これでもいいのかな。とはいえ、そのmacbookair も調べると 2010 年の製品。SSDとかバッテリーは途中で買えているとはいえ、現行の自宅サーバと同年代か。
Twitter API有償化
Twitter に書き込んでいた自分の記事を、週末に自鯖のWordPress に転載させていたけど、昨日は認証に失敗。Twitter API ver 1.1 で記事を上げていたけど、Twitter API が有償化の影響だろう。
話には聞いていたけど、API で読むにしても書き込むにしても大した量じゃなし、影響考えてなかった。改めて確認すると、Tweet は一定量以下なら無償で利用できるけど、Tweet 取得は有償化の対象らしい。
んで、確認すると、Tweet取得をするのなら $100/月。うーん、使う気起こらねぇ。
自宅サーバトラブル
エコキュートのメモを書き残していたら、急に自宅サーバに繋がらなくなる。ping も通らない。
デバイスが見つけられなくなり、起動できなかったけど BIOS の boot device を色々触っていたら、なぜだか復帰。
一時的なトラブルならいいけど、サーバ故障の予兆かもしれないので、メモとして残す。
そろそろ、サーバも更新の準備をしておくべきかも。
Raspberry Pi の bullseye 更新
いつも大きい更新をかける時は、依存関係でトラブルから、利用頻度の低いパッケージを削除したり、重要なパッケージだけ個別に更新していたけど、”apt upgrade –without-new-pkgs” は、便利なコマンド。これなら、ディスク容量が少ない Raspberry-Pi でも途中で容量不足で止まったりといった心配も少ない。
((( busterで更新 ))) $ sudo aptitude update ; sudo aptitude safe-upgrade ((( bullseyeの登録 ))) $ sudo vi /etc/apt/sources.list.d/11-bullseye.list deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi ((( 最小限アップグレード ))) $ sudo aptitude $ sudo apt upgrade --without-new-pkgs $ sudo aptitude safe-upgrade
2台まとめての buster→bullseye 更新でいくつか、自分の家専用の処理が動かなくなったが、ボチボチと修正し復帰かな。
リモート監視 nagios-nrpe を使ってみる
Raspberry-Pi で WiFi スキャンをさせたいけど、警告を出すために raspberry-pi 側に nagios4 のような本格的な監視システムを入れるのは資源のムダに思えたので、軽量な監視とすべく、リモート監視用の nagios-nrpe-server を使ってみた。
メインサーバ port=5666 リモート 監視プラグイン nagios4 ----> check_nrpe ------------> nrpe ----> check_root nagios-nrpe-plugin nagios-nrpe-server
nrpe は リモートの監視プラグインを check_nrpe と nagios-nrpe-server が経由して呼出してくれる。
リモートの監視側
nagios-nrpe-server をインストールして、監視サーバからの接続を許可する。インターネット経由で監視するなら、5666 ポートが通るようにファイアウォールの設定が必要。
((( 必要パッケージのインストール ))) $ sudo aptitude install nagios-nrpe-server ((( /etc/nagios/nrpe.cfg ))) # 監視サーバからの接続を許可 allowed_hosts=127.0.0.1,::1,192.168.xx.00/24 ~~~~~~~~~~~~~~~~~(追加) ((( /etc/nagios/nrpe.d/enabled.cfg ))) # 監視するためのチェック処理を登録。nrpe.cfg から nrpe.d/*.cfg に設定を移動 command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p / command[check_load]=/usr/lib/nagios/plugins/check_load $ARG1$ ((( /etc/default/nagios-nrpe-server ))) # 自宅内のような閉じた中でSSLが不要の場合 NRPE_OPTS="-n" ((( nagios-nrpe-server を再起動 ))) $ sudo systemctl restart nagios-nrpe-server
メインの監視サーバ側
nrpe用のプラグインをインストールすると、/etc/nagios-plugins/config/check_nrpe.cfg や /usr/lib/nagios/plugins/check_nrpe を入れてくれる。
((( 監視側にnrpe用のプラグインを追加 ))) $ sudo aptitude install nagios-nrpe-plugin # nagios or icinga はインストール済み ((( nrpe の入ったリモートが呼び出せるか確認 ))) $ /usr/lib/nagios/plugins/check_nrpe -H リモート -c check_root DISK OK - free space: / 21321 MB (74% inode=86%);| /=7363MB;23944;26937;0;29930 ((( /etc/nagios-plugins/config/check_nrpe.cfg ))) # nagios/icingaなどのcommand設定の確認 # this command runs a program $ARG1$ with no arguments and enables SSL support define command { command_name check_nrpe command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } # this command runs a program $ARG1$ with no arguments and disables SSL support define command { command_name check_nrpe_nossl command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -n } ((( nagios4 のサービス監視に check_nrpe を呼出す設定を追加 ))) define service{ use local-service host_name リモート service_description DISK check_command check_nrpe!check_root # check_command check_nrpe_nossl!check_root # SSLなしで設定した場合 } ((( nagios4 を再起動 ))) $ sudo systemctl restart nagios4
nagios4 で監視ができるようになったので、温湿度センサーや空気品質センサーの確認も nrpe 経由に変更してみた。
WiFiスキャンをさせてみた
自宅内のネットワークに繋がらない時があって悩んだら、外で使っていたモバイルルータがつけっぱなしで、自宅内ネットワークのサービスに接続できないのが原因だったりする。パケットも無駄に消費するので、自宅内でモバイルルータが動いていたら警告させるようにしたい。
wifi scan
メインサーバは有線だけなので、有線LAN接続で WiFi が空いている Raspberry-Pi で監視させてみた。
$ sudo iw dev wlan0 scan | grep "SSID: ルータのSSID"
最初は homebridge の homebridge-cmdswitch2 の state_cmd に仕込んでみたけど、モバイルルータが動いていたら警告してほしい。Siri のオートメーション経由で警告することもできるかもしれないけど、スマホに頼る形になるなぁ。
nagios で警告させたいけど、raspberry-pi に nagios を入れるのは資源のムダに思える。ということで、Raspberry-Pi には nagios の監視をリモートで呼び出す nagios-nrpe-server を 入れて、上記 iw コマンドを動かす check スクリプトを書いてみた。
check_iwscan
nagios-nrpe-server から呼出す際に、Raspberry-Pi で動かすのもあるし、OS 負荷が軽くなるように Lua で書いてみた。
#!/usr/bin/lua -- 見つけるべきSSID local check_list = {} check_list[ "tsaitoh.net" ] = "ok" check_list[ "tsaitoh.net_e5785" ] = "warning" check_list[ "tsaitoh.net_hwd14" ] = "critical" -- 見つけたSSID毎の数 local count = {} count[ "ok" ] = 0 count[ "warning" ] = 0 count[ "critical" ] = 0 -- スキャン結果を処理 local handle = io.popen( "/usr/bin/sudo /sbin/iw dev wlan0 scan" , "r" ) if handle then for line in handle:lines() do -- SSID を抽出 ssid = string.match( line , "^%s*SSID: (.+)$" ) if ssid then -- SSID のカウント local lv = check_list[ssid] if lv then count[lv] = count[lv] + 1 end -- print( ssid ) ; end end handle:close() end -- カウント結果に応じたexit値を決める local status = 0 local st_mess = "Ok" if count["critical"] > 0 then status = 2 st_mess = "Critical" elseif count[ "warning" ] > 0 then status = 1 st_mess = "Warning" end -- 結果の表示 print( string.format( "IWSCAN %s - ok:%d/warn:%d/critical:%d" , st_mess , count["ok"] , count["warning"] , count["critical"] ) ) os.exit( status )