おうちのクラスタを動かし始めてから久しいものの、監視周りがまだないという由々しき事態
先日fluentbitでログを取るようにはしたので今度はメトリクスをば見られるようにします。
CPU limits commitment が普通に100%超えてるのはご愛敬
(Limits設定していないpodが多分ある)
今回は kube-prometheus-stack を使ってデプロイ周り整えました。
ingress-nginxのメトリクスも取るためにscrape_config周りのvaluesだけ追加しています
helmfileでのデプロイをしています
helmfile.yaml
repositories:
- name: prometheus-community
url: https://prometheus-community.github.io/helm-charts
releases:
- name: kube-prometheus-stack
namespace: prometheus
chart: prometheus-community/kube-prometheus-stack
version: 43.1.1
values:
- values.yaml
values.yaml
grafana:
enabled: true
defaultDashboardsTimezone: Asia/Tokyo
adminPassword: changeme
ingress:
enabled: true
ingressClassName: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
hosts:
- grafana.example.com
path: /
tls:
- secretName: grafana-tls
hosts:
- grafana.example.com
prometheus:
prometheusSpec:
additionalScrapeConfigs:
- job_name: 'ingress-nginx-endpoints'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- ingress-nginx
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
- source_labels: [__meta_kubernetes_service_name]
regex: prometheus-server
action: drop
snmpも取れるようにいい感じに設定できたら物理マシンのハードウェア周りの情報も出せるようにしたいところ その辺もできたら アラート周りの設定してslackなりLINEなりで通知するようにしたい
(普段サーバーを車で1時間くらいのところにある空き家に置いてて何かあっても気付きにくいので)