コラム

Ubuntuでハートビートパケットを送信する方法

カテゴリー: サポート

こんにちは。リブーター”ヲタク”の元・開発アシスタントです。最近、カスタマーサポート課に転属しました。

このコラムでは「お客様にリブーターを使いこなしていただきたい」という個人的な願いを込めて、私が個人的に勉強した事や試してみた事の中から、お客様に役立ちそうな情報を共有させていただきます。

今回は「Ubuntu を導入したパソコンから常時、ハートビートパケットを送出する方法」を試してみました。

初めに

最近、サイネージ用STBでもLinux系のOSが増えてきたそうです。明京リブーターのハートビート監視を使いたいけれど、Linux用のハートビートパケット送出ソフトが無い…。そんなお客様の役に立ちたくて「Ubuntu を導入した私のパソコンから常時、ハートビートパケットを送出できた方法」を紹介いたします。
(コピペOKです!ただし、あくまでも私の環境で実現しただけですので、動作保証するものではありません。あしからず…)

Ubuntu を導入したパソコンから常時、ハートビートパケットを送出する方法の概要

  1. Pythonをインストールする(通常、Ubuntuにはデフォルトでインストールされていますので、説明省略)。
  2. 必要なPythonライブラリをインストールする(socketライブラリはデフォルトで含まれていますので、説明省略)。
  3.  UDPパケット送信スクリプトを作成する。
  4. スクリプトを自動起動させる。

UDPパケット送信スクリプトを作成する方法

1.お好みのテキストエディタを開きます(例: nano、vim、geditなど)。

2.新しいPythonスクリプトファイルを作成します。私は「send_hb.py」という新しいスクリプトファイルを作成しました。

3.次のPythonコードをファイルに追加します。送信先のIPアドレス、ポート番号、送信元のポート番号、送信データ内の「HB」か「MK」か、送信間隔などは適宜調整してください。

スクリプトの自動起動方法

1. 新しいサービスファイルを作成します。私は「send_hb.service」という新しいサービスを作成しました。

2. 次の内容をサービスファイル内に追加します。

「/home/〇〇/send_hb.py」の箇所は事前に作成したスクリプトの正しいパスに変更してください。
「User=〇〇」の「〇〇」の箇所にはスクリプトを実行するユーザー名を指定してください。
「After=network-online.target と Wants=network-online.target」を追加して、ネットワークがオンラインになるまで待機するように設定しています。

3. サービスを有効にして起動します。

おまけ


サービス実行後の権限の確認。〇〇の箇所は事前に作成したスクリプトの正しいパスに変更してください。

サービスの再起動方法

サービスの停止

サービスの無効化(自動起動解除)

サービスファイル削除

サービスログの確認

特定のアプリケーションのフリーズを検知できるスクリプトも

以上が、Ubuntuを導入したパソコンから常時、ハートビートパケットを送出する方法です。パソコンの起動後、ネットワークがオンラインになるまで待機してから、ハートビートパケットの定期送信が始まります。OSがフリーズすれば、ハートビートパケットの送信が実行できなくなりますので、リブーターでフリーズを検知できるようになります。

「動画再生ソフトが動作している時のみハートビートパケットを送信する」スクリプトに変更し、動画再生ソフトを「pkill」コマンドで仮想的にフリーズさせたところ、意図した通りにハートビートパケットの送信が停止し、リブーターによって再起動させることもできました。もちろん、スクリプト内のソフト名を変更すれば、監視対象を他のソフトに変更することも可能です。興味のある方にはスクリプトの内容をお伝えしますので、ぜひお問い合わせください。

お客様がこの情報を参考にして、リブーターの機能を最大限に活用できることを願っています。今後も、役立つ情報を提供してまいりますので、どうぞお楽しみに。