Kompira

Menu Menu

Enterprise Technical information

外部との連携 KompiraからSlackに通知する

障害発生や処理終了などの通知は、例えばmailto()関数を使うと電子メールで送る事が出来ますが、APIを持ったメッセージアプリケーションに送信することも可能です。今回はSlackに通知を行ってみましょう。

 


動作確認環境

ソフトウェア バージョン
Kompira 1.4.10.post10
LinuxOS CentOS6.10

または

ソフトウェア バージョン
Kompira 1.5.5.post7
LinuxOS CentOS7.8.2003

 


 

Slackの設定

お使いのSlackのアカウントにメッセージ受信用のチャネルを作成します。今回は#kompiraを作成します。

kompira_channel

 

次にSlackに外部からメッセージを送信できるように、”Incoming WebHooks”の設定をします。
More > Apps > 検索窓に”incoming webhooks”
これでApp Directoryの”Incoming WebHooks”のページが表示されます。

Incoming Webhooks

 

左の”Add to Slack”ボタンをクリック

 

Post to channel

 

“Post to channel”画面で、チャネル名が”#kompira”になっている事を確認して、”Add Incoming Webhooks Integration”ボタンをクリック

“Setup Instructions”画面の”Webhook URL”を別途メモ帳などに記録しておいてください。(Kompiraのジョブフローに設定します。)
その他の項目は、続く”Integration Setting”も含めて、最低限はデフォルトでも良いですが、必要に応じて変更してください。
ここでは”Customize Name”を”Kompira2Slack”と変更してみます。

 

Customize Name

 

設定が完了したら”Save Setting”ボタンをクリックしてください。

 

Kompiraジョブフローの作成

続いてKompira側にジョブフロー「Slackへ通知」を次の様に作成します。

 

|message = "This is a sample line of text. Does it work?"|
|url = "https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxx" | #Webhook URL

# urlopen()を使用する場合
urlopen(url=url, data={"text": message}, http_method="POST", encode="json", quiet=true) ->

# curlコマンドを使用する場合
# ['''curl -X POST -H 'Content-type: application/json' --data '{"text":"$message"}' $url'''] ->
print("Slackへ送信しました。")

 

ここでパラメータ”url”には、Slackのセットアップ画面で表示された”Webhooks URL”を記載してください。

このジョブフローを実行すると、Slackに次のように投稿されます。

Entry on Slack

このようにKompiraからSlackのチャネルへの投稿は容易に可能です。
これを他のジョブフローから利用する場合には、例えば以下のように呼び出します。

 

[./Slackへ通知:message="緊急事態:至急対応してください" ]

 

単純なメッセージ送信以外にもリンクURLの送信やアイコン・色の変更なども行えます。リッチなメッセージ作成の詳細はSlack APIの”Message“をご参照ください。

スタートガイド

Kompiraジョブフローの基礎

ジョブフローの簡単な例

Kompiraの機能

外部との連携