solutionDrive.logstash

Ansible ロール: Logstash

ビルドステータス

このAnsibleロールは、RedHat/CentOSとDebian/UbuntuにLogstashをインストールします。

このロールはデフォルトでsyslog grokパターンをインストールします。追加のフィルターを追加したい場合は、logstash_configuration_fileslogstash_filter_files のドキュメントを確認してください。

例として、適切なgrokフィルターを持つ 13-myapp.conf というファイルを作成し、Logstashを再起動して使用を開始できます。自身のgrok regexをテストするには、Grokデバッガーを使用してください。

必要条件

他の方法も可能ですが、このロールはElasticsearchをバックエンドとしてログメッセージを保存するために作られています。

ロール変数

利用可能な変数は以下に示されており、デフォルト値も記載されています(defaults/main.ymlを参照):

logstash_listen_port_beats: 5044

Logstashがbeatsをリッスンするポートです。

logstash_version: 2.3

インストールするLogstashのデフォルトのメジャーバージョンです。

logstash_configuration_files:
  - 01-lumberjack-input.conf
  - 30-lumberjack-output.conf

logstash_filter_files:
  - 10-syslog.conf
  - 11-nginx.conf
  - 12-apache.conf
  - 14-solr.conf
  - 15-drupal.conf
  
logstash_elasticsearch_host: localhost

インストールする入力/出力(設定ファイル)およびフィルターファイルのリストです。デフォルトではlumberjackの入出力と変数フィルターファイルがインストールされます。独自の設定ファイルを指定する場合は、入力/出力ファイルを独自のtemplatesディレクトリに、フィルターを独自のfilesディレクトリに置いてください。そして、vars/main.ymlディレクトリで独自のリストを作成し、ラッパーロールのvars_filesに含めて、独自の設定でLogstashをデプロイします。以下の「例となるプレイブック」を参照してください。

logstash_elasticsearch_hosts:
  - http://localhost:9200

LogstashがElasticsearchにログを送信するホストです。

logstash_ssl_dir: /etc/pki/logstash
logstash_ssl_certificate_file: logstash-forwarder-example.crt
logstash_ssl_key_file: logstash-forwarder-example.key

Logstashがリモートホストで実行されているlogstash-forwarderからのリクエストを受け入れるためのSSL設定です。セキュリティノート: 本番環境または公開向け(例: テスト以外の)サーバーでは、独自のキー/証明書のペアを作成し、デフォルトのものを使用せずにそれを使用するべきです!キーと証明書ファイルを作成するには、以下のコマンドのようにOpenSSLを使用できます: openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt

自己署名証明書を使用する場合、filebeatとlogstashが正しく動作しないことがありますので、自署名証明書の証明書認証機関(CA)をサーバーに追加する必要があります。 詳細は: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

logstash_ssl_certificate_filelogstash_ssl_key_file には、ロールディレクトリに対する相対パスまたはファイルへの絶対パスを指定できます。

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

ローカルsyslogファイル(logstash_local_syslog_pathとして定義)用の設定をlogstashに追加するかどうかです。ローカルsyslogを異なる方法で監視している場合や、ローカルsyslogファイルを気にしない場合は、これをfalseに設定します。他のローカルログは、/etc/logstash/conf.d内に置いた独自の設定ファイルによって追加できます。

logstash_enabled_on_boot: yes

システムの起動時にlogstashを実行したくない場合は、これをnoに設定します。

logstash_install_plugins:
  - logstash-input-beats

インストールするLogstashプラグインのリストです。

logstash_install_dir: /usr/share/logstash

インストールディレクトリへのパスです。以前は「/opt/logstash」がハードコーディングされていましたが、現在のデフォルトは「/usr/share/logstash」です。

その他の注意事項

logstashプロセスのいずれかから高いCPU使用率が見られる場合、Logstashを他のアプリケーションと一緒に使い、Ubuntuのようなプラットフォームでポート80で動作させていると、logstash-webプロセスがポート80での起動を試みてループにはまっている可能性があります。これは、/etc/init/logstash-web.confrestartフラグがあるためです。

この問題を避けるには、その行を変更してrespawn文にlimitを追加するか、プレイブックでlogstash-webサービスをenabled=noに設定してください。例えば:

- name: logstash-webプロセスが停止し無効であることを確認する。
  service: name=logstash-web state=stopped enabled=no

例となるプレイブック

- hosts: search
  vars_files:
    - vars/main.yml

  roles:
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

ライセンス

MIT / BSD

作者情報

このロールは2014年にJeff Geerlingによって作成されました。彼はAnsible for DevOpsの著者です。

プロジェクトについて

Logstash for Linux.

インストール
ansible-galaxy install solutionDrive.logstash
ライセンス
mit
ダウンロード
497