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에 의해 서명된 로그호스트 시스템의 서버 인증서, systemd-journal-remote 사용자에게 접근 가능해야 합니다.
자체 서명된 '단독' 인증서는 작동하지 않습니다!
Systemd 버전이 234 이상인 시스템에서 이 역할을 실행하려는 경우, 클라이언트가 journald 서버에 인증하기 위한 클라이언트 인증서를 준비해야 합니다. 이 인증서는 모든 클라이언트가 공유할 수 있습니다.
인증서를 설치하는 샘플 스크립트 (인증서는 직접 제공):
- name: 'Ensure journald client certificate group'
group:
name: 'journald-cert'
system: true
state: 'present'
- name: 'Ensure journald client certificate directory'
file:
path: '/etc/ssl/journald'
state: 'directory'
owner: 'root'
group: 'journald-cert'
mode: 0770
- name: 'Ensure certificate files'
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 버전의 systemd-journal-remote는 저널이 수신 쪽의 이름으로 저장되는 버그가 있습니다. 이 역할이 구성하는 수동 소스의 경우, 모든 저널이 단일 파일에 수집됩니다.
Informazioni sul progetto
Systemd Journald log forwarding & collection by Ansible
Installa
ansible-galaxy install thulium_drake.journald
Licenza
gpl-3.0
Download
226
Proprietario