반응형
Daemonsets으로 로그 서비스(promtail)를 띄울때 어디에서 로그가 왔는지 추적하기 위해 hostname label을 사용했는데 해당 정보값이 pod의 이름으로 되어있어서 어디서 날라왔는지 확인하기가 어려웠다.
따라서, 위와같은 상황을 해결하고자 특정 노드에서 날라왔음을 표기해야하는데 아래와같은 방식으로 해결했다.
promtail의 Daemonsets yaml파일에는 아래와같이 env를 설정진행
- env.valueFrom.fieldRef.fieldPath를 사용하여 k8s 환경변수를 가져오게끔 설정
...(생략)
spec:
selector:
matchLabels:
app: promtail
template:
metadata:
labels:
app: promtail
spec:
containers:
- name: promtail
...(생략)
env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
추가로 promtail의 configmaps을 아래와같이 설정
...(생략)
scrape_configs:
- job_name: container
static_configs:
- targets:
- localhost
labels:
job: containers
__path__: /var/log/containers/*.log
host: ${HOSTNAME}
그렇다면 정상적으로 HOSTNAME이 수집되는걸 확인할수가 있다.
반응형
'Develop > DevOps' 카테고리의 다른 글
[Pulumi] 로컬 환경 세팅 또는 AWS 세팅 방법 (0) | 2024.07.02 |
---|---|
[DevOps] github action에서 author.email을 다른방식으로 얻는방법 (0) | 2024.06.24 |
[Kibana] Elasticsearch를 master, data node로 변경한 이후 kibana stack monitoring dashboard에 접근안될때 (0) | 2024.03.04 |
[ELK] elasticsearch ECK 배포시 기본 사용자 추가 방법 (0) | 2024.03.04 |
CoreDNS 관련 정리 (0) | 2024.03.02 |