今回はenebularのデバイス実行環境やエージェント実行環境を使ってデバイス監視を行いつつ、ログをAirtableに保存してリテラシーの低い人でも見やすいようにした事例です。
センサーデバイスへのpingした結果をAirtableで確認する
最もオーソドックスな死活監視ですかね。ある施設に置かれている70個弱のセンサーデバイスに定期的にpingを送っています。今回はVPN環境に置かれたセンサーデバイスの死活監視だったので、VPN内にubuntuマシンを置いて、そのサーバにenebularのエージェント環境を構築して稼働させました。
監視対象のデバイスはAirtableのテーブルでリスト化されていて、そのテーブルからping先のIPアドレスを取得してpingした後、そのデバイスの状態を更新するだけです。
Airtableでは以下のように常に最新の状態を閲覧できるようになっています。
センサーデバイスからデータが送信されているか確認する
次はセンサーデバイスからちゃんとデータが送信されているか監視するフローです。センサーデバイスのデータ送信先であるMQTTブローカーのトピックを定期的にサブスクライブして、最新のデータ取得日時が過去過ぎる場合にデータが送られてきていないと判断して諸々確認作業に移る運用となっています。
Airtableでは以下のように常に最新のデータ取得日時を閲覧できるようになっています。
おまけ: Webサイトが意図した通り表示されているか確認する
最後にWebサイトが意図した通り表示されているか、1時間毎にアクセスして取得したHTMLを解析するフローです。
Airtableでは以下のようにログを閲覧できるようになっています。
まとめ
こういうメインの開発でないところってコーディングのモチベーションを高めるのに苦労しませんか?(私だけ?)メインの開発で作ったシステムを監視しないといけない、メインの開発で作ったシステムの自動E2EテストやCI/CDを構築・メンテナンスしないといけない、こういった気が進まないプログラミングこそノーコード・ローコードでサクッと作って気楽にメンテしましょ!