正确姿势启动metricbeat

metricbeat.modules:
- module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: ['.*']cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: "metricbeat"
setup.template.fields: "fields.yml"
setup.template.overwrite: true
setup.template.settings:index.number_of_shards: 1index.number_of_replicas: 1setup.kibana.host: "192.168.x.x:5601"
setup.dashboards.enabled: true
./metricbeat -e -c metricbeat.yml -d "publish"

metricbeat的Kubernetes插件

metricbeat.modules:
# Node metrics, from kubelet:
- module: kubernetesmetricsets:- node- system- pod- container- volumeperiod: 10shosts: ["192.168.x.132:10255","192.168.x.133:10255"]# State metrics from kube-state-metrics service:  #这部分需要kube-state-metrics支撑(Nodes/deploy个数),因此集群里需要安装kube-state-metrics组件.默认情况下这里没有的话图中上半部分没有数据
- module: kubernetesenabled: false  ## 这里一定要是truemetricsets:- state_node- state_deployment- state_replicaset- state_pod- state_containerperiod: 10shosts: ["192.168.x.x:8080"]# Kubernetes events
- module: kubernetesenabled: falsemetricsets:- eventoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]

既然需要kube-state-metrics了,那就研究下吧.

监控思路

  • vm思路:遵从大道至简的原则

  • 容器监控思路:
    pod的:
    top cpu
    top mem

  • 别人家的监控-只能流口水了

kube-state-metrics提供监控k8s集群的metric

kube-state-metrics本质上是提供了k8s集群的metric
部署参考:
https://github.com/kubernetes/kube-state-metrics

克隆代码: create这几个即可

访问:

报错解决:
kubectl -n kube-system logs -f kube-state-metrics-215312065-1vzg2 -c kube-state-metrics
时候发现一些api错误

解决: 给apiserver启动添加这个参数: 它github上有说

--runtime-config=batch/v2alpha1=true

即目前完整的apiserver参数如下

 kube-apiserver     --service-cluster-ip-range=10.254.0.0/16     --etcd-servers=http://127.0.0.1:2379     --insecure-bind-address=0.0.0.0     --admission-control=ServiceAccount     --service-account-key-file=/root/ssl/ca.key --client-ca-file=/root/ssl/ca.crt    --tls-cert-file=/root/ssl/server.crt --tls-private-key-file=/root/ssl/server.key --allow-privileged=true --runtime-config=batch/v2alpha1=true --v=2

k8s插件监控集群效果图

vm监控效果图

贴上kube-metric的yaml

参考: https://github.com/kubernetes/kube-state-metrics

修改点:

  • deploy的api版本
  • svc为nodeport模式

  • 镜像拉取
docker pull lanny/gcr.io_google_containers_kube-state-metrics_v1.1.0
dokcer pull lanny/gcr.io_google_containers_addon-resizer_1.0
docker tag lanny/gcr.io_google_containers_kube-state-metrics_v1.1.0 gcr.io/google_containers/kube-state-metrics:v1.1.0
docker tag lanny/gcr.io_google_containers_addon-resizer_1.0 gcr.io/google_containers/addon-resizer:1.0 
$ cat kube-state-metrics-deployment.yaml
apiVersion: apps/v1beta1 # for versions before 1.8.0 use apps/v1beta1  ## 这里默认是v1beat1,我用的是1.7.8,因此apiVersion: apps/v1beta2是不适用的.
kind: Deployment
metadata:name: kube-state-metricsnamespace: kube-system
spec:selector:matchLabels:k8s-app: kube-state-metricsreplicas: 1template:metadata:labels:k8s-app: kube-state-metricsspec:serviceAccountName: kube-state-metricscontainers:- name: kube-state-metricsimage: quay.io/coreos/kube-state-metrics:v1.1.0ports:- name: http-metricscontainerPort: 8080readinessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 5timeoutSeconds: 5- name: addon-resizerimage: gcr.io/google_containers/addon-resizer:1.0resources:limits:cpu: 100mmemory: 30Mirequests:cpu: 100mmemory: 30Mienv:- name: MY_POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: MY_POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacecommand:- /pod_nanny- --container=kube-state-metrics- --cpu=100m- --extra-cpu=1m- --memory=100Mi- --extra-memory=2Mi- --threshold=5- --deployment=kube-state-metrics
$ cat kube-state-metrics-service.yaml
apiVersion: v1
kind: Service
metadata:name: kube-state-metricsnamespace: kube-systemlabels:k8s-app: kube-state-metricsannotations:prometheus.io/scrape: 'true'
spec:type: NodePort ## 这里需要改下,外界通过nodeport方式访问metric apiports:- name: http-metricsport: 8080targetPort: http-metricsprotocol: TCPselector:k8s-app: kube-state-metrics
$ cat kube-state-metrics-service-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: kube-state-metricsnamespace: kube-system

转载于:https://www.cnblogs.com/iiiiher/p/7999761.html

[k8s]metricbeat的kubernetes模块kube-metric模块相关推荐

  1. k8s实践(6)--Kubernetes安全:API Server访问控制

    Kubernetes安全 安全永远是一个重大的话题,特别是云计算平台,更需要设计出一套完善的安全方案,以应对复杂的场景. Kubernetes主要使用Docker作为应用承载环境,Kubernetes ...

  2. K8s命令篇-Kubernetes工作实用命令集结号

    K8s命令篇-Kubernetes工作实用命令集结号 1.kubectl命令概述 kubectl作为客户端CLI工具,可以让用户通过命令行对Kubernetes集 群进行操作.在实际工作中熟练的使用这 ...

  3. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  4. mysql七个模块_mysql(pymysql模块的使用,视图,触发器)

    本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetchall 一.pymysql的下载和使 ...

  5. php模块介绍,Python模块介绍

    有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt这个函数,必须用语句"#include"引入math.h这个头文件,否则是无法正常进行调用的.那么在Python中,如果要 ...

  6. SAP PM 入门系列14 – PM模块与其它模块的集成

    SAP PM 入门系列14 – PM模块与其它模块的集成 SAP PM与其他模块(如物料管理,生产计划,人事管理以及销售和分销)都有高度紧密的集成.以下是使用Plant Maintenance进行集成 ...

  7. url模块和querystring模块

    url模块 我们可以使用.parse方法来将一个URL字符串转换为URL对象,示例如下. 1. URL各部分说明 var url = require('url'); //加载url模块 url.par ...

  8. Python的StringIO模块和cStringIO模块

    1.StringIO模块 StringIO用于像文件一样对字符串缓冲区或者叫做内存文件进行读写. f = StringIO()      # ready for writing f = StringI ...

  9. ACS712模块 ACS712ELCTR-05A电流传感器模块

    简 介: 测试了基于HALL原理的电流传感器ACS712,验证了它的基本功能,测试了这款5A容量的电流传感器的实际测量电流的范围.实际上比它的标称值大了一倍多. 关键词: HALL,霍尔,ACS712 ...

最新文章

  1. Mysql创建数据库用户
  2. SQL2K数据库开发八之表操作创建主键
  3. c++判断二个数是否为相反的符号算法实现(附完整源码)
  4. css知识笔记(二)——盒子模型
  5. 在QML应用中实现threading多任务
  6. PHP MySQL Functions (PDO_MYSQL)
  7. linux主机中util啥意思,util-linux是什么软件
  8. python统计数据分析基础教程_Python数据分析基础教程:NumPy学习指南(第2版)
  9. java栈和队列实现删除,数据结构学习--Java栈和队列
  10. python 调用C语言DLL的方法
  11. Linux文件系统的正确挂载方式
  12. 寻找黑匣子——程序行为记录与跟踪
  13. 11408考研复习规划
  14. AutoCAD Electrical 2020 安装后无激活界面
  15. 7.20-7.26 字节推荐算法(DATA-EDU)5道面试题分享
  16. WinForm下多层架构的实现
  17. html怎么使两张照片重叠,怎样把两张图片叠加在一起?
  18. java list获取某个字段
  19. 计算机网络原理第七版word,计算机网络原理简答题
  20. [转] 大型ORACLE数据库优化设计方案

热门文章

  1. mysql有没有num_mysql_num_rows()函数
  2. 前端:收集前端开发者手边必备的11款神器
  3. 牛逼的程序员,都长什么样?
  4. 程序员的噩梦,你遇到过哪几条?
  5. MongoDB高可用集群搭建
  6. 查询CPU占用高的SQL语句的解决方案
  7. 数字图像处理应用matlab,数字图像处理与应用(MATLAB版)
  8. ux和ui_如何为您的UX / UI设计选择正确的原型制作工具
  9. 50行 koa-compose,面试常考的中间件原理原来这么简单?
  10. 前端,你要知道的SEO知识