thulium_drake.journald
通过 Ansible 实现集中日志记录
该角色提供了一种通过 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 签署的日志主机系统的服务器证书,供 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 上进行了测试。
BUG:CentOS7(或其他包含 systemd 219 的系统)
该版本的 systemd-journal-remote 中存在一个错误,导致日志保存在一个以事务的 接收 端命名的文件中。在该角色配置的被动源的情况下,这意味着所有日志都将收集在一个单独的文件中。
安装
ansible-galaxy install thulium_drake.journald
许可证
gpl-3.0
下载
226
拥有者