
近年、テレワークの普及もあり、メールよりもチャットツールを使ったやり取りが増えてきていますね。メーラーを見る時間よりもチャットツールを見る時間が長い、という方も多いのではないでしょうか。
JP1製品でもJP1イベントをメール通知させる機能がありますが、インターネットへ接続可能な環境であれば、コマンドまたはスクリプト実行によるチャットツールへの連携が可能です。
そこで、本記事ではJP1イベントをSlackおよびGoogle Chatへ連携させる手順をご案内します。
連携環境について
本記事では、Windows環境はPowerShell、Linux環境ではCurlを使用した連携方法を記載します。
<動作確認環境>
(Windows環境)
OS:Windows Server 2019
JP1バージョン:V12.1
(Linux環境)
OS:CentOS Linux release 7.8.2003 (Core)
JP1バージョン:V12.1
Curlバージョン:curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
チャットツールとの連携準備
チャットツールとの連携にはWebhookを使用します。予めチャット側にてWebhookでpostするためのURLを発行しておきます。
手順は下記のとおりです。
Slack連携の場合
1.Slackへのアプリのインストール
事前にSlackに「Incoming Webhook」アプリケーションをインストールしておきます。アプリケーションのインストールにつきましてはSlack側にてご確認ください。
2.Incoming Webhookの追加
Incoming Webhookのインストール後、新規追加ページ にアクセスし、JP1イベントを通知したいチャンネルを選択、または新規作成し「Incoming Webhookインテグレーションの追加」をクリックします。

3.作成されたWebhook URLを記録
下記画面が表示され、Webhook URLが生成されるので、こちらのURLを控えておきます。

Google Chat連携の場合
1.チャットルームの作成
JP1イベントを通知したいチャットルームを作成します。
2.Webhookの設定
チャットルーム名を選択し、表示されたメニューから「Webhookを管理」をクリックします。

3.Webhookを作成
任意の名前を入力し、「保存」をクリックします。

4.生成されたWebhook URLの確認
下記画面が表示され、Webhook URLが生成されますので、こちらのURLを控えておきます。

連携用PowerShellスクリプトの作成
Linux環境ではcurlコマンドでそのままpostが可能ですが、Windows環境のcurlで実行した場合、文字コードがShift-JISとなるためチャット側で文字化けしてしまいます。PowerShellのInvoke-RestMethodコマンドで文字コードを変換することで文字化けすることなくpostできるため、事前にスクリプトを用意しておきます。
以下、サンプルスクリプトです。
■Slack連携用スクリプト
slacknotify.ps1
-------------------------------------------------------------------------------------
#文字化け防止のための文字コード変換
$enc1 = [System.Text.Encoding]::GetEncoding('ISO-8859-1')
$enc2 = [System.Text.Encoding]::UTF8.GetBytes($args)
#JP1イベント格納用の変数定義
$jp1eventnotify = @{
text = $enc1.GetString($enc2);
#slack側のユーザ名を定義
username = "JP1Event";
}
#Invoke-RestMethodでJP1イベントをPOST
Invoke-RestMethod -Uri "https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyy" -Method Post -Body (ConvertTo-Json $jp1eventnotify)
-------------------------------------------------------------------------------------
■Google Chat連携用スクリプト
googolechatnotify.ps1
-------------------------------------------------------------------------------------
#文字化け防止のための文字コード変換
$enc1 = [System.Text.Encoding]::GetEncoding('ISO-8859-1')
$enc2 = [System.Text.Encoding]::UTF8.GetBytes($args)
#JP1イベント格納用の変数定義
$jp1eventnotify = @{
text = $enc1.GetString($enc2);
}
#Invoke-RestMethodでJP1イベントをPOST
Invoke-RestMethod -Uri "https://chat.googleapis.com/v1/spaces/abcde/messages?key=xxxxxxxxxxxxxxxxxxxxx" -Method Post -ContentType 'application/json' -Body (ConvertTo-Json $jp1eventnotify)
-------------------------------------------------------------------------------------
※赤字部分にそれぞれ事前に控えたWebhook URLを指定します。
(補足)
○PowerShellスクリプトを実行する場合、事前にコマンドプロンプトを管理者権限で起動し、下記コマンドを実行して実行許可を付与しておく必要があります。
>Set-ExecutionPolicy RemoteSigned
詳細につきましてはPowerShell側にてご確認ください。
○実行環境からのインターネット接続にProxyがある場合、スクリプト内に下記設定を行うことで定義可能です。
$proxyServer = "http://xxx.xxx.xxx:yyyy"
$proxyUser = "user"
$proxyPassword= "password"
○本スクリプトは弊社環境にて稼働確認を行っておりますが、あくまでもサンプル提供となりますため、記載内容に関するお問い合わせはご容赦ください。
JP1への連携設定
WebhookのURLを発行した後、JP1側で連携するためのコマンドを登録します。JP1/IM、JP1/IM2の自動アクション機能にて、curlコマンドまたはPowerShellスクリプトを定義することで連携が可能です。
自動アクションでは変数として$EVMSGを指定することで元のJP1イベントを引き継ぐことが可能です。
以下、JP1/AJS3のジョブネットがエラーとなった場合(イベントID:4104)に通知する場合の設定例です。
1.JP1/IM-Viewから[オプション]→[自動アクション設定]を開きます。

2.[追加]をクリックし、[アクション詳細設定]画面のアクションへ、下記コマンドを指定します。
【Slackと連携する場合:Linux環境】
[コマンド文]
curl -X POST -H "Content-type: application/json" --data "{'text':"'"?EVMSG?"'"}" https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyy
【Slackと連携する場合:Windows環境】
[コマンド文]
powershell /c C:\temp\slacknotify.ps1 "'"$EVMSG"'"
【Googleチャットと連携する場合:Linux環境】
[コマンド文]
curl -H 'Content-Type:application/json' -d '{ "text":"'"?EVMSG?"'" }' "https://chat.googleapis.com/v1/spaces/abcde/messages?key=xxxxxxxxxxxxxxxxxxxxx"
【Googleチャットと連携する場合:Windows環境】
[コマンド文]:powershell /c C:\temp\googlechatnotify.ps1 "'"$EVMSG"'"
下図はSlack連携用自動アクションの設定例です。

上記設定によりジョブネットエラーのJP1イベント発行時にコマンドが実行され、Slack、Google Chatへメッセージが通知されます。
▼Slackへの連携イメージ

▼Google Chatへの連携イメージ

まとめ
今回はJP1イベントをチャットツールに連携する手順についてご案内しました。今回ご紹介したSlack・Google Chatの他、Microsoft TeamsやChatworkなど、ビジネス向けチャットではWebhookによる連携が可能です。
チャット連携によりほぼリアルタイムにJP1イベントが確認できるようになるため、死活監視やジョブエラーの確認にぜひご活用ください。
製品正式名称(略称表記) および機能対象バージョン
JP1/Integrated Management (JP1/IM) 09-00以降
JP1/Integrated Management 2 (JP1/IM2) 12-00以降
JP1/Automatic Job Management System 3 (JP1/AJS3) 09-00以降
JP1ブログをご覧いただいているみなさまへご案内
いつもJP1サポート技術者ブログをご覧いただきありがとうございます。
本ブログの執筆を担当しているアシストJP1サポートセンターは、「JP1認定技術者」の資格を持つサポート技術者の対応が支持され、お客様満足度は10年連続90%以上を維持しています。
紹介サイトでは、サポートセンターが誇る3つの特徴とJP1の最新情報満載の提供サービスを、お客様の声とともにご紹介しています。是非ご覧ください。
また、アシストとJP1保守契約を締結されている方は、Webサポートセンター「AWSC-2」をご利用いただけます。本ブログサイトではご紹介しきれない2,000件以上のFAQを公開していますので、是非ご利用ください。詳細は、下記リンクよりご確認ください。
ページトップへ戻る
この記事を書いたスタッフ
西尾 高治
西尾 高治

