journald

Централизованный логгинг через Journald с помощью Ansible

Эта роль предоставляет возможность собирать системные журналы на центральной системе через systemd-journald.

Все логи сохраняются на системе, обозначенной как journald_server в переменных. Когда роль запускается на этом хосте, она настраивает сборщик журналов.

Использование

  • Установите роль (либо из Galaxy, либо напрямую с GitHub)
  • Скопируйте файл по умолчанию в ваш инвентарь (или куда вы их сохраняете) и заполните недостающую информацию
  • Добавьте роль в ваш главный плейбук
  • Запустите Ansible
  • ???
  • Прибыль!

Анализ логов

Поиск или чтение собранных логов можно выполнить с помощью той же утилиты journalctl, которую вы используете для чтения локальных журналов. Ниже приведены некоторые примеры:

  • Просмотр всех поступающих журналов
journalctl -f -D /log
  • Просмотр всех журналов из конкретного юнита (на любой машине)
journalctl -f -D /log -u my-thing.service

SSL

При запуске этой роли с включенным SSL убедитесь, что у вас есть следующее:

  • Сертификат CA (самоподписанный или другой), доступный для пользователя systemd-journal-upload
  • Сертификат сервера для системы loghost, подписанный этим CA, доступный для пользователя 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 содержит ошибку, из-за которой журналы сохраняются в файле, названном в честь приемной стороны транзакции. В случае с пассивными источниками, которые настраивает эта роль, это означает, что все журналы собираются в один файл.

О проекте

Systemd Journald log forwarding & collection by Ansible

Установить
ansible-galaxy install Thulium-Drake/ansible-role-journald
Лицензия
gpl-3.0
Загрузки
218
Владелец