Hinemosメンテナンススクリプトの実行時間をntfyで計測
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
調べ物をしていた際に、たまたまntfyというものを見つけ、便利だったのでHinemosのメンテナンススクリプトと絡めて紹介したいと思います。
ntfyとは
長時間実行されているスクリプト等の処理が完了次第、slackやpushoverなどに通知ができるpythonで作成されたツールです。
このntfyは、導入が簡単で、手軽にサードパーティのアプリに通知ができます。
他に通知できるアプリは、以下の記事をご確認ください。
https://ntfy.readthedocs.io/en/latest/
実施内容
ntfyは、シェルやプロセスの終了後にslackやpushoverで通知できるのが利点ですが、syslogにも通知ができるようです。
今回は、Hinemosの内部DBの再構築するメンテナンススクリプトの実行時間を、ntfyで計測し、systemlogに出力してみようと思います。
手順
1.インストール
pipからntfyをインストールします。
1 |
$ pip install ntfy |
2.ntfy設定ファイルの設定
ntfyは、「~/.ntfy.yml」というファイルで通知の各種設定ができます。
以下のコマンドを実行しファイルを開きます。
1 |
$ vi ~/.ntfy.yml |
開いた直後は、何も記載されていません。
以下の内容を追記します。
1 2 3 |
--- backends: - systemlog |
3.実行テスト
以下のコマンドを実行してみます。
1 |
$ ntfy -t "sleep finish" done sleep 10 |
messagesを確認してみて、以下の内容が出力されていれば成功です。
1 |
Sep 23 17:20:28 hinemos ntfy: [sleep finish] "sleep 10" succeeded in 0:10 minutes |
「in 0:10 minutes」が、実行時間を示しています。この通り、ntfyは通知をするだけではなく実行時間も計測してくれます。
また、「-t」のオプションを付けると、出力するログにタイトルをつけられます。
4.メンテナンススクリプトの実行時間を計測する
Hinemosマネージャの内部DBの再構築
1 |
$ ntfy -t "hinemos maintenance finish" done /opt/hinemos/sbin/mng/hinemos_cluster_db.sh -w hinemos |
ログ出力結果
1 |
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に通知するようにする