Openshift從3.9版本開始官方支持Prometheus和Grafana
從官方部署腳本 openshift-ansible 中的目錄playbooks下的列表 中可以看到相關部署腳本
openshift-prometheus
openshift-grafana
既然官方支持,部署安裝就十分簡單了。
部署安裝Prometheus
/etc/ansible/hosts添加配置
[OSEv3:vars]
openshift_hosted_prometheus_deploy=true
執行安裝
ansible-playbook playbooks/openshift-prometheus/config.yml
打開宿主機的9100端口(kubernetes-nodes-exporter)
ansible all -m shell -a 'iptables -A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 9100 -j ACCEPT; service iptables save'
完成
查看下資源狀態
prometheus會默認部署在新創建的project中:openshift-metrics
1個statefulset資源:prometheus
1個DaemonSet資源:prometheus-node-exporter
4個Service資源:alertmanager 、alerts、prometheus、prometheus-node-exporter
3個route資源:alertmanager、alerts、prometheus
3個ServiceAccount:prometheus、prometheus-node-exporter、prometheus-reader
部署安裝Grafana
注意,3.9-release分支下的grafana安裝腳本有問題,請使用最新master分支下的腳本進行安裝
檢查節點的label
oc get node -l node-role.kubernetes.io/infra=true
如果沒有node-role.kubernetes.io/infra=true標簽的Node節點的話,需要給Node配置標簽
oc label node nodename1 node-role.kubernetes.io/infra=true
/etc/ansible/hosts添加配置
[OSEv3:vars]
grafana_namespace=openshift-grafana
grafana_user=grafana
grafana_password=grafana
grafana_datasource_name="default"
grafana_prometheus_namespace="openshift-metrics"
grafana_prometheus_sa=prometheus
grafana_node_exporter=false
grafana_graph_granularity="2m"
執行安裝
ansible-playbook playbooks/openshift-grafana/config.yml
完成
查看下資源狀態
1個deployment:grafana
1個service: grafana
1個route: grafana
1個serviceaccount: grafana
1個configmap:grafana-config
最終效果圖
補充:
grafana admin密碼丟失,如何重置?
$ grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" admin
prometheus中配置內存使用率(node_memory_requests_total是我自己寫的exporter監控數據)
sum(node_memory_requests_total) by(node_name) / sum(label_replace(machine_memory_bytes, 'node_name', "$1", "instance", "(.*)" )) by (node_name)