Enterprise 技術情報 Enterprise Technical information
ジョブフローの簡単な例 ディスクの容量をチェックする
今回はターゲットのサーバーにログインしてディスクの利用状況を調べ、利用率が一定の水準を超えて溢れそうであれば警告の表示を行うジョブフローを作成していきます。
先に、リモートサーバーに接続する設定を行います。詳細は「[事前準備] 接続先のサーバーを登録する」をご覧ください。「server1」という名前の「ノード情報」のオブジェクトが作成されているものとして進めます。
まずはリモートサーバーでコマンドを実行する書き方から確認していきましょう。「[事前準備] 接続先のサーバーを登録する」の接続確認のジョブフローです。
| __node__ = ./server1 | ["whoami"] -> print($RESULT)
このスクリプトでは、リモートサーバーで”whoami”コマンドを実行して結果を表示します。
1行目: 制御変数 “__node__” (前後にアンダースコア “_” が2つ続いている事に注意)にノード情報のオブジェクトを代入します。
2行目: 実行したいコマンドを[” “] の中に記載します。
3行目: 直前処理の結果の標準出力が $RESULTに格納されるので、これを表示します。
さてディスク容量をチェックするためのコマンドを書いていくことにします。ここではdfコマンドを利用します。
実行例は次のようになります。
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 18208184 3907916 13368684 23% / tmpfs 506224 100 506124 1% /dev/shm /dev/sda1 289293 95986 177947 36% /boot
左から数えて5番目の使用率がしきい値を超えた場合に表示するようにしてみます。以下はディスク使用率が80%を超えた場合のみ文字列が表示される例です。
df | awk 'NR != 1 && int($5) > 80 {print $0}'
dfコマンドの出力をawkでフィルターしていますが、先頭行をカット、5番目の値が80を上回った行を表示しています。(awkコマンドの詳細はここでは解説しませんので、必要に応じてヘルプ等をご確認ください。)
このコマンドを使い、さらにif文で表示を出し分けてみましょう。どのファイルシステムも使用率が80以下なら”OK”を表示します。
| __node__ = ./server1 | [ "df | awk 'NR != 1 && int($5) > 80 {print $0}'" ] -> [ msg = $RESULT ] -> { if (msg == '') | then: print("OK") else: print("** WARNING **") -> print(msg) }
しきい値が”80″に固定されていると変更しにくいので、これをパラメータ化してみます。
| threshold = 80 |
先のジョブフローは次の様になります。
| __node__ = ./server1 | | threshold = 80 | [ "df | awk 'NR != 1 && int($5) > $threshold {print $0}'" ] -> [ msg = $RESULT ] -> { if (msg == '') | then: print("OK") else: print("** WARNING **") -> print(msg) }
Kompiraのジョブフローの画面が以下のように、パラメータの表示枠が増えています。実行の際には、この値を変更する事が可能です。(つまり、記載した”80″はデフォルト値の扱いになります。)
ここではチェック用のdfコマンドを実行して結果を表示してみましたが、これ以外のメンテナンス用のコマンドを実行することも可能です。また実行時に条件を変更する場合には、パラメータ化しておくと扱いが楽になります。
システム運用の実務においてサーバーの監視を行う場合は、nagiosやzabbixなどの監視ツールを使用することが多いかと思いますが、複数台あるサーバーのあるコマンドの実行結果をとりあえず見てみたいときや、何らかの事情で対象サーバーに監視ツールのエージェントをインストールできない場合に重宝します。
スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する