geerlingguy.logstash

Ansibleロール: Logstash

CI

RedHat/CentOS、Debian/UbuntuにLogstashをインストールするAnsibleロールです。

このロールはデフォルトでsyslog用のgrokパターンをインストールします。追加のフィルターが必要な場合は、/etc/logstash/conf.d/ディレクトリ内に追加してください。例えば、適切なgrokフィルターを含む13-myapp.confという名前のファイルを作成し、Logstashを再起動して使用を開始できます。grokの正規表現はGrok Debuggerを使ってテストできます。

必要条件

他の方法も可能ですが、このロールはElasticsearchをバックエンドとして利用するように設計されています。

ロール変数

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

logstash_version: '7.x'

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

logstash_package: logstash

インストールする特定のパッケージ。プラットフォームとパッケージマネージャーの構文に従ってパッケージ名を変更することで、パッケージのバージョンを指定できます。

logstash_listen_port_beats: 5044

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

logstash_elasticsearch_hosts:
  - http://localhost:9200

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

logstash_dir: /usr/share/logstash

Logstashがインストールされているディレクトリ。

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

SSL証明書とキーのローカルパスで、logstash_ssl_dirにコピーされます。

自己署名証明書の生成に関しては、生成手順を参照してください。

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: true

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

logstash_install_plugins:
  - logstash-input-beats
  - logstash-filter-multiline

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

logstash_setup_default_config: true

このロールに付属するデフォルトの設定ファイル(files/filtersディレクトリ内)を追加したくない場合は、これをfalseに設定します。独自の設定ファイルは/etc/logstash/conf.dに追加できます。

自己署名証明書の生成

最大限のセキュリティのために、独自の有効な証明書とキーを使用し、プレイブック内のlogstash_ssl_*変数を更新して証明書を使用します。

自己署名証明書/キーのペアを生成するには、次のコマンドを使用できます:

$ openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -subj '/CN=example.com'

FilebeatとLogstashは自己署名証明書が正しく動作しない場合があります。そのため、サーバーに信頼の完全なチェーン(自己署名証明書の認証局を含む)を追加する必要があります。詳細は: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

新しいバージョンのFilebeatとLogstashはpkcs8形式の秘密鍵を必要とし、これは以前に生成した鍵を変換することによって生成できます。たとえば、以下のようにします:

openssl pkcs8 -in logstash.key -topk8 -nocrypt -out logstash.p8

その他の注意事項

logstashプロセスの1つから高いCPU使用率が見られる場合、Ubuntuのようなプラットフォームでポート80で別のアプリケーションを実行している場合、logstash-webプロセスがポート80での起動を試みてループに陥っている可能性があります。この問題を回避するためには、/etc/init/logstash-web.confのその行を変更してrespawnステートメントにlimitを追加するか、プレイブックでlogstash-webサービスをenabled=noに設定します。例えば:

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

例プレイブック

- hosts: search

  pre_tasks:
    - name: Debian/UbuntuでJava 8を使用する。
      set_fact:
        java_packages:
          - openjdk-8-jdk
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.java
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

ライセンス

MIT / BSD

著者情報

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

プロジェクトについて

Logstash for Linux.

インストール
ansible-galaxy install geerlingguy.logstash
ライセンス
mit
ダウンロード
247.7k
所有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns