新しい UI デザインをベータ公開しました

f:id:lambdalisue:20190904123446p:plain
新デザインでノード詳細を表示した様子

スマートホン等の小さなデバイスでの閲覧性向上やインターフェースの英語対応を行うために、かねてより開発を進めていた Kompira cloud の新しい UI デザイン(新デザイン)をベータ公開しました。 独自デザインから Google Material Design ベースのデザインへ切り替えることで、初めてでも使いやすいデザインとなっています。 いち早く新デザインを試したい方は、ログイン後のアカウントメニュー(サイト右上のメニュー)より「新しいデザインを試す」をクリックしてください。

f:id:lambdalisue:20190904123925p:plain
アカウントメニュー > 新しいデザインを試す

新デザインから旧デザインに切り替えるには、同様にログイン後のアカウントメニューより「旧デザインに戻す」をクリックしてください。

f:id:lambdalisue:20190904124818p:plain
アカウントメニュー > 旧デザインに戻す

ベーター公開のため、一部未実装の機能があります。未実装機能を利用する場合は旧デザインに戻してから利用してください

以下記事執筆時点(2019/09/04)で未実装の機能

  • 構成図上での検索機能
  • 構成図上でのノード詳細表示機能
  • Ksocket クレデンシャルファイルジェネレータ

[Sonar] 詳細情報の取得のためのアカウント情報の設定

ksocketは検知した機器に対して外部に公開されている情報を取得しますが、詳細情報の取得のためには、対象機器へのアカウント情報の設定が必要になります。本記事ではアカウント情報の設定方法に関してお伝えします。

対応プロトコル

ksocketは以下の形式のアクセスに対応しています。

  • SNMP(v2c/v3)
  • SSH
  • WInRM

設定ファイル

設定はtoml形式のファイルの記載し、以下のパスに格納します。

f:id:tomiyoichi:20190823110837p:plain
アカウント設定ディレクトリの構成

1つのアカウント情報ごとに1つのtomlファイルを作成します。また.skeletonファイルは記載方法のテンプレートとして用意されていますので、.tomlにコピーして利用してください。各プロトコルごとに記載し、ファイルのソート順の早い順で認証情報を適用してアクセスを試みます。

SNMP v2cの場合

例えば、以下のように記載します。

includes = ["10.10.0.0/24",
            "10.20.0.0/24"]

port = 161

[authData]
community = "public"

ここで"includes"ではアカウント情報を適用する対象のIPアドレスです。ksocketが検知した際に、ここに含まれているアドレスであった場合は記載されているアカウント情報を利用してアクセスを試みます。ここに記載したIPアドレス全てに対してksocketからアクセスを試みるわけでは無い点にご注意ください。

SNMP v3の場合

記述例です。

includes = ["10.10.0.0/24",
            "10.20.0.0/24"]

port = 161

[authData]
username = "snmp-user"

authProtocol = "usmHMACMD5AuthProtocol"
authKey = "your-password"

privProtocol = "usmAesCfb128Protocol"
privKey = "priv-password"

"authprotocol"には以下のいずれかを記載します。

  • 認証をしない場合: "usmNoAuthProtocol"
  • MD5を使用する場合: "usmHMACMD5AuthProtocol"
  • SHAを使用する場合: "usmHMACSHAAuthProtocol"

"privProtocol"には暗号化方式を記載します。

  • 暗号化をしない場合: "usmNoAuthProtocol"
  • DESを使用する場合: "usmDESPrivProtocol"
  • AESを使用する場合: "usmAesCfb128Protocol"

SSHの場合

パスワードログインの場合の例

includes = ["10.10.0.0/24"]

port = 22

[account]
username = "john"
password = "passw0rd"

鍵認証でのログインの場合の例

includes = ["10.10.0.0/24"]

port = 22

[account]
username = "john"

[[account.clientKeys]]
filename = "../../id_rsa.common"
passphrase = "secret_credential"

WinRMの場合

接続先側のWinRM接続を有効にするためには以下の記事を参照ください。 blog.cloud.kompira.jp

includes = ["10.10.0.0/24"]

port = 5985

authMethod = "ntlm"

[account]
username = "john"
password = "passw0rd"

"authMethod"には認証形式を記載します。"basic", "ntlm", "credssp"のいずれかから選択できます。

複数のアカウント情報が存在する場合

f:id:tomiyoichi:20190823113503p:plain
複数のアカウント情報が存在する場合

上記のように複数のアカウント情報ファイル(tomlファイル)が存在する場合には、以下の順序で処理されます。

  1. 100-test1.toml のアカウントを使ってsshアクセス試行する
  2. 200-test2.toml のアカウントを使ってsshアクセス試行する
  3. 300-test3.toml のアカウントを使ってsshアクセス試行する
  4. 999-example.toml のアカウントを使ってsshアクセス試行する

あるネットワークのゾーン内のアカウント情報を共通化させたい場合には、"includes"で指定する事が出来ます。言い換えれば、各接続先ごとに認証情報が異なる場合には、各接続先ごとにアカウント情報ファイルを用意する必要があります。

設定ファイルを暗号化/復号化する

TOML形式で保存されたアカウント情報は平文で保存されていますので、必要に応じて暗号化を行います。

$sudo /opt/fixpoint/ksocket/bin/ksocket encrypt (認証情報のtomlファイル名)

例
$sudo /opt/fixpoint/ksocket/bin/ksocket encrypt 999-sample.toml

拡張子".toml"が ".toml.kscrypt" という暗号化ファイルになります。 (ksocket本体はkscryptファイルを読み取り、内部的に復号処理を行って対象の機器にアクセスを行います。)

暗号化したアカウント情報ファイルを復号する際は以下のように行います。

$sudo /opt/fixpoint/ksocket/bin/ksocket decrypt (暗号化認証情報の.kscryptファイル名)

例
$sudo /opt/fixpoint/ksocket/bin/ksocket decrypt 999-sample.toml.kscrypt

拡張子".toml.kscrypt"ファイルが平文の".toml"に復号されます。複合後はテキストエディターで編集できるようになりますので、必要に応じて再度暗号化を行ってください。

暗号化設定ファイルの保存・バックアップ

ksocket は初回起動時に RSA 鍵ペアを作成保存します。暗号化・復号化では、ここで作成した RSA 鍵が利用されます。 暗号化されたファイルを別のksocket用サーバーに移動させるなど、 元のRSA鍵にアクセスできない場合には復号化は出来ません。 このためアカウント情報ファイルのバックアップや移動を行う際には、必ず復号化してから行ってください。

特に(コールドスタンバイ用などで)ksocketサーバーを複数運用してアカウント情報ファイルを共有する場合、kscryptファイルのコピーは利用出来ませんのでご注意ください。

ksocketからWindowsサーバーの接続受け入れ設定を一括で行う手順を公開しました

Sonarを用いてWindowsサーバーからの情報収集を行う際、ksocketのクレデンシャルファイルを作成すると共に、各ノードにWinRMの設定を行う必要があります。 この設定が大変、という皆様からの多くの声を受け、設定を一括で行うためのひとつの方法を簡易ながらマニュアルとしてまとめさせていただきました。

Active Directory環境下限定の方法とはなりますが、これから大量のWindowsサーバーを管理される予定の方は是非お試しください。

ksocket接続受け入れの一括設定マニュアル

引き続き、ご愛顧のほどよろしくお願いします。

Ksocket で Windows 名前解決ができるようになりました

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

  • ksocket-20190726
    • ksocket-core: 1.8.0
    • ksocket-networks: 1.8.0

アップデートの内容

  1. Linux 版 Ksocket で Windows の NetBIOS 名前解決ができるようになりました

    • ksocketからスキャン対象のWindows機に対して名前照会を行い、取得できた場合には「ホスト名」欄に表示します。
      f:id:tomiyoichi:20190816221825p:plain
      ホスト名の表示例
  2. SNMP 通信の負荷を軽減しました

    • データ取得を行う時間間隔を増やすことで、スキャン対象機の負荷が急激に増加しなくなります。

最新の Ksocket はこちらよりダウンロードすることができます。



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

ネットワーク構成図表示機能をβリリースしました 他

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

マルチユーザー機能をβリリースしました

Kompira cloudへのログインユーザーを追加できるようになりました。

本機能はβのため、今後内容に変更がある可能性があります

[Sonar] ネットワーク構成図表示機能をβリリースしました

いままでネットワーク上に存在するノードは、一覧表で見るしかありませんでしたが、 今回ネットワーク構成図の表示機能をベータリリースしました。

以下のように構成図の表示や、表示されているノードの検索や詳細表示が行えます。

f:id:c255:20190710181205p:plain

これに伴い Sonar におけるネットワークスキャン機能も情報取得の強化が行われているため、 ぜひこの機会にもう一度スキャンして、構成図表示機能をお試しください。

[Sonar] WebUI 上からスキャンのスケジューリング設定ができるようになりました

[Sonar] スキャンのイベント通知として Webhook が使用できるようになりました

[Sonar] スキャン処理の改善を行いました

  • ノードシグネチャを持たず、Macアドレスのみが検出されたアドレスもノードとして集約するようになりました
  • ルーティング情報を取得するようになりました (現在はAPIでのみ取得できます)

[Pigeon] 架電履歴にて架電先の電話番号だけでなく表示名を確認できるようになりました

連絡履歴の詳細画面に表示される架電履歴では、その連絡にて行われた架電の情報を確認可能です。

各架電における発信先の情報としてこれまでは電話番号のみ確認可能でしたが、本アップデートにより「連絡先」に設定した表示名を確認できるようになりました。

f:id:honda_fixpoint:20190717091024p:plain



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

Zabbixでアラートが発生したときにPigeonで電話がかかるように設定する

(文言およびスクリーンショットを新UIのものに変更しました。2020/1/14)

Pigeonは複数人のチームに対して、誰かから応答があるまで電話連絡を順番に行うサービスです。
想定される主な使い方として、サービスを監視しているツールでアラートを検知したとき、このアラートをトリガーにPigeonを呼び出して、担当者に電話連絡をし、迅速に障害対応を行えるようにする、というものがあります。

ここでは、代表的な監視ツールの1つであるZabbixを例にとって、アラートを検知した際にPigeonで電話がかかるように設定する方法をご紹介します。

環境

  • Ubuntu 18.04
    • ZabbixがインストールされているOS
  • Zabbix 4.0

今回の検証では、Zabbixの最新のLTSである Zabbix 4.0 を使用しています。
お使いのバージョンにより、設定方法が微妙に異なる箇所がありますので、ご注意ください。

Pigeonの設定

まず、Pigeonでコールフローとガイダンスを作成します。
Pigeonの設定方法については、Pigeon チュートリアル 記事で詳しく記載していますので、そちらをご覧ください。

ガイダンスのメッセージには、以下のようなテキストを設定しておきます。

Zabbixでアラートが発生しました。
アラート発生ホスト、{{host}}。 アラート内容、{{message}}。
 対応される場合は1を、次の担当者に連絡する場合は2を、連絡から離脱する場合は3を、押してください。

設定ができたら、コールフローIDとガイダンスIDを保存しておいてください。
コールフローIDとガイダンスIDは、それぞれKompira cloudの以下の画面で確認することができます。 IDはそれぞれクリックするとコピーできます。

コールフローID f:id:sugimotofp:20200114152826p:plain

ガイダンスID f:id:sugimotofp:20200114153032p:plain

スクリプトの配置

PigeonでAPIから電話をかけるには、 [POST] /api/apps/pigeon/chain/invoke を使用します。
以下のスクリプト pigeon_call.sh は、必要なパラメータを設定した上でこのAPIを呼び出すものです。
これを /usr/lib/zabbix/alertscripts/pigeon_call.sh として、Zabbixホスト上に保存しましょう。

#!/bin/bash
# Usage: pigeon_call.sh [call_parameters]

# Kompira cloud Space URL
SPACE_URL=https://yourspacename.cloud.kompira.jp

# Kompira cloud API Token
API_TOKEN=wJu1jij8GeccVVkTOzy8xWH5N2ugKWDWM+HcaV0J

# Pigeon / Callflow ID
CALLFLOW_ID=9b020603-a477-44fb-ac4b-67790b14bfec

# Pigeon / Guidance ID
GUIDANCE_ID=408e47e2-ceb2-4cc9-8a55-778782eebc7a

if [ -n "$1" ]; then
  CALL_PARAMETERS="$1"
else
  CALL_PARAMETERS={}
fi

INVOKE_URL=${SPACE_URL}/api/apps/pigeon/chain/invoke
PAYLOAD="{
  \"params\": {
    \"callflowId\": \"${CALLFLOW_ID}\",
    \"guidanceId\": \"${GUIDANCE_ID}\",
    \"parameters\": ${CALL_PARAMETERS}
  }
}"

curl -s -X POST -H "accept: application/json" -H "X-Api-Version: 1.0" -H "X-Authorization: Token ${API_TOKEN}" "${INVOKE_URL}" -d "${PAYLOAD}"

このスクリプトのうち、以下の値はお使いの環境にあわせて編集してください。

  • SPACE_URL
  • API_TOKEN
  • CALLFLOW_ID
  • GUIDANCE_ID

Zabbixの設定

ZabbixのConfigurations -> Actions -> Create Actionと選択することで、新しいActionを作成することができます。
このActionで、Zabbixがある条件を満たしたときに pigeon_call.sh が実行されるように設定します。

f:id:kompiracloud:20190613171808p:plain
ActionでOperationを設定
f:id:kompiracloud:20190613172100p:plain
Opreationの内容を設定

Operationの設定では各項目を以下のようにします。

項目 設定内容
Operation type Remote command
Target list Current host
Type Custom script
Execute on Zabbix server
Commands /usr/lib/zabbix/alertscripts/pigeon_call.sh '{"host": "{HOST.NAME1}", "message": "{ITEM.NAME1}"}'

ここでは、実行するコマンドとしてホスト名 {HOST.NAME1} とトリガーのアイテム名 {ITEM.NAME1} を指定しています。
その他にもここでは様々なマクロを設定することができます。
今回はZabbix 4.0を検証に使用していますが、バージョンごとに指定できるマクロの種類・指定の名前が異なります。 詳しくは公式ドキュメントを参照してください。

www.zabbix.com

架電テスト

ここまでで、Zabbixで条件が満たされるとPigeonに通知が飛ぶように設定することができました。
この状態でActionの条件を満たすと、Zabbix上では先ほど設定した pigeon_call.sh を実行され、Pigeonで登録した電話番号に電話がかかってきます。

f:id:kompiracloud:20190613180004p:plain

上記の画面でもわかる通り、Status = Executed となっており、スクリプトが実行されていることがわかります。
また、Pigeonでは架電履歴を以下のように確認することができます。

f:id:sugimotofp:20200114154836p:plain
Pigeonで確認できる架電履歴

一番下の「パラメータ」では、API実行時に指定したパラメータを確認することができます。
今回の設定では、Action実行時のコマンドに hostmessage を渡しているので上記のようになっていますが、設定すれば他にも任意のkey, valueを渡すことができます。

まとめ

ここまで見てきたように、Pigeonを利用することで、障害発生時の自動電話連絡を簡単に設定することができます。
現在はサービス運用でメール通知しかしていないけれど、電話通知がしたい。でも電話通知をするのは結構大変そう・・・と考えている方は、ぜひ導入を検討してみてください。

新サービス「Pigeon」を正式リリースしました 他

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

新サービス「Pigeon」を正式リリースしました

エスカレーション電話連絡を実現する新サービス「Pigeon」を2019年2月からベータ版として公開しておりましたが、この度正式版としてリリースを行いました。

f:id:kompiracloud:20190523110831p:plain
Pigeon 構成イメージ

複数の連絡先を束ねてコールフローを作成し、 登録順に自動音声電話をかけるまでの一連の流れをサービスだけで完結させることができます。 チュートリアルはこちらからご覧いただけますので、ぜひご一読ください。

[Sonar] ksocketの認証情報ファイル生成機能を追加しました

ksocketからLinuxやWindows、ネットワーク機器に接続する際に必要な情報は、toml形式で記述をします。
今回のアップデートにより、Web上で項目を入力することで、対応するtomlファイルを生成できるようになりました。

f:id:kompiracloud:20190520144532p:plain
画面上の設問に答えていくだけで有効なtomlファイルを生成できます。

Kompira cloudにログイン後、画面右上の全体設定->認証情報というメニューからお使いいただくことができます。
なお、本機能はJavaScriptのみで完結しており、入力されたユーザ名、パスワード、IPアドレスなど一切の情報はKompira cloudには送信されません。
APIの提供はございませんので、ご注意ください。

[Sonar] ksocket のアップデート

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

  • ksocket-20190510

    • ksocket-core: 1.8.0
    • ksocket-networks: 1.7.0
  • アンインストールが1コマンドで行えるようになりました

  • その他、いくつかの不具合修正、安定性の向上を行いました

最新の ksocket はこちらよりダウンロードすることができます。



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