年末の大事件?

閲覧数: 28(1)

明けましておめでとうございます。新年早々ですが、年末の大事件(?)をお伝えします。花巻のリモートワーク拠点は転職に伴い、長期休暇以外の平時は不在となるため、遠隔地(広島とかw)から様子を見たいと思い、昨年の3月からライブ配信(居間の窓から外を見る形)をしています。近所の犬の散歩や家猫さんが遊びに来ている様子、警備主任に任命したカラスが飛ぶ様子などを24時間(夜は真っ暗ですがw)配信中です。仕掛けは得意のラズベリーパイにUSBカメラという至って単純な組み合わせで、Pythonで書いた自作のプログラムが動画の録画と配信、動体検知した時の静止画の保存などを行なっています。

年末の休みでリアル花巻ライフとなって数日、12月29日の朝いつものようにローカルネットワークから接続しようとしたところ、SSH接続自体は出来るものの、ローカルにしてはレスポンスが悪い、ライブ配信も遅延してブラウザでエラーになる、あまり原因を深く考えず、とりあえず再起動(shutdown -r now)してみる。しばらく待って(pingは通ったので)メンテナンス端末であるMacからSSH接続しようとするも拒否られ(REFUSE)続ける、あれ?これってやばくね?夏休みの時はラズベリーパイ用の液晶モニターとキーボードを持って来ていて、完全ローカル接続が可能であったのですが、今回は重メンテナンス作業は計画していなかったので、リモート接続の用意しかしていません。何回かラズベリーパイの電源を抜いて再起動するも状況に変化なし、ここに至っては重大障害発生を宣言するしかありませんw

ラズベリーパイのストレージは「MicroSD Card」なので、メンテナンス端末であるMacで焼き直しをすればOSはすぐに稼働するようには出来る。その他の設定もネットワークさえ繋がれば何とかなる、ライブ配信用のプログラムはそもそも自作だし、広島に置いてきたテスト用端末がほぼ同じバージョンで動作中、これをコピーすればOKのはず。問題は「MicroSD Card」用のアダプターが無いことと、今の「MicroSD Card」に上書きすると原因が分からなくなってしまうこと、それは出来れば避けたい。ということで最初のミッションは「MicroSD Card」の入手です。まずはAmazonをチェック、現在使用しているスペックと同等品を直ぐに注文しても届くのは31日らしい、今日は29日、待てないw DIYでお世話になっているコメリをチェックする。容量小さいのしか置いてない、Amazon注文分が届くまでの暫定対応なら容量少なくてもいいか、でも16GBでは少なすぎる、一番近い家電量販店であるK’s電機のサイトを探してみる、さすがに家電量販店、256GBのSD Cardも売っているが、Amazonと同等スペックだと2倍する!それは出せない。K’sで同等スペック(書込み速いやつ)の小容量(64GBぐらい)を買って暫定対応し、Amazonから同等スペック同等容量が届くまで待つとするか悩む。暫定対応だと2回構築作業が必要となるので、出来れば一回で済ませたいので、K’sで容量は同等(256GB)で書込みは遅いやつを入手、早速帰って再構築を開始する。

まずは「MicroSD Card」にOSを焼くところから。Macのターミナルから以下のコマンドを実行します。

diskutil list
diskutil unmountDisk /dev/disk4 (diskutil listで確認したデバイスアドレス)
sudo sh -c 'gunzip -c ubuntu-22.04.1-preinstalled-server-arm64+raspi.img.xz | sudo dd of=/dev/disk4 bs=32m'

焼き終わった「MicroSD Card」をラズベリーパイに挿入して電源をONします。暫くするとLEDの点滅が落ち着くので、ルーターのDHCPサーバーから配信されるIPアドレスを想定しながらPINGを打って稼働を確認します。IPアドレスが確認できたら、そのIPアドレス宛にSSH接続します。

とりあえずOSのアップデート等を一通り済ませます。アップデート&Zabbix-Agent等の基本設定を完了後、再起動して改めてSSH接続します。ここからはライブ配信用の追加設定です。ラズベリーパイにはUSBカメラと温湿度センサーが接続されているため、それらを動作させるために必要なソフトウェア構成を行います。USBカメラ用にはpython3-opencvが必須です。温湿度センサー用にはadafruit-circuitpython-dhtとpython3-rpi.gpioが必須です。それぞれに必須なソフトウェアを導入します。

外部からアクセスするためのDDNS機能を、SoftetherVPNから流用しているためダウンロードして導入します。さらにSSL接続のためにLet’s Encryptを使っているためCERTBOTを導入しSSLを設定します。気象庁のアメダスのデータを取得するPythonプログラムはこの辺で設定しておきます。ライブカメラ用のプログラムは前述したように広島のテスト機からダウンロードしてきます。動体検知の除外指定がされていないので、追加します。

だいたい以上の設定が無事完了すれば、元々動いていた環境と同じような状態まで復活できるはずです。「MicroSD Card」のスペックが低い分はライブ配信自体にはあまり影響は無いと思われます。そんなこんなで半日以上かけての再構築が完了しましたが、すでに日が暮れてしまって動作確認は翌日の夜明け以降となります。

翌日朝確認したところ、夜間に動体検知(クルマのヘッドライト等)したところでプログラムエラーのため動作が止まっていたようです。問題のコードを確認し、修正して再起動します。夜が明けているので何回か検知対象が通るので微修正を加え、動体検知部分の修正を完了します。日中の動作も問題無いようです。ほぼ一日掛けての復旧作業でした。あれから約3日経った今日現在も無事動作しているようです。

カテゴリー公開, 閑話(IT)タグ, ,
大事件の後始末?

年末と年始に起こしてしまった大事件の後始末がまだだったので、ここで片づけます。事件の顛末は「年末の大  続きを読む

超高速WEBサイト?
blank

NGINXとHHVMを使った超高速WEBサイトを目指して新しいインスタンスを立てた今回の「引越」でし  続きを読む

名前解決
blank

バージョン5からのWordpressが「ツール」で提供している「サイトヘルス」という機能でサイトの健  続きを読む

ラズパイでVPN
blank

今さらですがラズパイでのVPN(SoftEtherVPN)導入の話です。以前のバージョンではARMア  続きを読む

PHPのバージョンアップ
blank

Mediawikiが1.30から1.31へメジャーバージョンアップしたので早速インストールしようと思  続きを読む

サイト開設以来の危機
blank

2015年にサイトを開設して以来の危機に遭遇してしまいました。と言っても自分のオペレーションミスから  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください