k8s dashboard_K8s--08 prometheus监控

prometheus监控

4837b4d09943eb2d1e242ca0e4323ec8.png
特别快,适合监控容器Prometheus server 历史数据存储用pull形式收集数据metrics监控指标exporters 就像是zabbix的客户端promql 普罗米修斯自己的查询语言web UI 自己的webUI很简陋service discovery 自动发现,容器的添加,发现哪些pod有变化,就不用写一个pod,写一个监控项aletmanager报警组件
1.官网地址https://github.com/prometheus/prometheus2.监控k8s需要的组件使用metric-server收集数据给k8s集群内使用,如kubectl,hpa,scheduler等使用prometheus-operator部署prometheus,存储监控数据使用kube-state-metrics收集k8s集群内资源对象数据使用node_exporter收集集群中各节点的数据使用prometheus收集apiserver,scheduler,controller-manager,kubelet组件数据使用alertmanager实现监控报警使用grafana实现数据可视化metrics-server 主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标。kube-state-metrics 主要关注的是业务相关的一些元数据,比如 Deployment、Pod、副本状态等3.安装部署prometheus###导入镜像docker load < prom-prometheusv2_2_1.tar ###创建命名空间kubectl create namespace prom###创建资源cd prometheuskubectl create -f ./ ###检查资源kubectl -n prom get all -o wideweb浏览器查看http://10.0.0.11:30090/targets4.安装部署metrics-server###导入镜像docker load < k8s-gcr-io-addon-resizer1_8_6.tardocker load < k8s-gcr-io-metrics-server-amd64v0-3-6.tar###创建资源kubectl create -f ./###检查kubectl top nodekubectl top pod5.安装node-exporterv###导入镜像docker load < prom-node-exporterv0_15_2.tar###创建资源kubectl create -f ./###查看资源kubectl -n prom get pod -o widekubectl -n prom get svc###浏览器查看http://10.0.0.12:9100/metricshttp://10.0.0.13:9100/metrics5.安装kube-state-metrics###导入镜像docker load < gcr-io-google_containers-kube-state-metrics-amd64v1-3-1.tar###创建资源kubectl create -f ./###查看kubectl -n prom get podkubectl -n prom get svccurl 10.1.232.109:8080/metrics6.安装grafna和k8s-prometheus-adapter###导入镜像docker load <  directxman12-k8s-prometheus-adapter-amd64-latest.tar docker load <  k8s-gcr-io-heapster-grafana-amd64v5_0_4.tar###修改grafana资源配置清单  1 apiVersion: apps/v1  2 kind: Deployment  3 metadata:  4   name: monitoring-grafana  5   namespace: prom  6 spec:  7   selector:  8     matchLabels:  9       k8s-app: grafana 10   replicas: 1 11   template:###创建资源cd k8s-prometheus-adapterkubectl create -f ./###检查创建的资源kubectl -n prom get pod -o widekubectl -n prom get svc###浏览器查看http://10.0.0.11:32725###导入dashboardhttps://grafana.com/grafana/dashboards/10000x.prometheus查询语句sum by (name) (rate (container_cpu_usage_seconds_total{image!=""}[1m]))container_cpu_usage_seconds_total{name =~ "^k8s_POD.*",namespace="default"}正则表达式:=~  模糊匹配==   完全匹配!=   不匹配!~   不匹配正则表达式查询语句:sum (container_memory_working_set_bytes{image!="",name=~"^k8s_.*",kubernetes_io_hostname=~".*",namespace="default"}) by (pod)翻译:sum (监控指标{字段1!="字段1配置的值",字段2!="字段2配置的值"}) by (分组字段名)添加namespace标签后grafana修改图标sum (container_memory_working_set_bytes{image!="",name=~"^k8s_.*",kubernetes_io_hostname=~"^$Node$",namespace=~"^$Namespace$"}) by (pod)

HPA资源自动扩容

https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/1.生成测试镜像###创建测试首页cat index.php <?php $x = 0.0001;  for ($i = 0; $i <= 1000000; $i++) {    $x += sqrt($x);  }  echo "OK!";?>###创建dockerfilecat dockerfile FROM php:5-apacheADD index.php /var/www/html/index.phpRUN chmod a+rx index.php###生成镜像docker build -t php:v1 .2.创建php-deployment资源cat >php-dp.yaml<php-hpa.yaml<

01grafana添加数据源

d67dda3452fd77b09d1b1e51cb2c7f0d.png

02prometheus查询语句

45a66ed56cd1821384f72e5ca8227bdd.png

03grafana修改后的图

387932dd6f5a388e967a9b3e5cae5a56.png

04grafana添加namespace标签

b09ce1ab22bcd7854152f91d977319db.png

05grafana添加namespace标签2

e2429bb871ed121e41528abe8c133e26.png

06最终效果图

34299f07173a9d49968f6c139719954f.png

07完整大图

1a58509a21fa60248c04dbfaf10c774d.png

dashboard图

966f2e7f9f79d71927ca747cd0ad7ca8.png

dashboard图2

aa3ea6a5677754f4a6b38da85d1eadb5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有以下几种方式可以在命令行中使用Prometheus监控Kubernetes: 1. 使用Prometheus的Kubernetes SD配置:可以在Prometheus的配置文件中设置Kubernetes SD配置,这样Prometheus会自动发现Kubernetes中的所有服务和Pod,并开始监控它们。下面是一个示例配置: ``` scrape_configs: - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) ``` 2. 使用kube-prometheus:kube-prometheus是一个为Kubernetes提供Prometheus监控的开源项目。它包含了一整套Prometheus和Grafana的配置文件和Dashboard,可以快速地搭建一个完整的监控系统。可以使用以下命令安装kube-prometheus: ``` git clone https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheus kubectl apply -f manifests/setup kubectl apply -f manifests/ ``` 3. 使用Prometheus Operator:Prometheus Operator是一个为Kubernetes提供Prometheus监控的开源项目。通过定义一些自定义资源对象,可以在Kubernetes集群中轻松地部署和管理Prometheus实例。可以使用以下命令安装Prometheus Operator: ``` kubectl create namespace monitoring helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install prometheus-operator prometheus-community/kube-prometheus-stack -n monitoring ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值