26 ElasticsearchおよびKibanaを使用した集中管理型のログ・ファイル監視

ElasticsearchとKibanaを使用している場合は、集中管理型のElasticearch/Kibanaコンソールにログ・ファイルを送信するようFilebeatを構成できます。データ送信元のホストごとにFilebeatを構成します。

この項の手順は、Kubernetesクラスタ外のホストを対象とするものです。たとえば、Web層やデータベース・ホストです。

これらのステップを実行する前に、次のことを確認してください:

  • 集中管理型のElasticsearchデプロイメントにアクセスできること。
  • これがElasticsearchおよびKibanaのKubernetesデプロイメントである場合は、NodePortサービス経由の外部アクセスを構成してあること。
  • ソース・ホストからKubernetes/ElasticsearchのNodePortポートへのネットワーク・アクセスがあること。
  • Elasticsearchの自己署名証明書を使用している場合は、証明書にアタッチされたKubernetes名をオリジン・ホストで解決できること。
    たとえば:
    10.0.0.1 k8workers.example.com  elasticsearch-es-http.elkns.es.local

    Kubernetes名の解決に失敗すると、証明書例外が発生します。

詳細は、https://www.elastic.coで、サプライヤの公式ドキュメントを参照してください。

この章の内容は次のとおりです。

Elasticsearch証明書のフィンガープリントの取得

Filebeatモジュールを構成するには、作成済のローカル・コピーからElasticsearch証明書のフィンガープリントを導出する必要があります。「Elasticsearch証明書のコピー」を参照してください。

次のコマンドを使用して、証明書のフィンガープリントを取得します:

openssl x509 -noout -fingerprint -sha256 -inform pem -in ~/workdir/ELK/ca.crt  | sed 's/://g
出力が次のように表示されます。
SHA256 Fingerprint=361A6E52F1936173795ABE36BB0F3A34185DD5A395BB9CECE0D8437EE16C2E44

Filebeatの取得およびインストール

curlコマンドで、Filebeatを取得してインストールする必要があります。

  1. 次のcurlコマンドを使用します:
    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-<ELK_VER>-x86_64.rpm 
    sudo rpm -vi filebeat-<ELK_VER>-x86_64.rpm
    たとえば:
    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.0-x86_64.rpm 
    sudo rpm -vi filebeat-8.11.0-x86_64.rpm

Filebeat構成の更新

Filebeatをインストールしたら、FilebeatがElasticsearchとKibanaのインスタンスの場所を認識できるよう構成する必要があります。

  1. Filebeatを構成するには、/etc/filebeat/filebeat.ymlファイルを編集します。
  2. ファイルのKibanaセクションに、次の構成情報を追加します:
    setup.kibana:
      host: "https://elasticsearch-es-http.elkns.es.local:<ELK_KIBANA_K8>"
      ssl.verification_mode: "none"

    Elasticsearchセクションに、次の情報を追加します

    output.elasticsearch:
      hosts: ["elasticsearch-es-http.elkns.es.local:<ELK_K8>"]
      protocol: "https"
      username: "elastic"
      password: "<ELK_PASSWORD>"
      ssl.ca_trusted_fingerprint: "361A6E52F1936173795ABE36BB0F3A34185DD5A395BB9CECE0D8437EE16C2E44"

    ノート:

    ここで指定したユーザーはelasticユーザーで、Kibanaダッシュボードを作成するためのアクセス権を確実に所有するために使用します。設定が完了したら、logstash_internalなど、より権限の少ないユーザーを使用できます。
    たとえば:
    setup.kibana:
      host: "https://elasticsearch-es-http.elkns.es.local:31800”
      ssl.verification_mode: "none"
    output.elasticsearch:
      hosts: ["elasticsearch-es-http.elkns.es.local:31920"]
      protocol: "https"
      username: "elastic"
      password: "mypassword"
      ssl.ca_trusted_fingerprint: "361A6E52F1936173795ABE36BB0F3A33485DD5A395BB9CECE0D8437EE16C2E44"
  3. ファイルを保存します。

ElasticsearchへのOHSログの送信

Oracle HTTP ServerのベースはApacheです。そのため、組込みのFilebeat Apacheモジュールを使用して、Oracle HTTP Serverのログ・ファイルを解釈できます。

Apacheモジュールの有効化および構成

Filebeat Apacheモジュールは、Oracle HTTP ServerログをElasticsearchサーバーに送信するために使用されます。Apacheモジュールを構成するには:
  1. 次のコマンドを使用してモジュールを有効化します:
    sudo filebeat modules enable apache
  2. Apache構成ファイルを編集して、Oracle HTTP Serverのログ・ファイルの場所を更新します。このファイルは、/etc/filebeat/modules.d/apache.ymlにあります。
    たとえば、構成ファイルは次のようになります:
    # Module: apache
    # Docs: https://www.elastic.co/guide/en/beats/filebeat/8.3/filebeat-module-apache.html
    
    - module: apache
      # Access logs
      access:
        enabled: true
    
        # Set custom paths for the log files. If left empty,
        # Filebeat will choose the paths depending on your OS.
        var.paths:
         - '/u02/private/oracle/config/domains/ohsDomain/servers/ohs1/logs/access*'
    
      # Error logs
      error:
        enabled: true
    
        # Set custom paths for the log files. If left empty,
        # Filebeat will choose the paths depending on your OS.
        var.paths:
         - '/u02/private/oracle/config/domains/ohsDomain/servers/ohs1/logs/error*'
  3. ファイルを保存します。

Elasticsearchへのデータベース監査ログの送信

Elasticsearchには、Oracle Databaseの監査ログをElasticsearchサーバーに送信するためのモジュールが事前に定義されています。

Oracleモジュールの有効化および構成

Filebeat Oracleモジュールは、Oracle Databaseの監査ログをElasticsearchサーバーに送信するために使用されます。Oracleモジュールを構成するには:
  1. 次のコマンドを使用してモジュールを有効化します:
    sudo filebeat modules enable oracle
  2. Oracle構成ファイルを編集して、Oracle Databaseの監査ファイルの場所を更新します。このファイルは、/etc/filebeat/modules.d/oracle.ymlにあります。
    たとえば、構成ファイルは次のようになります:
    # Module: oracle
    # Docs: https://www.elastic.co/guide/en/beats/filebeat/8.3/filebeat-module-oracle.html
    
    - module: oracle
      database_audit:
        enabled: true
    
        # Set which input to use between syslog or file (default).
        #var.input: file
    
        # Set paths for the log files when file input is used.
        # Should only be used together with file input
        var.paths: ["/u01/app/oracle/admin/iamdb1*/adump/*.aud"] 
  3. ファイルを保存します。

Filebeatの設定および起動

Filebeatの設定時に、コマンドがエラーなしで成功することを確認します。エラーが発生した場合は、エラーを解決してから続行してください。

  1. 次のコマンドを使用して、Filebeatを設定します:
    sudo filebeat setup

    構成を検証し、Kibanaダッシュボードがロードされていることを確認したら、ユーザーとパスワードは、必要に応じて、より権限の少ないユーザーに変更できます。

  2. 次のコマンドを使用して、Filebeatを起動します:
    sudo service filebeat start

    これで、ログ・ファイルがElasticsearchに送信されます。