「ssmjp ヤマサキ春のサメまつり」に参加してきました

こんにちは、三角です。

3月6日に開催された「ssmjp ヤマサキ春のサメまつり」に参加してきました。

ssmjp.connpass.com

ssmjpについて

今回は、波田野さんが「運用自動化」とは何か"を再整理して「ssmjp ヤマサキ春のサメまつり」で発表するよという事だったので、始めてssmjpに参加してきました。

ちなみに、ssmとは新橋・スタディー・ミーティングの略で、 コンセプトは「アウトプットしないのは知的な便秘」でLTの練習場的な位置づけな勉強会だそうです。

基本はインフラ運用系の勉強会だけれども、面白ければ何でもいい。スペシャルコラボの会もある。 どんなネタを話してもOKで、キャンギャルの話とか出会い系の話も過去にあったそうです。

ちなみに今回は、ssmjpとJAWS-UGとのコラボ企画で、 サメまつりという事なので、JAWS-UGの話が中心なのかと思ってました。

登壇感想等

「サメの話」まさしさん

サメは、2016年3月末時点で世界中に509種が確認されており、日本では130種生息 サメの事故 2018年 130件。サメの死亡事故 年間5人死亡。 と、まじめにサメの話が始まり、JAWS-UGのかけらもありませんでした。

近年のサメの進化がすごいという事で、サメの映画の説明まで、、 MEGザ・モンスター、メガ・シャーク、ダブルヘッドジョーズ、トリプルヘッドジョーズ、ファイブヘッドジョーズ、シックスヘッドジョーズ、、、、 そんなにサメの映画があるんですね。 勉強になりました。。

「愛知県豊根村でチョウザメの養殖場見学とチョウザメを食してきた話」吉江さん

ここでもJAWS-UGではなく、サメの話。(チョウザメはサメではないけどと断り付きの発表でした) 日本にチョウザメの養殖をしているところがあるのは初めて知りました。

チョウザメのコース料理を食べられる宿で食べてこられたそうですが、 フグやタイのようなおいしい魚だったそうです。

「運用自動化とは」波田野さん

2018年は、運用自動化への過剰な期待を冷却する活動を行ってきたハタノさん、自動化否定派と言われる事もあるそうです。 といいつつ、ダメな運用自動化の3類型をぶち込んでくるあたり、さすがハタノさん!

今回の運用自動化のポイントは下記の3点と捉えました。

  1. 運用はサービスを継続的にデリバリする事であり、事業継続性の実現である

  2. 運用自動化の本質は事業継続性の向上であり、手順書なき自動化は事業継続性の低下につながる

  3. 運用自動化がサービス価値、デリバリ価値向上につながるか検討する必要がある

システム運用の業務に携わっていると、目の前の事に追われ、運用とは何なのかを考える機会があまりないので、ポイント1は非常にいい視点だなと思っています。また、この自動化がどういう価値を生むのかをあまり検討することなく、自動化やツール導入などの手段が目的になっているケースもままありますので、参考になる運用現場が多いのではないでしょうか。最近、運用は人気が無く、若手を配属してのすぐに辞めちゃうという話も聞きます。向かうべきところがわからず、ただ単に目の前の業務を維持する為に、手順通り対応しろ、24時間365日対応しろと言われるのであれば、モチベーションが上がらないのもよくわかります。それぞれの運用現場にとって、俺たちの価値とは何で、価値を具体的な数値として目標を設定し、効果測定し、継続的に改善していく事が出来ていければ、やりがいのある運用現場になるのではないかと思います。

ポイントの2に関しては、おおむね賛成なのですが、手順書の部分は、自動化の仕様書にした方が勘違いが無くていいかなと思いました。 よくある手順書は、人が運用する為の手順が書かれているもので、自動化には不向きな手順も多数あります。また、人がやる運用であれば、何か課題があったら誰々さんに連絡ですむ話も、自動化なら、異常系の処理を設計に盛り込んでいく必要があります。そのあたりは開発者としての視点が求められますので、手順書より仕様書の方が、個人的にはすっきりするかなと。

ダメな運用自動化の3類型は、自動化やっていると、うん、あるあるという内容。これが、はてブのホッテントリ入りしたようなので、世の中の自動化リテラシーは随分と上がってきたんだなと感心しました。やったことないと響かないですし。

2011年の運用ドキュメントモデルから運用のあるべき姿を追求してきたハタノさんだからこそ、まとめ上げられた渾身のスライドは公開されていますので、下記のURLをご覧ください。

speakerdeck.com

speakerdeck.com

SNMPv3によるスキャンに対応しました 他

ksocket について、以下の内容を含むアップデートを行いました。

  • ksocket: 1.6.5
  • ksoperations-networks: 1.6.2

SNMPv3によるスキャンができるようになりました

SNMPで構成情報を取得する際、これまではSNMPv2cでのスキャンに対応していましたが、今回のアップデートでSNMPv3でもスキャンが行えるようになりました。

以下はSNMPv3での接続設定ファイルの設定例です。

$ cd /opt/fixpoint/ksocket/etc/ksocket/credentials/snmp
$ cp 999-example.toml.skeleton 200-v3test.toml
$ vi 200-v3test.toml

includes = ["10.10.0.0/24"]

port: 161

[authData]
# ユーザ名
username = "your-username"

# 認証方式
# - usmNoAuthProtocol (認証なし、default)
# - usmHMACMD5AuthProtocol (MD5(HMAC-MD5-96) に対応)
# - usmHMACSHAAuthProtocol (SHA(HMAC-SHA-96) に対応)
# - usmHMAC128SHA224AuthProtocol
# - usmHMAC192SHA256AuthProtocol
# - usmHMAC256SHA384AuthProtocol
# - usmHMAC384SHA512AuthProtocol
authProtocol = "usmHMACMD5AuthProtocol"

# 認証パスワード
#authKey = "your-password"

# 暗号化方式
# - usmNoPrivProtocol (暗号化なし、default)
# - usmDESPrivProtocol (DES(CBC-DES))
# - usm3DESEDEPrivProtocol (3DES-EDE)
# - usmAesCfb128Protocol (AES(CFB128-AES-128))
# - usmAesCfb192Protocol (AES(CFB128-AES-192))
# - usmAesCfb256Protocol (AES(CFB128-AES-256))
privProtocol = "usmAesCfb128Protocol"

# 暗号化パスワード
privKey = "priv-your-password"

設定ファイルの標準形式を変更しました

ksocketの設定ファイル、credentialファイルの標準形式はこれまでYAMLを採用していましたが、今回のアップデートよりTOML形式での記述に対応しました。

以下は、同じ内容の設定ファイルで、左が従来のYAML形式、右が今回対応したTOML形式での記述例です。

f:id:kompiracloud:20190313162129p:plain
左: YAMLファイル, 右: TOMLファイル

TOML形式では、文字列の指定のときに username = "john" のようにクォートで囲む必要があることに注意してください。

YAMLファイルとTOMLファイル両方がある場合、TOMLファイルが優先されるようになります。ksocketアップデートを行う場合はご注意ください。
また、今後はTOMLファイル形式を標準とし、YAMLファイル形式のサポートは将来的に廃止予定 (deprecated) となります。

最新の ksocket はこちらよりダウンロードすることができます。
ksocketを新規インストールするときはksocketドキュメントの2.1章を参考にインストールを行ってください。
ksocketをアップデートするときは、ksocketドキュメントの2.2章に記載されたアンインストールを行ったのち、2.1章のインストールを行ってください。

Kompira cloud 製品紹介ページはこちら
Kompira cloud 資料ダウンロードはこちら

コンピュータからインターフェース一覧情報を取得する機能を追加しました

Kompira cloudについて、以下の内容を含むアップデートを行いました。

コンピュータからインターフェース一覧情報を取得する機能を追加しました

これまでKc Sonarでは、スキャン時にアクセスしたアドレスの一覧情報を表示していました。
今回のアップデートではこれに加えて、LinuxおよびWindowsにおいて、その機器の中のネットワーク・インターフェース一覧を取得できるようになりました。

機器中のインターフェース一覧より、IPv4アドレスの一覧とそれに対応した以下の情報を取得し、表示します。

  • インターフェース名
  • ネットマスク
  • MACアドレス
  • MACアドレスに対応したベンダー名

この変更は、本日以降スキャンしたスナップショットおよびノードに適用されます。


例えば以下はUbuntu 16.04サーバをスキャンさせた例です。
ksocketからアクセスしたのは 10.20.11.91 ですが、Ubuntuサーバが持っているその他のインターフェース情報も取得できていることがわかります。

f:id:kompiracloud:20190219192049p:plain
Ubuntuでのスキャン例

Windowsの場合も以下のように取得することができます。

f:id:kompiracloud:20190219192831p:plain
Windows 10でのスキャン例

資産管理とリース契約の管理について

こんにちは、三角です。

PC資産やリース契約等の情報をExcelで管理されている方も多いと思います。

知らないPC資産があり管理から漏れていた、リース契約の期日の確認が漏れており更新に影響が出たなど、Excelを利用した人力での管理には限界を感じる事はありませんか?

Kc SonarではITサービスマネージメントツールと連携する事で、定期的なスキャンによりPC資産の確認し常に最新状態を保ち、その資産情報とリース契約を紐づけて管理する事により期日の一か月前に通知する等を自動行えるようになりますので、管理漏れが無くなります。

連携できるITサービスマネージメントツールは、ServiceNow、LMIS on cloudなどAPIが利用できるものであれば、なんでも問題ありません。

是非、ご検討ください!

新サービス「Pigeon」のベータ版を公開しました

Kompira cloudについて、以下の内容を含むアップデートを行いました。

新サービス「Pigeon」のベータ版を公開しました

エスカレーション電話連絡を実現する新サービス「Pigeon」のベータ版を公開いたしました。

Pigeon 構成イメージ
Pigeon 構成イメージ

ベータ版はAPIのみのご提供となりますが、複数の連絡先を束ねてコールフローを作成し、
登録順に自動音声電話をかけるまでの一連の流れを検証いただくことが可能です。

ご興味がございましたら、下記のフォームよりお問い合わせください。

Kompira cloud お問い合わせフォーム
https://www.fixpoint.co.jp/cloudcontact/

Pigeon (ベータ版) チュートリアル

はじめに

Kc Pigeonは複数人のチームに対して、誰かから応答があるまで架電を順番に行うサービスです。架電の内容は自動音声によって再生され、電話をうけた人は1~9の数字を押すことで応答内容を決めることができます。

ここでは、Kc Pigeon (ベータ版) における架電内容の設定と、架電の実行をAPI経由で行う方法をご紹介します。

※ Kc Pigeonは現在ベータ版での公開であり、次期バージョンではAPIのURLやデータの構造、架電の挙動などが変更される可能性があります。
※ 本チュートリアルを実施するには初期設定が必要となりますので、ご利用希望の場合はお問い合わせフォームよりその旨ご連絡ください。

Kompira cloud お問い合わせフォーム
https://www.fixpoint.co.jp/cloudcontact/

APIトークンの作成

Kompira cloudのAPIを使用するために、まずはAPIトークンの発行を行いましょう。

ブラウザからKompira cloudにアクセスし、画面右上の全体設定 > APIトークンから、APIトークンの作成をすることができます。

f:id:kompiracloud:20190206150550p:plain:w600

f:id:kompiracloud:20190206150639p:plain:w600

作成されたAPIトークン文字列を保存しておきます。

組織情報の確認

Kc Pigeonでは、電話連絡先や架電履歴など、全ての情報は組織という単位の下に作成されます。

組織の一覧取得 : [GET] /api/apps/pigeon/organizations

まずはcurlコマンドを使って以下のようにAPIを実行し、組織の情報を確認しましょう。

$ curl -X GET -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations

ここで、 aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789 となっている部分は、前の項で発行したAPIトークンを設定してください。 また、 https://yourspace.cloud.kompira.jp の部分は実際にお使いいただいているKompira cloudのスペースURLを設定してください。

$ curl -X GET -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations | jq .
{
  "offset": 0,
  "limit": 30,
  "total": 1,
  "items": [
    {
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "テスト組織",
      "ivrConfigId": "6ff6628d-4b68-4fa1-a0bd-66e72c20cb33",
      "createdAt": "2019-01-30T07:09:03Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedAt": "2019-01-30T07:09:03Z",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    }
  ]
}

初期状態では、1つの組織が作成された状態となっています。 このうち、 organizationId の値を保存しておいてください。

連絡先とコールフローの作成

次に、電話での連絡先情報を作成しましょう。 今回は、田中さん、山田さん、斎藤さんの3人に順次電話がかかるようにデータを作成してみます。Kc Pigeonでは、このように複数人が連なった一連の連絡先を「コールフロー」と呼びます。

連絡先の作成 : [POST] /api/apps/pigeon/organizations/{organizationId}/contacts

まず、田中さん、山田さん、斉藤さんの名前と電話番号情報をそれぞれ作成します。 {organizationId} の部分には、組織情報を取得した時に保存しておいた organizationId の値を入れてください。 POST時のJSONデータは以下のような形式で指定をします。

{
  "displayName": "田中一郎", 
  "phoneNumber": "01234567890"
}

以下は、具体的にcurlコマンドで指定する例です。

$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/contacts -d '{"displayName": "田中一郎", "phoneNumber": "01234567890"}'
$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/contacts -d '{"displayName": "山田隆", "phoneNumber": "00011112222"}'
$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/contacts -d '{"displayName": "斉藤正", "phoneNumber": "00088885555"}'

作成した連絡先の一覧は、 以下のように取得することができます。

連絡先の一覧取得 : [GET] /api/apps/pigeon/organizations/{organizationId}/contacts

$ curl -X GET -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/contacts | jq .
{
  "offset": 0,
  "limit": 30,
  "total": 3,
  "items": [
    {
      "contactId": "460c31ee-c08e-4d1c-8e5c-fef14f175bde",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "斉藤正",
      "phoneNumber": "00088885555",
      "createdAt": "2019-01-30T07:34:06Z",
      "updatedAt": "2019-01-30T07:34:06Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    },
    {
      "contactId": "74af07c4-0d3a-4403-928d-74fa9f1a003c",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "山田隆",
      "phoneNumber": "00011112222",
      "createdAt": "2019-01-30T07:33:27Z",
      "updatedAt": "2019-01-30T07:33:27Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    },
    {
      "contactId": "e7428b21-da0e-4425-8cf7-1f65e7d95e07",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "田中一郎",
      "phoneNumber": "01234567890",
      "createdAt": "2019-01-30T07:32:31Z",
      "updatedAt": "2019-01-30T07:32:31Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    }
  ]
}

続いて、田中さん、山田さん、斉藤さんが登録されたコールフローを作成しましょう。

コールフローの作成 : [POST] /api/apps/pigeon/organizations/{organizationId}/callflows

POST時のJSONデータは以下のような形式で指定をします。

{
  "displayName": "チーム1",
  "escalations": [
    {"contactId": "e7428b21-da0e-4425-8cf7-1f65e7d95e07"},
    {"contactId": "74af07c4-0d3a-4403-928d-74fa9f1a003c"},
    {"contactId": "460c31ee-c08e-4d1c-8e5c-fef14f175bde"}
  ]
}

以下の例では、 escalations キーに対して田中さんのcontactId、山田さんのcontactId、斉藤さんのcontactIdを指定しています。

$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/callflows \
-d '{"displayName": "チーム1", "escalations": [{"contactId": "e7428b21-da0e-4425-8cf7-1f65e7d95e07"}, {"contactId": "74af07c4-0d3a-4403-928d-74fa9f1a003c"},  {"contactId": "460c31ee-c08e-4d1c-8e5c-fef14f175bde"}]}' | jq .

{
  "callflowId": "bf72caa6-34fa-4032-aaa1-cf6136c9a9a5",
  "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
  "displayName": "チーム1",
  "escalations": [
    {
      "contactId": "e7428b21-da0e-4425-8cf7-1f65e7d95e07",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "田中一郎",
      "phoneNumber": "01234567890",
      "createdAt": "2019-01-30T07:32:31Z",
      "updatedAt": "2019-01-30T07:32:31Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    },
    {
      "contactId": "74af07c4-0d3a-4403-928d-74fa9f1a003c",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "山田隆",
      "phoneNumber": "00011112222",
      "createdAt": "2019-01-30T07:33:27Z",
      "updatedAt": "2019-01-30T07:33:27Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    },
    {
      "contactId": "460c31ee-c08e-4d1c-8e5c-fef14f175bde",
      "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
      "displayName": "斉藤正",
      "phoneNumber": "00088885555",
      "createdAt": "2019-01-30T07:34:06Z",
      "updatedAt": "2019-01-30T07:34:06Z",
      "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
      "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
    }
  ],
  "createdAt": "2019-01-30T08:25:52Z",
  "updatedAt": "2019-01-30T08:25:52Z",
  "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
  "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
}

作成すると、 callflowId が生成されるので、これを保存しておきます。

ガイダンス情報の作成

架電前の最後の準備として、架電時に自動音声で流れる文章を作成しましょう。Kc Pigeonではこれを「ガイダンス」と呼びます。

ガイダンスの登録をする場合、「電話を受信したらはじめに流れる音声の文章」と、その後「1~9を押した時に流れる音声の文章」をそれぞれ登録します。 今回は、あるサーバに障害が発生したとき、それを運用担当者に知らせるようなガイダンスを作成してみましょう。

タイミング 動作
電話受信時 {{server}}にて{{incident}}が発生しました。対応される場合は1を、次の担当者に連絡する場合は2を押してください。
1が選択された時 1が押されました。対応をよろしくお願いいたします。
2が選択された時 2が押されました。次の担当者に連絡します。

ガイダンスの作成 : [POST] /api/apps/pigeon/organizations/{organizationId}/guidances

POST時のJSONデータは以下のような形式で指定をします。

{
  "displayName": "サーバの障害通知",
  "messageTemplate": "{{server}}にて{{incident}}が発生しました。対応される場合は1を、次の担当者に連絡する場合は2を押してください。",
  "replies": {
    "1": {
      "messageTemplate": "1が押されました。対応をよろしくお願いいたします。",
      "behavior": "terminate"
    },
    "2": {
      "messageTemplate": "2が押されました。次の担当者に連絡します。",
      "behavior": "continue"
    }
  }
}

behavior というキーは、1~9が押されたときにどのような動作をするかを指定する値です。

terminate と指定すれば架電はそこで終了となり、 continue と指定すればコールフローの次の人に架電が行われます。

$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/guidances \
-d '{"displayName": "サーバの障害通知", "messageTemplate": "{{server}}にて{{incident}}が発生しました。対応される場合は1を、次の担当者に連絡する場合は2を押してください。", "replies": { "1": { "messageTemplate": "1が押されました。対応をよろしくお願いいたします。", "behavior": "terminate" },  "2": { "messageTemplate": "2が押されました。次の担当者に連絡します。", "behavior": "continue" }}}' | jq .

{
  "guidanceId": "b1510cf0-3b10-4833-8733-049d7b409dc3",
  "organizationId": "e83d4da9-b999-4dbe-bb1f-224b5ee80cda",
  "displayName": "サーバの障害通知",
  "messageTemplate": "{{server}}にて{{incident}}が発生しました。対応される場合は1を、次の担当者に連絡する場合は2を押してください。",
  "replies": {
    "1": {
      "messageTemplate": "1が押されました。対応をよろしくお願いいたします。",
      "behavior": "terminate"
    },
    "2": {
      "messageTemplate": "2が押されました。次の担当者に連絡します。",
      "behavior": "continue"
    }
  },
  "createdAt": "2019-01-30T09:08:30Z",
  "updatedAt": "2019-01-30T10:02:16Z",
  "createdBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc",
  "updatedBy": "fb99fb56-556b-4bc1-b627-e0e58b2265dc"
}

作成すると、guidanceId が生成されるので、これを保存しておきます。

コールフローに架電をする

では、いよいよ自動音声による電話をかけてみましょう。 電話の架電は、これまでに作成したコールフローとガイダンスを1つずつ指定することで行います。 「コールフロー」で定義したメンバーに、「ガイダンス」で定義した内容で電話をする、ということです。

連絡処理の実施 : [POST] /api/apps/pigeon/organizations/{organizationId}/processes

POST時のJSONデータは以下のような形式で指定をします。

{
  "callflowId": "bf72caa6-34fa-4032-aaa1-cf6136c9a9a5",
  "guidanceId": "b1510cf0-3b10-4833-8733-049d7b409dc3",
  "parameters": {
    "server": "テスト用サーバー",
    "incident": "軽度の障害"
  }
}

parameters に指定された値は、ガイダンスで {{key}} という形式で書かれた部分に埋め込まれます。 例えば「{{server}}で{{incident}}が発生しました」というメッセージをガイダンスに登録した場合、上記のJSONデータで連絡処理を実行すると「テスト用サーバー軽度の障害が発生しました」という内容が実際に発声されます。

$ curl -X POST -H "X-Authorization: Token aAbBcCdDeEfFgGhHiIjJkKlLmMnNoO0123456789" \
https://yourspace.cloud.kompira.jp/api/apps/pigeon/organizations/e83d4da9-b999-4dbe-bb1f-224b5ee80cda/processes \
-d '{"callflowId": "bf72caa6-34fa-4032-aaa1-cf6136c9a9a5", "guidanceId": "b1510cf0-3b10-4833-8733-049d7b409dc3", "parameters": {"server": "テスト用サーバー", "incident": "軽度の障害"}}'

APIを実行すると、以下の順で処理が進みます。

  • 田中さんに自動電話架電
  • 山田さんに自動電話架電
  • 斎藤さんに自動電話架電

この中で、誰かが「1」を押すと、架電はその時点で終了となり、次の人への架電は行われません。 「2」が押されたり、電話に出なかったりした場合は次の人への架電を行います。

まとめ

簡単ではありますが、Kc Pigeonによる架電の方法をご紹介しました。

API一覧は、APIドキュメントPigeon カテゴリから確認することができます。

メンテナンス後の監視再開忘れ

こんにちは、三角です。

2/2にクレジットカードの決済システムの障害のニュースがありました。

知人からはSUICAをクレジットカードチャージにしていて、チャージが出来ず駅に入れなかったため、 久しぶりに切符を買おうとしたら、買い方を忘れてしまってまごついたなんて話も聞きました。

決済システムは社会インフラなので、障害が起きると影響が大きいですね。

今回は障害にすぐに気が付いたので良かったですが、 メンテナンスの時に止めた監視を、メンテナンス終了後監視再開する事を忘れたことはありませんか?

監視再開を忘れていて、監視対象のシステムに障害が発生したら、まったく検知する事が出来ませんので、 対応の初動も遅れ、被害も拡大してしまう為、想像しただけで冷や汗が出ますね。

定期的にちゃんと監視をしているのか目視で確認するという方法もありますが、それも大変なので、自動でやらせたい!

そこで、「Kompira cloud Sonar」の出番です。

あなたのお使いの監視ツールは、Zabbixですか? それともNagios、hinemosなどのOSSですか? JP1、SystemWalker、Senju、SystemAnswer、パトロールクラリス等の商用ツールですか? それとも、Macarel等のクラウドサービスですか?

どの監視ツールをお使いでも、Kompira cloud Sonarで監視対象システムの構成情報を自動で管理しておけば、 監視ツールと連携して、対象を監視しているか自動で確認する事ができます。

Zabbixとの連携事例は、こちらの記事をご覧ください。

blog.cloud.kompira.jp