Documentation

9. Tower のロギングおよびアグリゲーション

ロギングは、Ansible Tower 3.1.0 で導入されたスタンドアロンの機能で、詳細にわたるログを複数のサードパーティーの外部ログアグリゲーションサービスに詳細ログを送信することができます。このデータフィードに接続されるサービスは、Tower の使用状況や技術的な傾向の見解を得るための便利な手段として機能します。このデータは、インフラストラクチャー内のイベントの分析、異常な点がないかの監視、サービス別のイベントの相関確認に使用することができます。Tower で最も便利なデータのタイプは、ジョブファクトデータ、ジョブイベント/ジョブラン、アクティビティーストリームデータ、ログメッセージです。これらのデータは、最小限のサービス固有の微調整をカスタムハンドラーに加えるか、インポートしたライブラリーを使用し、JSON 形式で HTTP 接続で送信されます。

9.1. ログアグリゲーターサービス

ログアグリゲーターサービスは、以下の監視またはデータ分析システムと連携します。

9.1.1. Splunk

Ansible Tower の Splunk ロギング統合では、Splunk HTTP Collector を使用します。SPLUNK ログアグリゲーターを設定する場合は、以下のように、HTTP Event Collector ホストに完全 URL を追加します。

https://yourtowerfqdn.com/api/v1/settings/logging

{
    "LOG_AGGREGATOR_HOST": "https://yoursplunk:8088/services/collector/event",
    "LOG_AGGREGATOR_PORT": null,
    "LOG_AGGREGATOR_TYPE": "splunk",
    "LOG_AGGREGATOR_USERNAME": "",
    "LOG_AGGREGATOR_PASSWORD": "$encrypted$",
    "LOG_AGGREGATOR_LOGGERS": [
        "awx",
        "activity_stream",
        "job_events",
        "system_tracking"
    ],
    "LOG_AGGREGATOR_INDIVIDUAL_FACTS": false,
    "LOG_AGGREGATOR_ENABLED": true,
    "LOG_AGGREGATOR_TOWER_UUID": ""
}

Splunk HTTP Event Collector はデフォルトで 8088 をリッスンし、受信要求を適切に処理するために完全 HEC イベント URL (ポートを使用) を提供する必要があります。この値は、以下の例に入力されます。

_images/logging-splunk-tower-example.png

HTTP Event Collector の設定方法は Splunk documentation を参照してください。

9.1.2. Loggly

Loggly の HTTP エンドポイント経由でのログの送信を設定するには、https://www.loggly.com/docs/http-endpoint/ を参照してください。Loggly は、http://logs-01.loggly.com/inputs/TOKEN/tag/http/ に記載の URL 規則を使用します。これは、以下の例の ログアグリゲーター フィールドに入力して紹介しています。

_images/logging-loggly-tower-example.png

9.1.3. Sumologic

Sumologic では、json ファイルに含まれる検索基準を作成します。json ファイルには、必要なデータを収集するのに使用するパラメーターが指定されています。

_images/logging_sumologic_main.png

9.1.4. Elastic stack (以前の ELK stack)

ログを使用する Elastic stack 経由で取得された、Kibana の Tower ログからの情報を視覚的に表示することができます。Ansible Tower は、logstash コネクターや、Elasticsearch (エラスティックサーチ) のデータモデルとの互換性を確保します。サンプルの設定と、ライブラリーまたは提示の例を使用して、コンテナーを設定すると、Elastic stack の用途が最初から最後までデモを確認することができます。

Tower は、logstash 設定を使用してログのソースを指定します。このテンプレートを値を入力します。

input {
       http {
        port => 8085
        user => logger_username
        password => "password"
       }
}

メッセージの内容を処理するために、設定ファイルに以下を追加します。

filter {
       json {
        source => "message"
       }
}

9.2. Tower でのロギングの設定

いずれかのアグリゲータータイプにロギングを設定する方法:

  1. 設定 (settings) メニュー画面から、Tower の設定 をクリックします。
  1. システム タブを選択します。
  2. サブカテゴリーのドロップダウンメニュー一覧から ロギング を選択します。
  3. 表示されたフィールドで設定可能なオプションを設定します。
  • 外部ログの有効化: 外部のログアグリゲーターにログを送信するには、切り替えボタンをクリックして ON にします。
  • ログアグリゲーター: ログを送信するホスト名または IP アドレスを入力します。
  • ログアグリゲーターポート: 必要な場合には、アグリゲーターポートを指定します。

注釈

接続タイプが HTTPS の場合は、URL にポート番号が付いたホスト名を入力します。そのため、再度ポートを入力する必要はありません。ただし、TCP や UDP 接続は、URL ではなく、ホスト名とポート番号の組み合わせで判断されるため、TCP/UDP 接続の場合は、指定のフィールドにポートを入力してください。URL がホストフィールド (ログアグリゲーター フィールド) に入力された場合には、実際のホスト名としてホスト名の部分が抽出されます。

  • ログアグリゲータータイプ: クリックして、ドロップダウンメニューからアグリゲーターサービスを選択します。
_images/configure-tower-system-logging-types.png
  • ログアグリゲーターユーザー名: 必要な場合には、ログアグリゲーターのユーザー名を入力します。
  • ログアグリゲーターパスワード/トークン: 必要な場合にはログアグリゲーターのパスワードを入力します。
  • ログアグリゲーターフォームにデータを送信するロガー: デフォルトでは、データ 4 種類すべてが事前投入されています。各データタイプに関する追加情報は、フィールドの横にあるヒント help アイコンをクリックします。必要がなくなればデータタイプを削除してください。
  • ログシステムによるファクトの個別トラッキング: オンに切り替えるか、デフォルトのままオフにしておくかなど、追加情報を確認するにはヒント help アイコンをクリックします。
  • ログアグリゲーターのプロトコル: ログアグリゲーターと通信する接続タイプ (プロトコル) を選択するにはこれをクリックします。今後表示されるオプションは、選択したオプションにより異なります。
  • TCP 接続のタイムアウト: 接続のタイムアウトを秒単位で指定します。このオプションは、HTTP と TCP ログアグリゲータープロトコルにのみ適用されます。
  • ログアグリゲーターレベルのしきい値: ログハンドラーがレポートする重大度レベルを選択します。
  • HTTPS 証明書の検証を有効化/無効化: デフォルトでは、HTTPS ログプロトコルに対する証明書の検証は有効です。接続の確立前に、外部ログアグリゲーターが送信した HTTPS 証明書をログハンドラーに検証させないようにするには、ボタンを OFF に切り替えます。
  1. 選択したログアグリゲーションの内容を確認します。以下は、Splunk 用に設定した一例です。
_images/configure-tower-system-logging-splunk-example.png
  1. 設定が正しく行われているかどうかを検証するには テスト をクリックします。これは、テストログメッセージを送信して、応答コードが OK であることを確認して、ロギングの設定を検証します。
  2. 完了したら、保存 をクリックして設定を適用するか、キャンセル をクリックして変更を破棄します。