Hinemosメンテナンススクリプトの実行時間をntfyで計測

調べ物をしていた際に、たまたまntfyというものを見つけ、便利だったのでHinemosのメンテナンススクリプトと絡めて紹介したいと思います。

ntfyとは

長時間実行されているスクリプト等の処理が完了次第、slackやpushoverなどに通知ができるpythonで作成されたツールです。
このntfyは、導入が簡単で、手軽にサードパーティのアプリに通知ができます。
他に通知できるアプリは、以下の記事をご確認ください。
https://ntfy.readthedocs.io/en/latest/

実施内容

ntfyは、シェルやプロセスの終了後に、slackやpushoverで通知できるのが利点ですが、syslogにも通知ができるようです。
今回は、Hinemosの内部DBの再構築するメンテナンススクリプトの実行時間を、ntfyで計測し、systemlogに出力してみようと思います。

手順

インストール

pipからntfyをインストールします。

$ pip install ntfy

ntfy設定ファイルの設定

ntfyは、「~/.ntfy.yml」というファイルで通知の各種設定ができます。
以下のコマンドを実行しファイルを開きます。

$ vi ~/.ntfy.yml

開いた直後は、何も記載されていません。
以下の内容を追記します。

---
backends:
- systemlog

実行テスト

以下のコマンドを実行してみます。

 $ ntfy -t "sleep finish" done sleep 10

messagesを確認してみて、以下の内容が出力されていれば成功です。

 Sep 23 17:20:28 hinemos ntfy: [sleep finish] "sleep 10" succeeded in 0:10 minutes

「in 0:10 minutes」が、実行時間を示しています。この通り、ntfyは通知をするだけではなく実行時間も計測してくれます。
また、「-t」のオプションを付けると、出力するログにタイトルをつけられます。

メンテナンススクリプトの実行時間を計測する

Hinemosマネージャの内部DBの再構築

 $ ntfy -t "hinemos maintenance finish" done /opt/hinemos/sbin/mng/hinemos_cluster_db.sh -w hinemos 

ログ出力結果

 Sep 23 17:28:03 hinemos ntfy: [hinemos maintenance finish] "/opt/hinemos/sbin/mng/hinemos_cluster_db.sh -w hinemos" succeeded in 0:36 minutes 

上記のように、メンテナンススクリプトの実行時間が、36秒かかったことがわかります。
今回はデフォルトの設定でsystemlogに出力させましたが、「~/.ntfy.yml」にフォーマットを指定させることが可能です。

感想

今回は、systemlogだけに通知を行いましたが、ntfyの設定ファイル「~/.ntfy.yml」にslack等も合わせて記述することで、一度の実行で複数箇所に通知することが可能なようです。
「計測結果をsystemlogにも残して、slackにも通知して、ディスクトップにも通知させたい」など、複数箇所に通知したい場合には、ntfyが使えるかなと思います。

実行時間を計測しHinemosで数値監視するのであれば、timeコマンドで計測するシェルを作って、カスタム監視で監視する方がいいと感じました。

参考サイト

Github:https://github.com/dschep/ntfy
Linuxのコマンドラインやスクリプトからスマホにプッシュ通知する。(ntfyというツールの紹介)
linuxコマンド終了したらSlackに通知するようにする

このコンテンツはアクセス制限されています。ユーザーの方はログインしてください。新規ユーザーの方は以下のフォームから登録を行ってください。

既存ユーザのログイン
   
新規ユーザー登録
* Please indicate that you agree to the Terms of Service
*必須項目

Leave a Reply

You must be logged in to post a comment.