solutionDrive.logstash
Ansible ロール: Logstash
このAnsibleロールは、RedHat/CentOSとDebian/UbuntuにLogstashをインストールします。
このロールはデフォルトでsyslog grokパターンをインストールします。追加のフィルターを追加したい場合は、logstash_configuration_files
と logstash_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_file
と logstash_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.conf
にrestart
フラグがあるためです。
この問題を避けるには、その行を変更して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の著者です。
ansible-galaxy install solutionDrive.logstash