📌 Notice
본 블로깅은 아래의
24단계 실습으로 정복하는 쿠버네티스
책을 기준하여 정리하였습니다.출처 - https://wikibook.co.kr/kubepractice
CloudNetaStudy
그룹에서 스터디한 내용입니다.
책의 저자이신이정훈-Jerry
님과 함께 스터디 하고 있습니다. 🙏
Gasida
님과Jerry
님께 다시한번 🙇 감사드립니다.
📌 6주차 과제 수행 결과 입니다.
목표
: 책 367~372페이지 - 사용자 정의 prometheusrules 정책 설정 : 파일 시스템 사용률 80% 초과 시 시스템 경고 발생시키기 ⇒ 직접 실습 후 관련 스샷을 올려주세요
도서를 참고하여 아래 명령어로 yaml 파일을 생성합니다.
# 사용한 명령어
kubectl get prometheusrules.monitoring.coreos.com -n monitoring kube-prometheus-stack-node-exporter -o yaml > node-exproter-prom.yaml
# 내용 추가
- alert: NodeFilesystemAlmostOutOfSpace-20
annotations:
description: Filesystem on {{ $labels.device }} at {{ $labels.instance }}
has only {{ printf "%.2f" $value }}% available space left.
runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace
summary: Filesystem has less than 20% space left.
expr: |-
(
node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 20
and
node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0
)
for: 10m
labels:
severity: warning
# 수정한 내용을 적용 합니다.
kubectl apply -f node-exproter-prom.yaml
목표
: 책 386~389페이지 - LogQL 사용법 익히기 ⇒ 직접 실습 후 관련 스샷을 올려주세요
LogQL이란?
LogQL은 Loki의 쿼리 언어로 로그 데이터를 검색할 때 사용하는 언어입니다.
{job="kube-system/aws-ebs-csi-driver"} |= ``
쿼리를 이용하여 Explore
탭에서 로그를 확인합니다.
목표
: Awesome Prometheus alerts 를 참고해서 스터디에서 배우지 않은 Alert Rule 생성 및 적용 후 관련 스샷을 올려주세요
링크에서 중요한 지표로 확인하는 HostOutOfMemory
에 대해서 규칙을 생성하고 적용하였습니다.
쿠버네티스 명령어를 통해 현재 사용중인 규칙을 yaml 파일로 생성합니다.
k get prometheusrules.monitoring.coreos.com -n monitoring kube-prometheus-stack-node-exporter -o yaml > node-exporter-promrules.yaml
yaml 파일을 수정합니다
vi node-exporter-promrules.yaml
- alert: HostOutOfMemory
expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
for: 2m
labels:
severity: warning
annotations:
summary: Host out of memory (instance {{ $labels.instance }})
description: "Node memory is filling up (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
쿠버네티스 커맨드를 이용하여 수정한 내용을 반영합니다.
kubectl apply -f node-exporter-promrules.yaml
규칙 삽입 후 적용하면 아래와 같이 프로메테우스에서 추가된 규칙을 확인할 수 있습니다.