

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

# ServiceNow データソースへの接続
<a name="grafana-enterprise-servicenow-datasource"></a>

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

**注記**  
このデータソースは、Grafana Enterprise 専用です。詳細については、「[Enterprise プラグインへのアクセス許可の管理](upgrade-to-enterprise-plugins.md)」を参照してください。  
さらに、バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインをインストール必要がある可能性があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

## 機能
<a name="features-1"></a>
+  クエリ 
  +  統計 API クエリ 
  +  テーブル API クエリ 
    +  インシデント、変更、その他のテーブル 
+  アラート 
+  注釈 (ベータ版機能) 
+  テンプレート変数 

## 設定
<a name="configuration-2"></a>

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

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

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

 ServiceNow URL を入力します。

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

### ダッシュボードの例
<a name="example-dashboards"></a>

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

## 使用方法
<a name="usage-2"></a>

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

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

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

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

### TableAPI クエリ
<a name="tableapi-queries"></a>

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

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

#### [表示]
<a name="show"></a>

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

#### 値の表示
<a name="display-values"></a>

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

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

 [ServiceNow API ドキュメント](https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/c_TableAPI)によると、これによりパフォーマンスに悪影響が及ぶ可能性があります。

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

#### フィルター (全般)
<a name="filters-general"></a>

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

 すべてのフィルターは *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 からフィールドに自動入力されます。

##### 日付フィルター
<a name="date-filters"></a>


|  時間フィールド  |  オペレータ  |  値  | 
| --- | --- | --- | 
|  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\$1\$1/api\$1doc?v=newyork&id=r\$1SGSYS-dateGenerate\$1S\$1S 

##### 演算子 (全般、文字列ベース)
<a name="operators-generalstring-based"></a>
+  先頭が一致 
+  Ends With 
+  Like 
+  Not Like 
+  Equals 
+  Not Equals 
+  Is Empty 

##### 演算子 (時間ベース)
<a name="operators-time-based"></a>
+  Today 
+  Not Today 
+  Before 
+  今日または以前 
+  After 
+  At or After 

##### [Values] (値)
<a name="values"></a>

 値の選択は選択したフィルターのタイプによって異なります。
+  ブールフィルターには、真/偽 オプションがあります 
+  テキストフィルターでは、任意の値を入力できます 
+  エスカレーション、優先度には固定された数値セットがあります 

#### 並べ替え
<a name="sort-by"></a>

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

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

#### 制限
<a name="limit"></a>

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

#### 時間フィールド
<a name="time-field"></a>

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

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

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

### AggregateAPI クエリ (統計)
<a name="aggregateapi-queries-stats"></a>

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

#### [表示]
<a name="show-1"></a>

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

#### フィルター (全般)
<a name="filters-general-1"></a>

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

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

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

#### 集計
<a name="aggregation"></a>

 メトリクスの集計には 4 つのタイプと「カウント」があります。
+  平均 
+  最小値 
+  最大値 
+  合計 
+  カウント - クエリによって返されるメトリクス「数」を返します。

##### グループ化の条件
<a name="group-by"></a>

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

### テンプレート作成
<a name="templating-2"></a>

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

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

#### クエリ変数
<a name="query-variable"></a>

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

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

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

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

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

#### クエリでの変数の使用
<a name="using-variables-in-queries"></a>

 2 つの構文があります。

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

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

## [アラート]
<a name="servicenow-alerting"></a>

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

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

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

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

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

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

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

### アラートのインシデントの書き込み
<a name="writing-incidents-for-alerts"></a>

 **ベータ版機能** 
+  ServiceNow データソース用の通知チャネルを設定します。

 これにより、設定したユーザーを使用してこのデータソースの ServiceNow インスタンスにインシデントを作成する、[Grafana 通知チャネル](https://grafana.com/docs/grafana/latest/alerting/notifications/)が設定されます。

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

## ‏注釈
<a name="annotations-1"></a>

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

 注釈クエリは標準クエリエディタと同じオプションをサポートしていますが、小さな違いがいくつかあります。
+  選択できる「表示」列は 1 つのみです。これは今後の改善で修正される可能性があります。
+  時間フィールドは必須です。

## よくある質問
<a name="faq-1"></a>

### ITSM ロールプラグインがない場合はどうしますか？
<a name="what-if-we-dont-have-the-itsm-roles-plugin"></a>

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

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

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

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

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

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

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

   1.  表示されているモーダルから、**[security\$1admin]** チェックボックスを選択します。

   1.  [OK] を選択してください。

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

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

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

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

   1.  [**Submit**] を選択してください。

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

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

   1.  personalize\$1dictionary 

   1.  personalize\$1choices 

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

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

   1.  sys\$1db\$1object テーブルのために ACL を作成します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   1.  [**Submit**] を選択してください。

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

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