集群状态监控
路由:/managements/ColonyStatusMonitor
https://172.20.32.234:30206/dashboard/c/local/explorer/pod/microservices/osredm-dss-84fd4bdcfb-xqmwk#containers
admin/hnxjy123456789
Prometheus: http://172.20.32.234:32002/query
nacos:http://172.20.32.234:30002/nacos/#/configurationManagement?dataId=&group=&appName=&namespace=&pageSize=&pageNo= nacos/nacos
Skywalking:http://172.20.32.205:8080/General-Service/Services Portainer:http://172.20.32.205:9000/#!/home admin/123456789012 Nacos:http://172.20.32.234:30002/nacos/#/login nacos/nacos Sentinel: http://172.20.32.201:8858/#/dashboard/home sentinel/sentinel
集群状态
接口:/api/mon/dashboard/cluster/status
集群节点数量
可用数量: Prometheus上查询-sum(kube_node_info)
不可用数量: Prometheus上查询-sum(kube_node_spec_unschedulable)
服务器上查询节点:kubectl get nodes
目前234服务器上的节点是:osredm-master
CPU使用率
Prometheus上查询:(sum(kube_pod_container_resource_requests{resource="cpu"})/ sum(kube_node_status_allocatable{resource="cpu"}))*100
内存使用率
Prometheus上查询:(sum(kube_pod_container_resource_requests{resource="memory"}) / sum(kube_node_status_allocatable{resource="memory"}))*100
POD使用率
Prometheus上查询:(sum(kube_pod_info) / sum(kube_node_status_allocatable{resource="pods"}))*100
微服务Pod运行状态
接口:/api/mon/dashboard/cluster/status
一共有5种状态:
- 等待中(Pending):Pod已被Kubernetes系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待Pod被调度的时间和通过网络下载镜像的时间。
- 运行中(Running):Pod已经绑定到了某个节点,Pod下所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或者重启阶段。
- 运行已完成(Succeeded):Pod种所有容器都已成功结束,并且不会再重启。
- 运行失败(Failed):Pod种的所有容器都已终止,并且至少有一个容器因为失败终止。也就是说,容器以非0状态退出或者被系统终止,且未被设置为自动重启。
- 未知(Unknown):因为某些原因无法取得Pod状态,这种情况通常是因为与Pod所在主机通信失败。
Prometheus上查询:sum(kube_pod_status_phase{namespace=~"base-service|data|forgeplus|microservices|portal", phase="Running"}) by (phase)
目前我们用到的几个命名空间(namespace)如下:
- portal: 入口层
- base-service: 基础服务层
- data: 数据层
- forgeplus:应用层
- microservices: 应用层
相关命令参考:
- 获取命名空间列表:
kubectl get ns或kubectl get namespaces - 查看命名空间详情:
kubectl describe ns {命名空间名称} - 查看命名空间下的pod列表:
kubectl -n {命名空间名称} get pods - 查看pod的详细信息:
kubectl describe pod {pod名称} -n {命名空间名称} - 查询某个命令空间下的pod数量:
kubectl get pods -n {命名空间名称} --no-headers | wc -l - 查询某个命令空间下的指定状态的pod数量:
kubectl get pods -n {命名空间名称} --field-selector=status.phase={运行状态:Pending/Running/Failed/Succeeded/Unknown} --no-headers | wc -l - 查询某个命令空间下的不包含指定状态的pod数量:
kubectl get pods -n {命名空间名称} --field-selector=status.phase!={运行状态:Pending/Running/Failed/Succeeded/Unknown} --no-headers | wc -l - 查询多个命令空间下的pod数量:
kubectl get pods -A --no-headers | grep -E '^(forgeplus|data|microservices|portal|base-service)' | wc -l - 查询多个命令空间下的指定状态的pod数量:
kubectl get pods -A --no-headers | grep -E '^(forgeplus|data|microservices|portal|base-service)' | grep 'Running' | wc -l
集群请求流量
每秒请求率
接口:/api/mon/dashboard/cluster/qps
Prometheus上查询: sum(rate(nginx_http_response_time_seconds_count[10m]))
应用服务请求数量
接口:/api/mon/dashboard/cluster/applicationRequestCount
数据统计
集群最近24小时请求总数
Prometheus上查询:sum(increase(nginx_http_response_count_total[1d]))
集群最近24小时平均处理时间
Prometheus上查询:sum(rate(nginx_http_response_time_seconds_sum[1d]))*1000
集群最近24小时请求成功率
Prometheus上查询:(sum(nginx_http_response_count_total{status=~"2.*|3.*"})/sum(nginx_http_response_count_total))*100
集群最近24小时微服务重启次数
Prometheus上查询:sum(increase(kube_pod_container_status_restarts_total{namespace=~"base-service|data|forgeplus|microservices|portal"}[1d]))
POD运行状态
Prometheus上查询:sum(kube_pod_status_phase{namespace=~"base-service|data|forgeplus|microservices|portal", phase!="Unknown"}) by (phase)
应用最近24小时请求数
Prometheus上查询:sort_desc(round(sum(increase(nginx_http_response_count_total[1d])) by (server_port)))