mnakada / atomcam_tools

Hack tool for atomcam and wyzecam.
Other
183 stars 22 forks source link

health checkサーバーへのhttp getの定期送信 バグ? #20

Closed kurokouji closed 2 years ago

kurokouji commented 2 years ago

AtomCam2 Ver.4.58.0.65 atomcam_tools Ver.1.2.18

モニタリングの動作 Ping:ON 通知URL:http://192.168.1.43/index02.html

configs/overlay_rootfs/scripts/health_check.sh を読み取ると次のような動作かと思っています。 1.通知URLをGETし、応答があればレスポンスをhealthcheck.logに書きこむ。 2.通知URLをGETし、応答が無ければ、1秒遅延し3回リトライし中断時間をhealthcheck.logに書きこみretry_countを+1する。 3.retry_countが3以上になったら、wlan0をdown/upする。 4./media/mmc/atomhack.log に 日時: WiFi restart を書きこむ。

ローカルネットワーク上にalmalinuxサーバーを置き、apacheを起動し、 http://192.168.1.43/index02.html をgetすると {"res":"OK"}を返すようにしています。 次healthcheck.log の14:40:36 ~ 14:53:17 はサーバーのLANコネクタを外した状態です。 14:48:13 でwlan0をdown/up し atomhack.log に日時: WiFi restartが記録されるのではないかと思いますが 何も出力されません。

動作確認時のログを送ります。 [root@atomcam:~]# tail -f /media/mmc/healthcheck.log 2022/04/18 14:35:31 : {"res":"OK"} 2022/04/18 14:36:32 : {"res":"OK"} 2022/04/18 14:37:33 : {"res":"OK"} 2022/04/18 14:38:34 : {"res":"OK"} 2022/04/18 14:39:35 : {"res":"OK"} 2022/04/18 14:40:36 : 2022/04/18 14:43:09 : 2022/04/18 14:45:41 : 2022/04/18 14:48:13 : 2022/04/18 14:50:45 : 2022/04/18 14:53:17 : 2022/04/18 14:55:49 : {"res":"OK"} 2022/04/18 14:56:53 : {"res":"OK"}

[root@atomcam:~]# tail -f /media/mmc/atomhack.log total used free shared buffers cached Mem: 74192 71200 2992 0 72 25700 -/+ buffers/cache: 45428 28764 Swap: 131068 14032 117036 Mon Apr 18 13:43:17 JST 2022 total used free shared buffers cached Mem: 74192 71420 2772 0 96 25496 -/+ buffers/cache: 45828 28364 Swap: 131068 14744 116324 1970/01/01 09:00:25 : Reboot & Start watchdog

確認のほどお願いいたします。 当方の勘違い、お気づきの点ありましたらお知らせください。

mnakada commented 2 years ago

ありがとうございます。 ちょっとおかしいですね。 再現実験をしているのですが、自分の環境では殆ど発生してなくて少し時間がかかりそうです。

kurokouji commented 2 years ago

ご確認いただきありがとうございます。 qiitaも拝見しております。

「qiita:ATOMCam2を少し改造して導入してみた 環境 build環境はMacOSMonterey上でDockerを使用していますが、特殊なことはしていないのでWindowsやlinuxでも大丈夫だと思います。」

を参考に開発環境を構築しようと思っておりますがなかなかうまくいきません。 当方にても実装・動作チェックを行いpull-reqしたいと思っておりますが、環境構築で足踏みしております。 開発環境の構築に参考になるような資料がありましたら紹介いただけないでしょうか。

mnakada commented 2 years ago

開発環境は何でしょうか? docker, docker-composeは動作できていますか? make.shを実行してエラー等は出ていますか? docker, docker-composeの環境構築でしたらQiitaに色々な環境向けの記事が多数あるので検索してみてください。 私もMacOS monterey環境しか確認できていないので、もしかすると他の環境だとエラーになることもあるかもしれません。修正等あれば教えていただけると助かります。

kurokouji commented 2 years ago

開発環境はWindows10(32/64)Proです。 dockerは、数年前に動かしてこんなものかと思った程度で本格的には使ったことはありません。 そろそろ本格的に使用したいと思っている状況です。 まだmake.sh 試していません、その前の環境構築が無知な状況です。

docker, docker-composeの環境構築でしたらQiitaに色々な環境向けの記事が多数あるので検索してみてください

恐れ入ります、検索しても、伝言ゲーム状態で、解りやすそうな記事があったら紹介して頂ければ助かります。

mnakada commented 2 years ago

Windowsを使ってないので適切な記事かわかりませんが、下記とかはどうでしょうか? 比較的新しい記事なので。 https://qiita.com/teruroom/items/a78e69249a43470d9f04

kurokouji commented 2 years ago

ご紹介いただき、ありがとうございます、勉強させていただきます。

kurokouji commented 2 years ago

開発環境の構築記事、紹介ありがとうございました。 お見立てのおかげで、参考になりそうな情報集まりました。 youtube動画等でも参考になるものがありました。 Windowsでの構築結構手順が多いようで、週末に専用のPCを用意して構築する予定です。

参考情報です。 ファームの更新がありました、更新後のファームで、ATOMcam Hack Ver.2.1.18が動作し WEBAPPとSSHが動作することを確認(詳細な内容までは未確認です)しました。

AC2 ATOM_CAMV3C Ver.4.58.0.79 ACS ATOM_CAKPJZJP Ver.4.37.1.95

最近気が付いたのですが、1点気懸りな点があります。 ifconfig の情報でwlan0の項目にRX dropped:xxxx と結構な頻度・数のパケットドロップが見られます。 bakueikozo/atomcam_usbether による有線LANでも同じようにパケットドロップがあります。

RaspberryPI等をおなじような条件で設置してありますが、パケットドロップが生じることは無いようです。

パケットドロップが生じる原因としてはCPUの処理が間に合わない場合などとの情報が有りましたが、 ATOMcamでの原因は今のところ不明です、致命的な問題でもあるのでしょうかね?

参考まで。

※無線LAN使用 起動して数分程度 wlan0 RX dropped:33

[root@atomcam:~]# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:1508 errors:0 dropped:0 overruns:0 frame:0 TX packets:1508 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9805552 (9.3 MiB) TX bytes:9805552 (9.3 MiB)

wlan0 Link encap:Ethernet HWaddr 7C:DD:E9:02:EA:65 inet addr:192.168.91.37 Bcast:192.168.91.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28697 errors:0 dropped:33 overruns:0 frame:0 TX packets:46564 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2632889 (2.5 MiB) TX bytes:38304690 (36.5 MiB)

電波の強度は -44dbm なので十分強い cat /proc/net/wireless Inter-| sta-| Quality | Discarded packets | Missed | WE face | tus | link level noise | nwid crypt frag retry misc | beacon | 22 wlan0: 0000 67. -43. -256 0 0 0 0 6 0 p2p0: 0000 0 0 0 0 0 0 0 0 0 [root@atomcam:~]#

※有線LAN使用 (/config/.user_config のssid を変更し切断してある) eth0 RX dropped:127

[root@Ingenic:~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0E:C6:3C:A6:47 inet addr:192.168.1.39 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10808 errors:0 dropped:127 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1465915 (1.3 MiB) TX bytes:16559475 (15.7 MiB)

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:13 errors:0 dropped:0 overruns:0 frame:0 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1838 (1.7 KiB) TX bytes:1838 (1.7 KiB)

wlan0 Link encap:Ethernet HWaddr 7C:DD:E9:02:EA:65 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

[root@Ingenic:~]#

mnakada commented 2 years ago

動作確認情報ありがとうございます。 wlan0のRx packet dropは多分CPU負荷の影響だと思います。 受信できたパケットが処理しきれずに捨てられているlogなので。 AiAlgoが動作した時の負荷がかなり高いのでそこの影響かと思いますが、あまりいい対応方法がないですね。 RAMが少なくてswap outされているのが根本的な原因かと思います。

mnakada commented 2 years ago

表題の件についてはVer.1.2.20で対応しました。 WiFiに関しては対応のしようがないためcloseします。

kurokouji commented 2 years ago

Ver.1.2.20動作確認しました、また気づいた点ありましたらお知らせいたします。 参考までに 動作確認した healthcheck.log 送ります。 1.2022/04/23 16:38:01 Ver.1.2.18 から Ver.1.2.20 アップデート後 2.2022/04/23 16:41:24 : 000 apachサーバのLANを切断 3.2022/04/23 16:43:24 : WiFi restart 3回リトライ後、WiFi restart 4.2022/04/23 16:45:02 : 200 apachサーバのLANを復旧

[root@ck-cycle:~]# tail -f /media/mmc/healthcheck.log 2022/04/23 16:27:17 : {"res":"ok"} 2022/04/23 16:28:18 : {"res":"ok"} 2022/04/23 16:29:20 : {"res":"ok"} 2022/04/23 16:30:21 : {"res":"ok"} 2022/04/23 16:31:23 : {"res":"ok"} 2022/04/23 16:32:24 : {"res":"ok"} 2022/04/23 16:33:26 : {"res":"ok"} 2022/04/23 16:34:27 : {"res":"ok"} 2022/04/23 16:35:29 : {"res":"ok"} 2022/04/23 16:38:01 : 200 2022/04/23 16:39:01 : 200 2022/04/23 16:40:01 : 200 2022/04/23 16:41:24 : 000 2022/04/23 16:41:24 : retry : 1 2022/04/23 16:42:24 : 000 2022/04/23 16:42:24 : retry : 2 2022/04/23 16:43:24 : 000 2022/04/23 16:43:24 : retry : 3 2022/04/23 16:43:24 : WiFi restart 2022/04/23 16:44:24 : 000 2022/04/23 16:44:24 : retry : 1 2022/04/23 16:45:02 : 200 2022/04/23 16:46:02 : 200 2022/04/23 16:47:02 : 200

mnakada commented 2 years ago

ありがとうございます。 ちゃんと動いているようで安心しました。

kurokouji commented 2 years ago

いつも更新ありがとうございます。 Ver.1.2.21動作確認しました、大変良好に動作しています。

ファームの更新 AC2 ATOM_CAMV3C Ver.4.58.0.79 ACS ATOM_CAKPJZJP Ver.4.37.1.95 とVer.1.2.20 以降、音信不通になる状況は皆無になりました。

当方の利用は、遠方(直線距離で721km)へSoftEtherVPNでトンネルを張り、4台のAtomCam2をモニタ・録画しています。 近隣でACS 1台、AC2 2台 音信不通になった場合に再起動するためスイッチボットプラグを設置、スイッチボットプラグも気まぐれにオフラインになるという現象が起きていました。 こちらの症状もVer.1.2.20、ファームの更新以降起きていません。

*** 些細な症状ですが、iPad(SafariとChromeで確認)でWebUIを開いた画面で更新ボタンが表示されません。それ以外は正常に機能しています。 *** 必要ならば、別にissuesを立て、画面コピーをアップします。

よろしくお願いします。

mnakada commented 2 years ago

確認ありがとうございます。

*** 些細な症状ですが、iPad(SafariとChromeで確認)でWebUIを開いた画面で更新ボタンが表示されません。それ以外は正常に機能しています。 *** 必要ならば、別にissuesを立て、画面コピーをアップします。

確認しますのでissueお願いします。

kurokouji commented 2 years ago

AtomCam2で音信不通が起きましたので参考までに報告いたします。 AtomCam2 Ver.4.58.0.79 atomcam_tools Ver.1.2.21

2022/05/02 03:27:02 Wifi接続が切れた様です。 2022/05/02 07:03:03 に電源再投入し復旧しました。

tmpfs のfree値(30%から10%)が極端に下がってくるとWiFiが切れるようです。

提案、cpuは止まっていないようなので、任意の時間(10~60分程度)Wifiが不通の場合、 rebootするようにしてはいかがでしょうか。

healthcheck.log 2022/05/02 03:25:02 : 200 2022/05/02 03:26:02 : 200 2022/05/02 03:27:02 : 200 2022/05/02 03:28:29 : retry : 1 2022/05/02 03:29:20 : retry : 2 2022/05/02 03:30:16 : retry : 3 2022/05/02 03:30:16 : WiFi restart 2022/05/02 03:31:09 : retry : 1 2022/05/02 03:32:05 : retry : 2 2022/05/02 03:33:03 : retry : 3 2022/05/02 03:33:04 : WiFi restart

途中省略 retry :1,2,3 WiFi restart 繰り返し

2022/05/02 06:58:07 : retry : 1 2022/05/02 06:59:13 : retry : 2 2022/05/02 07:00:04 : retry : 3 2022/05/02 07:00:05 : WiFi restart 2022/05/02 07:01:03 : retry : 1 2022/05/02 07:02:07 : retry : 2 2022/05/02 07:03:02 : retry : 3 2022/05/02 07:03:04 : WiFi restart 2022/05/02 07:04:05 : retry : 1 2022/05/02 07:07:02 : 200 2022/05/02 07:08:02 : 200 2022/05/02 07:09:01 : 200 2022/05/02 07:10:01 : 200

atomhack.log Mon May 2 03:00:01 JST 2022 total used free shared buffers cached Mem: 74192 69252 4940 0 472 20532 -/+ buffers/cache: 48248 25944 Swap: 131064 21064 110000 tmpfs 37096 10868 26228 29% /tmp Mon May 2 04:00:11 JST 2022 total used free shared buffers cached Mem: 74192 63664 10528 0 492 15272 -/+ buffers/cache: 47900 26292 Swap: 131064 20540 110524 tmpfs 37096 3848 33248 10% /tmp Mon May 2 05:00:11 JST 2022 total used free shared buffers cached Mem: 74192 66344 7848 0 576 14136 -/+ buffers/cache: 51632 22560 Swap: 131064 20192 110872 tmpfs 37096 3784 33312 10% /tmp Mon May 2 06:00:01 JST 2022 total used free shared buffers cached Mem: 74192 70984 3208 0 5304 13708 -/+ buffers/cache: 51972 22220 Swap: 131064 19704 111360 tmpfs 37096 3756 33340 10% /tmp Mon May 2 07:00:03 JST 2022 total used free shared buffers cached Mem: 74192 66184 8008 0 736 14868 -/+ buffers/cache: 50580 23612 Swap: 131064 19472 111592 tmpfs 37096 3936 33160 11% /tmp 2022/05/02 07:03:03 : Reboot & Start watchdog Mon May 2 08:00:00 JST 2022 total used free shared buffers cached Mem: 74192 71588 2604 0 672 24044 -/+ buffers/cache: 46872 27320 Swap: 131064 10840 120224 tmpfs 37096 11052 26044 30% /tmp Mon May 2 09:00:00 JST 2022 total used free shared buffers cached Mem: 74192 71456 2736 0 144 25484 -/+ buffers/cache: 45828 28364 Swap: 131064 15492 115572 tmpfs 37096 10980 26116 30% /tmp

mnakada commented 2 years ago

ありがとうございます。 こちらもVer.1.2.22で対応しました。

kurokouji commented 2 years ago

Ver.1.2.22 更新いたしました。 しばらく観察してみます、また気づいた点ありましたら報告いたします。

kurokouji commented 2 years ago

reboot対応ありがとうございました。 Wifi切断後、30分で自動復旧しましたので報告いたします。 緊急性の少ないカメラからはスイッチボットプラグを撤収できそうです。 2.4GHz帯ではほぼ確実に電波干渉を起こしますので接続機器を減らすことができ助かります。 healthcheck.log 2022/05/03 06:51:01 : 200 2022/05/03 06:52:01 : 200 2022/05/03 06:53:01 : 200 2022/05/03 06:54:18 : retry : 1 2022/05/03 06:55:16 : retry : 2 2022/05/03 06:56:14 : retry : 3 2022/05/03 06:56:16 : WiFi restart : error : 1 2022/05/03 06:57:06 : retry : 1 2022/05/03 06:58:01 : retry : 2 2022/05/03 06:59:01 : retry : 3 2022/05/03 06:59:01 : WiFi restart : error : 2 2022/05/03 07:00:07 : retry : 1 2022/05/03 07:01:04 : retry : 2 2022/05/03 07:02:12 : retry : 3 2022/05/03 07:02:12 : WiFi restart : error : 3 2022/05/03 07:03:04 : retry : 1 2022/05/03 07:04:04 : retry : 2 2022/05/03 07:05:07 : retry : 3

途中省略 restart 4~8

2022/05/03 07:20:09 : WiFi restart : error : 9 2022/05/03 07:21:06 : retry : 1 2022/05/03 07:22:03 : retry : 2 2022/05/03 07:23:00 : retry : 3 2022/05/03 07:23:00 : retry error -> reboot router=192.168.100.1 PING 192.168.100.1 (192.168.100.1): 56 data bytes ping: sendto: Network is unreachable PING 8.8.8.8 (8.8.8.8): 56 data bytes ping: sendto: Network is unreachable wlan0 Link encap:Ethernet HWaddr xx:yy:zz:zz:yy:xx
BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:336774 errors:0 dropped:1590 overruns:0 frame:0 TX packets:950671 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38278432 (36.5 MiB) TX bytes:1389504081 (1.2 GiB)

Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 36852 0 36852 0% /dev /dev/mmcblk0p1 31154688 22736224 8418464 73% /media/mmc /dev/loop0 130579 100353 21052 83% / tmpfs 37096 8 37088 0% /dev/shm tmpfs 37096 4632 32464 12% /tmp tmpfs 37096 36 37060 0% /run /dev/mtdblock2 3712 3712 0 100% /atom /dev/mtdblock3 3840 3840 0 100% /atom/system /dev/mtdblock6 384 128 256 33% /atom/configs devtmpfs 36852 0 36852 0% /atom/dev tmpfs 37096 8 37088 0% /atom/dev/shm tmpfs 37096 36 37060 0% /atom/run tmpfs 37096 4632 32464 12% /atom/tmp /dev/loop0 130579 100353 21052 83% /atom/media /dev/mmcblk0p1 31154688 22736224 8418464 73% /atom/media/mmc /dev/loop0 130579 100353 21052 83% /atom/tmp/system/lib tmpfs 37096 4632 32464 12% /atom/usr /dev/loop0 130579 100353 21052 83% /atom/usr/lib tmpfs 37096 4632 32464 12% /atom/etc total used free shared buffers cached Mem: 74192 67012 7180 0 432 16528 -/+ buffers/cache: 50052 24140 Swap: 131068 10024 121044 2022/05/03 07:23:16 : WiFi restart : error : 10 2022/05/03 07:26:02 : 200 2022/05/03 07:27:01 : 200

Win10PCで、docker、docker composer インストールしてみました。 原因不明ですが2時間程度、放置していましたが「Attaching to atomcam_tools_builder_1」より先に進みませんでした。 20220504-01 インストールの手順は解ってきましたので、ubuntu linuxをPCにインストールして再度挑戦してみます。

mnakada commented 2 years ago

確認ありがとうございます。 WiFiが再接続できていないのが続いて再起動して繋がるという現象ですね。AtomCamのWiFiがifconfig down, upではうまく再接続できていないようで、ちょっと分からないですね。

shellでdocker-compose upを直接実行されていますが、./make.shを実行してください。 Dockerでのbuildはそんなに長時間固まる事はないので1〜2分動かない場合は何らかの原因で止まっています。

kurokouji commented 2 years ago

Win10 WSL2 Docker docker-composer、 Almalinux 8.5 Docker docker-composer 2つの環境で./make.sh を起動し、atomcam_tools.zip が生成されることを確認しました。

但し、こちらの生成ファイルを解凍し、microSDカードに書き込んでもAtomCam2起動しませんでした。 何か追加の設定が必要でしょうか、生成した atomcam_tools.zip をアップしたら参考になりますでしょうか。

mnakada commented 2 years ago

置いてください。みてみます。

kurokouji commented 2 years ago

ファイルが大きすぎると怒られてこちらには上げられなかったのでS3に上げました。 ご確認いただけましたら幸いです。 https://2022-atomcam-tools.s3.ap-northeast-1.amazonaws.com/20220507/linux_atomcam_tools.zip https://2022-atomcam-tools.s3.ap-northeast-1.amazonaws.com/20220507/win_atomcam_tools.zip

mnakada commented 2 years ago

確認しました。 build-scriptで一部抜けがありました。 Ver.1.3.1で修正しました。

kurokouji commented 2 years ago

早速対応ありがとうございます。 ビルドしてみます。

kurokouji commented 2 years ago

動作状況次の通りです。 Win10 WSL2 Docker docker-composer:Cam起動しました、WebUI、sshとも正常動作。 Almalinux 8.5 Docker docker-composer:Cam起動しました、WebUI、sshとも動作しない。

Win10 WSL2はubuntuベースですので、 Ubuntu linuxで環境構築して確認してみます。

kurokouji commented 2 years ago

動作状況次の通りです。 Almalinux 8.5 Docker docker-composer:Cam起動しました、WebUI、sshとも正常動作。 atomcam_toolsが動かなかった原因はmicroSD 128GBのフォーマットでした。 「I-O_DATA_ハードディスクフォーマッタ」でFAT32にしたところ正常動作となりました。 こちらでもカスタム更新zipファイルが作成可能になりました、ありがとうございます。