TIL/Monitoring(k8s, grafana)

[모니터링, Loki, 로그] Promtail 활용한 syslog 수집

쓱쓱565 2024. 11. 26. 22:26

Promtail 활용한 syslog 수집

1. 구성

1) 로깅 아키텍쳐

직접 그린 Docker-monitoring 아키텍쳐 구성

 

  • 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 클릭 
  • jobsyslog 가 정상적으로 표시되는지 확인 
  • 검색 결과 확인