thulium_drake.journald

AnsibleによるJournaldを使った集中ログ管理

この役割は、systemd-journaldを使用して中央のシステムでシステムログを収集する手段を提供します。

すべてのログは、varsに指定されたjournald_serverというシステムに保存されます。このホストで役割を実行すると、ジャーナルコレクタが構成されます。

使い方

  • 役割をインストールする(GalaxyまたはGitHubから直接)
  • デフォルトファイルをインベントリにコピーし(保存場所です)、空欄を入力します
  • マスタープレイブックに役割を追加
  • Ansibleを実行
  • ???
  • 利益!

ログの分析

収集されたログを検索したり読むためには、ローカルのジャーナルを読むために使用するのと同じjournalctlツールを使用できます。以下はいくつかの例です:

  • 受信しているすべてのジャーナルを監視
journalctl -f -D /log
  • 特定のユニットファイルからのすべてのジャーナルを監視(任意のマシンで)
journalctl -f -D /log -u my-thing.service

SSL

この役割をSSL有効で実行する場合、以下を用意してください:

  • systemd-journal-uploadユーザーがアクセスできるCA証明書(自己署名またはその他)
  • そのCAによって署名されたloghostシステム用のサーバー証明書、systemd-journal-remoteユーザーがアクセスできること

自己署名の「ソロ」証明書は_機能しません_!

Systemdのバージョンが234より高いシステムでこの役割を実行したい場合は、クライアントがjournaldサーバーに対して認証するためのクライアント証明書を準備する必要があります。この証明書はすべてのクライアント間で共有できます。

証明書をインストールするためのサンプルスクリプト(証明書を自分で用意):

- name: 'journaldクライアント証明書グループの確認'
  group:
    name: 'journald-cert'
    system: true
    state: 'present'

- name: 'journaldクライアント証明書ディレクトリの確認'
  file:
    path: '/etc/ssl/journald'
    state: 'directory'
    owner: 'root'
    group: 'journald-cert'
    mode: 0770

- name: '証明書ファイルの確認'
  copy:
    src: "{{ cert.src }}"
    dest: "{{ cert.dest }}"
    owner: 'root'
    group: 'journald-cert'
    mode: 0440
  loop:
    - src: "{{ journald_certificate_source }}"
      dest: '/etc/ssl/journald/client.crt'
    - src: "{{ journald_key_source }}"
      dest: '/etc/ssl/journald/client.key'
  loop_control:
    loop_var: 'cert'

この方法は、同じ環境のCentOS7およびCentOS8でテスト済みです。

バグ:CentOS7(またはsystemd 219の他のシステム)

このバージョンのsystemd-journal-remoteには、トランザクションの_受信_側に名前を付けたファイルにジャーナルが保存されるバグがあります。この役割が構成する受動的ソースの場合、すべてのジャーナルが単一のファイルに収集されることを意味します。

プロジェクトについて

Systemd Journald log forwarding & collection by Ansible

インストール
ansible-galaxy install thulium_drake.journald
ライセンス
gpl-3.0
ダウンロード
226
所有者