ServiceNow データソースへの接続 - Amazon Managed Grafana

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ServiceNow データソースへの接続

これは、ServiceNow インスタンスへの接続に使用する ServiceNow データソースです。

注記

このデータソースは、Grafana Enterprise 専用です。詳細については、「Enterprise プラグインへのアクセス許可の管理」を参照してください。

さらに、バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインをインストール必要がある可能性があります。詳細については、「プラグインを使用したワークスペースの拡張」を参照してください。

機能

  • クエリ

    • 統計 API クエリ

    • テーブル API クエリ

      • インシデント、変更、その他のテーブル

  • アラート

  • 注釈 (ベータ版機能)

  • テンプレート変数

設定

Grafana の左側パネルでデータソースを選択します。

以下のようにデータソースの追加を選択します。

servicenow を入力してデータソースプラグインを検索します。

ServiceNow URL を入力します。

[保存してテスト] を選択します。「ServiceNow 接続 OK」という緑色のメッセージが表示されます。

ダッシュボードの例

事前に作成されたダッシュボードがプラグインと共に含まれており、ダッシュボードタブのデータソース設定ページからインポートできます。

使用方法

クエリエディタでデータを返す 2 つの方法があります。

  • TableAPI

  • AggregateAPI

現在ユーザーは次のような事前定義されたテーブルのクエリを選択できます。

  • 変更

  • インシデント

または、v1.4.0 では、[その他 (カスタムテーブル)] オプションを使用したテーブルとフィールドの API 駆動型リストです。このオプションを使用すると、ServiceNow データソースのセットアップに使用したユーザーが利用可能なテーブルのデータをクエリできます。

[カスタムテーブル] オプションは、事前定義されたテーブルリストと同じ機能をすべてサポートしている必要があります。

TableAPI クエリ

TableAPI はテーブルパネルの表示に適したデータを返します。これにより、順番に選択したフィールドに追加のフィルタリングオプションを表示できるようになります。クエリエディタには、クエリにより返される行数を制限するためのフィールドも用意されています。

前のクエリの結果を示すテーブルパネル例。

[表示]

表示行には、表示するフィールドのセレクターが表示されます。また、複数のフィールドを指定できます。フィールドは指定された順序で返されます。

値の表示

値の表示フラグでは、数値の代わりに人間にわかりやすい値でクエリが返されるか、値が表示されます。

例えば、このフラグがない 1 の重要度では、1 のみが表示されます。フラグが有効な場合、表示される値は 1 - High になります。

ServiceNow API ドキュメントによると、これによりパフォーマンスに悪影響が及ぶ可能性があります。

注記

表示値を示す […] では、データベースから直接読み取られず、他のフィールドやレコードの参照が含まれる可能性があるため、パフォーマンスの問題が発生する可能性があります。

フィルター (全般)

フィルター行では、複数のフィールドと値の条件に基づき、表示される行を絞り込むことができます。

すべてのフィルターは AND または OR オペレーションと組み合わされます。

カスタムテーブルを使用しない場合は次のフィールドを使用できます (このリストは今後拡張されます)。

Active Asset Group Assigned To Escalation Issue Number Description Priority State Type Change Risk Change State Start Date End Date On Hold

カスタムテーブルを選択すると、Service Now API からフィールドに自動入力されます。

日付フィルター
時間フィールド 演算子
Opened At 今日または以前 今日以外 当日または以前 当日または以降 timestamp javascript:gs.daysAgo(30)
Activity Due
Closed At
Due Date
Expected Start
Reopened Time
Resolved At
Work End
Work Start
Ignore Time

その他の日付値の詳細については、以下を参照してください: https://developer.servicenow.com/app.do#!/api_doc?v=newyork&id=r_SGSYS-dateGenerate_S_S

演算子 (全般、文字列ベース)
  • 先頭が一致

  • Ends With

  • Like

  • Not Like

  • Equals (等しい)

  • Not Equals

  • Is Empty

演算子 (時間ベース)
  • Today

  • Not Today

  • 今日または以前

  • At or After

[Values] (値)

値の選択は選択したフィルターのタイプによって異なります。

  • ブールフィルターには、真/偽 オプションがあります

  • テキストフィルターでは、任意の値を入力できます

  • エスカレーション、優先度には固定された数値セットがあります

並べ替え

並び替え行では、複数のフィールドと値の条件に基づき、表示される行を絞り込むことができます。

すべてのフィルターは AND オペレーションと組み合わされます。さらに演算子のサポートが追加されます。

[制限]

行の制限を指定して、返されるデータ量を制限できます。デフォルト値は 25 です。

時間フィールド

Time Field では、クエリされたデータを時系列に変換します。データが時系列として処理されると、選択した「時間フィールド」の値がダッシュボード/パネルの時間範囲にない場合は表示されません。

デフォルトの時間フィールドは「Opened At」ですが、使用可能な時間値を持つ任意のフィールドに変更できます。

「Ignore Time」という特別な値では、「up until now」の結果を使用でき、フィルターを使用して表示するデータを制御できます。

AggregateAPI クエリ (統計)

AggregateAPI は常にメトリクスを返し、avg、min、max、sum の集計が含まれます。また、フィルタリングはクエリを絞り込むためにも使用できます。

[表示]

表示行には、表示するメトリクスのセレクターが表示されます。また、複数のメトリクスを指定できます。

フィルター (全般)

集計[フィルター]には、テーブルオプションのような、フィールドと値の基準に基づいて表示メトリクスを絞り込む機能が用意されています。

すべてのフィルターは AND オペレーションと組み合わされます。さらに演算子のサポートが追加されます。

統計フィルターオプションは TableAPI と同じです。

集計

メトリクスの集計には 4 つのタイプと「カウント」があります。

  • 平均

  • 最小値

  • 最大値

  • 合計

  • カウント - クエリによって返されるメトリクス「数」を返します。

グループ化の条件

このセレクタを使用すると、メトリクスをより小さい集計に分割できます。「優先度」でグループ化すると、優先度の「タグ」および一意の値が区切られたメトリクスが返されます。

テンプレート作成

クエリで名前をハードコーディングする代わりに、その場所に変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボード上に表示されるデータを変更できます。

クエリ変数を追加して、それらをテンプレート値で参照する方法については、クエリ変数セクションの例を参照してください。

クエリ変数

Query タイプのテンプレート変数を追加すると、カテゴリ名、キー名、ドロップダウン選択ボックスとして表示されるキー値などの項目を返すクエリを記述できます。

例えば、テンプレート変数クエリ設定でこのようなクエリを指定した場合、categories のすべての値を含む変数を指定できます。

クエリ設定を選択すると、フィルターセクションが表示され、タイプフィールドを選択できます。現在、タイプは Incidents と Changes に限定されています。タイプを選択すると、そのタイプで使用できるフィールドのリストが表示されます。タイプフィールドを選択すると、そのタイプ/フィールドで使用できるオプションを示す値のプレビューが、下部に表示されます。これらの値はダッシュボードのドロップダウンリストに表示され、テンプレート作成と一緒に使用して、ダッシュボードパネルのデータをフィルタリングできます。

例えば、category という名前の変数を追加し、タイプ = Incidents、フィールド = Category を選択すると、Category のオプションリストが表示されます。次にフィルターをパネルに追加し、[Category Equals ${category}] を選択すると、パネルデータに、ダッシュボードのドロップダウンリストから選択されたそのカテゴリのデータのみが表示されます。

Incidents By Category ダッシュボードをインポートして例を表示します。

クエリでの変数の使用

2 つの構文があります。

$<varname> hostname という名前のテンプレート変数の例:

[[varname]] hostname という名前のテンプレート変数の例:

[アラート]

標準 Grafana アラートがサポートされています。グラフパネルで定義されたクエリは、アラート生成に使用できます。

以下はクエリとアラートの例です。このクエリは、重要度の高い未解決のインシデントのグラフすべてを返します。

このアラートは、重要度の高い未解決のインシデントが 5 件以上ある場合に開始されます。

アラートルールをテストするとアラートルールからの出力が表示され、状態履歴を選択すると OK からアラート保留に変換されたアラートが表示されます。

グラフビューに垂直線が表示され、アラートが保留中の間は上部のハートアイコンがオレンジ色に変わります。

アラートの基準が満たされると、ルールは赤に変わります。

グラフビューに赤い垂直線が表示され、上部のハートアイコンは赤に変わります。

アラートのインシデントの書き込み

ベータ版機能

  • ServiceNow データソース用の通知チャネルを設定します。

これにより、設定したユーザーを使用してこのデータソースの ServiceNow インスタンスにインシデントを作成する、Grafana 通知チャネルが設定されます。

このアクションでは、ServiceNow データソースユーザーにインシデント記述のためのアクセス許可を付与する必要があります。

HTTP プロキシの使用

HTTP プロキシを使用するときは、Amazon Managed Grafana のプロキシの場所に以下の環境変数 (複数可) を設定する必要があります。

  • HTTP_PROXY+ または http_proxy-

    • フルパス - http://host:port

    • または host:port のみ

  • HTTPS_PROXY (または https_proxy):

    • フルパス - https://host:port

    • または host:port のみ

‏注釈

Grafana 注釈はこのデータソースの v1.4.0 時点でのベータ版機能です。注釈を使用するとイベントをグラフにオーバーレイできます。

注釈クエリは標準クエリエディタと同じオプションをサポートしていますが、小さな違いがいくつかあります。

  • 選択できる「表示」列は 1 つのみです。これは今後の改善で修正される可能性があります。

  • 時間フィールドは必須です。

よくある質問

ITSM ロールプラグインがない場合はどうしますか?

次のアクションの実行には管理者アクセス許可が必要です

オプション 1: すべてのテーブルへのアクセス許可を Grafana ユーザー管理者に付与します。

オプション 2: ロールを作成し、Grafana がアクセスする必要があるすべてのテーブルに ACL を適用します。

次のアクションの実行には管理者アクセス許可が必要です。

  1. ログインした管理者は security_admin にアクセス許可を昇格する必要があります。

    1. 右上ナビゲーションペインで、プロファイルアイコンを選択します。プロファイルアイコンには、ドロップダウンキャレットインジケータがあります。

    2. ドロップダウンリストから [ロールの昇格] を選択します。

    3. 表示されているモーダルから、[security_admin] チェックボックスを選択します。

    4. [OK] を選択します。

  2. お好みの命名規則で新しいロールを作成します。

    1. 左側のナビゲーションで、[システムセキュリティ] => [ユーザーとグループ] => [ロール] のロールセクションに移動します。

    2. 上部で [新規] を選択します。

    3. ロールの名前および関連する説明を入力します。

    4. [送信] を選択します。

  3. 新しいユーザーを作成、または必要なロールを持つ既存のユーザーを修正します。

    1. ステップ 2 で作成したロール

    2. personalize_dictionary

    3. personalize_choices

    4. cmdb_read (これにより、すべての cmdb テーブルへの読み取りアクセス許可が付与されます)

  4. 必要なテーブルとフィールドのためにテーブル ACL を作成します。

    1. sys_db_object テーブルのために ACL を作成します。

      1. 2 番目の検索ヘッダー列 [名前] に、sys_db_object と入力して、Enter を押します。

      2. フィルタリングされた結果に [テーブル] が表示されます。[テーブル] を選択してレコードに移動します。

      3. タブセクションで、[コントロール] を選択します。

      4. ページの下部で、選択したタブが [アクセスコントロール] であることを確認します。

      5. [新規] をクリックして新しい ACL を作成します。

      6. [オペレーション] の選択を読み取りに変更します。

      7. 画面下部の [ロールが必要] セクションで、[新しい行を挿入] を選択し (ダブルクリック)、作成したロールを検索します。

      8. 作成済みのロールを選択したら、緑色のチェックマークを選択します。

      9. 画面の下部で [送信] を選択して ACL を作成し、モーダルが表示されたら [続行] を選択します。

  5. 特定の sys_db_object フィールドに ACL を作成します。名前、ラベル、表示名、拡張テーブルの各フィールドで、次のステップを繰り返す必要があります。

    1. sys_db_object のテーブルレコードビューのまま、画面の上部に最も近いタブグループの [列] タブを選択します。

    2. フィールド名を見つけて選択します。

    3. 下部タブセクションの [アクセスコントロール] タブで [新規] を選択します。

    4. オペレーションの読み取りへの変更

    5. 下部の「ロールが必要」テーブルで、[行テキストを挿入] を選択します (ダブルクリック)。

    6. 作成済みのロールを検索して、緑のチェックマークを選択します。

    7. [送信] を選択します。

    8. 必須フィールドである、名前、ラベル、表示名、拡張テーブルのすべてで、これらのステップを繰り返したことを確認してください。

  6. 変更、インシデント、および Grafana からクエリする他の CMDB ではないテーブルで、4.1 の手順を繰り返します。4.2 のステップは繰り返しないでください。そのステップは sys_db_object にのみ必要です。