k8s 및 인프라/prometheus 4

prometheus operator- alertmanagerConfig

prometheus operator에서의 alertmanager 구성 alertmanager는 이 alertmanager configuration파일에 따라 구동된다. kubernetes의 prometheus operator에서 alertmanager를 구동하기 위해 alertmanager configuration을 제공하는 법은 아래와 같이 2가지방식이 있다. 1.alertmanager configuration파일을 secret을 통해 관리 2.AlertmanagerConfig라는 custom resource를 생성하고 Alertmanager 리소스(역시 custom resource)가 참조하도록 설정 *alertmanagerConfig 리소스 예시 apiVersion: monitoring.coreos..

prometheus operator

https://prometheus-operator.dev/docs/operator/high-availability/ High Availability High Availability is a must for the monitoring infrastructure. prometheus-operator.dev HA prometheus는 기본적으로 고가용성을 제공하지않는다. 고가용성을 이루기위해서는 thanos를 함께 사용해야한다. prometheus instance를 여러개 (kubernetis에서는 replica)로 구성시 각 prometheus는 독립적으로 metric을 수집하고 독립적으로 alert 룰을 평가한다. 이때 각 pod(instance)별로 수집시간이 조금씩 다를수있으며 완전히 동일한 metri..

grafana metric 수집이슈

grafana exporter 및 servicemonitor 셋업을 하고 prometheus에 잘수집되는지 확인해보았더니 다음과같은 에러가 났다. x509: certificate signed by unknown authority for prometheus Hi, 사실 이 에러자체는 prometheus에 tls insecure설정을 함으로써 회피가 가능하나. 나는 그것외에도 특이한점을 발견했다. endpoint는 pod ip:pod port/metrics 로 되어있는데 ERROR로그에는 Get :/metrics로 redirect되어있는것이다. 이로인해 발생한 에러였고, 이 원인을 먼저확인해야했다. k8s서버에서 curl pod ip:pod port를 날리면 아래와 같이 redirect 경로를 return해..

prometheus operator

prometheus의 단점은 polling방식의 수집으로 인해서, 새로운 exporter가 추가될 경우, prometheus서버의 config 또는 configmap의 해당 exporter수집경로를 등록하고, prometheus를 재시작해야한다는점이다. prometheus operator를 통해서 해결할수있다. 기존에는 app -> exporter -> prometehus서버 순으로 수집된다면, app->exporter->servicemonitor->prometheus 서버로 수집된다. 조금더 보면 servicemonitor는 k8s CRD 리소스로 샘플 매니페스트는 다음과같다. apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: na..