Promtail 활용한 syslog 수집
1. 구성
1) 로깅 아키텍쳐
- Rsyslog:
- Cent OS 7의 default logger
- file 형태로
/var/log
에 log 출력 - promtail에 log 전달 (via tcp)
- Promtail
- syslog 수집
- tag 부여
- Loki
- Promtail 이 수집한 log 저장 및 indexing
- Grafana
- Loki에게 log를 쿼리.
- log 시각화
2) 구성 결과 - 정상 수집됨.
/var/log/messages
의 출력 결과물- Grafana에서 탐색한 화면
3) 기타
- rsyslog 사용하지 않는 OS의 경우, 현재와는 다른 설정이 필요함.
2. 후속 업무
1) syslog 수집 고도화
- log 종류에 따른 태그 부여
- messages
- maillog
- etc...
2) syslog 열람에 필요한 Grafana dashboard 생성
- Application Log와는 별도의 dashboard를 사용하는 편이 적절해 보임.
3. 상세 구성
1) rsyslog의 port 구성 확인
sudo semanage port -l | grep syslog
- 20514 포트로 Promtail 과 rsyslog 연결하기로 함.
1-2) (필요시) 방화벽 설정
- 서버 담당자 문의하여 tcp port 열기.
- ex) 1514 포트 사용할 경우
sudo semanage port -a -t syslogd_port_t -p tcp 1514 # TCP 1514 포트 열기 sudo semanage port -l | grep syslog # 포트 목록 확인.
2) rsyslog.conf 설정
- rsyslog 설정 파일 열기
vi /etc/rsyslog.conf
- 설정 하단부
fowarding rule
부분에 아래 내용 추가.
# foward everything to promtail
*.* action(type="omfwd" protocol="tcp" target="localhost" port="20514" Template="RSYSLOG_SyslogProtocol23Format" TCP_Framing="octet-counted" KeepAlive="on")
- 설정 작성 완료
- 설정 적용(rsyslog 재시작)
- rsyslog 정상 작동 확인
sudo systemctl restart rsyslog # rsyslog 재시작
sudo system status rsyslog # 상태 확인
3) promtail: docker-compose 설정
- 설정 파일 열기
vi /home/docker/XCAP_CLOUD/monitoring/extend-compose.yml
- ports 란에
20514
포트 추가
4) promtail: config 설정
- 설정 파일 열기
vi /home/docker/monitoring/promtail-config.yml
- Scrape configs 항목에 아래 내용 추가
- job_name: syslog
syslog:
listen_address: 0.0.0.0:20514
idle_timeout: 60s
label_structured_data: yes
labels:
job: "syslog"
test: "true"
relabel_configs:
- source_labels: ['__syslog_message_hostname']
target_label: 'host'
5) promtail 재시작
- xcap.env 가 포함된 디렉토리로 이동
cd /home/docker/XCAP_CLOUD/
- promtail 재시작
compose down promtail
compose ups promtail
6) 정상 작동 여부 확인
- Grafana > Exploer 접속
- Datasource 를
loki
로 설정 label browser
클릭job
에syslog
가 정상적으로 표시되는지 확인- 검색 결과 확인
'TIL > Monitoring(k8s, grafana)' 카테고리의 다른 글
[K8s, Grafana] Loki 데이터량 확인 및 유지기간 설정 방법 확인(2.6.1) (0) | 2024.12.10 |
---|---|
[RKE2] Too many open files 로 발생하는 crashLoopBackOff 에러 해결 (0) | 2024.12.01 |
[Prometheus] 적절한 scrape_interval을 찾아.. - Node exporter 코드 분석 (3) | 2024.11.06 |
[모니터링, k8s, Grafana, Prometheus] Prometheus 쿼리에 '$__rate_interval' 이 포함될 때 return 값이 없는 현상 (3) | 2024.10.31 |
워터컷 기록 및 정보 모음 (0) | 2024.10.31 |