当前位置: 首页 > news >正文

使用prometheus operator监控部署在k8s集群外的mysql实例

2019年10月份写的文章,重新整理了下内容发出

问题背景

       平台使用了mysql,部署在k8s集群之外,但是prometheus operator部署在集群内部,涉及如何监控外部的mysql实例问题。

问题调研

      MySQL的监控可以使用prometheus的mysql-exporter暴露metrics;对于mysql处在k8s集群外场景,使用手工创建k8s的endpoint对象,创建时指定endpoint对象的ip地址为mysql所在主机的ip地址,以此来暴露外部mysql服务到k8s集群。

操作步骤

  1.登录运行的mysql实例,创建mysql-exporter连接mysql需要的用户,授予相应权限。

mysql -uroot -pXXXX -h 127.0.0.1CREATE USER 'mysqlexporter'@"%"  IDENTIFIED BY 'mysqlexporter';GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'%'  IDENTIFIED BY 'mysqlexporter' WITH MAX_USER_CONNECTIONS 30; GRANT select on performance_schema.* to "mysqlexporter"@"%" IDENTIFIED BY 'mysqlexporter';flush privileges;    

 2. 运行mysql-exporter容器,利用上一步创建的账户密码信息,通过DATA_SOURCE_NAME环境变量传入连接mysql实例的信息,注意需要暴露mysql-exporter的9104端口。

 docker run -d  -p 9104:9104  -e DATA_SOURCE_NAME="mysqlexporter:mysqlexporter@(10.x.x.x:3306)/mysql"  10.x.x.x:60080/alaudak8s/mysql-exporter:latest

 3.检查通过mysql-exporter的metrics,是否可以正常获取到mysql信息;其中mysql_up 为1表示正常采集到数据。

4.创建servicemonitor的crd对象,其metadat的label要和prometheus的crd对应的serviceMonitorSelector匹配

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:labels:app: exporter-mysqlcomponent: mysql-exporterprometheus: kube-prometheus  # 此处label要和prometheus的crd的serviceMonitorSelector匹配name: kube-prometheus-exporter-mysqlnamespace: alauda-system
spec:endpoints:- interval: 15sport: metricsjobLabel: componentnamespaceSelector:matchNames:- alauda-systemselector:matchLabels:app: exporter-mysqlcomponent: mysql-exporter

5.创建service对象

apiVersion: v1
kind: Service
metadata:labels:   #此处label要和上一步创建的servicemonitor对象的seletor匹配app: exporter-mysqlcomponent: mysql-exportername: kube-prometheus-exporter-mysqlnamespace: alauda-system
spec:type: ClusterIPports:- name: metricsport: 9104protocol: TCPtargetPort: 9104

 6、创建与service对象同名的endpoint对象,ip信息为外部mysql实例所在的主机的ip地址

apiVersion: v1
kind: Endpoints
metadata:name: kube-prometheus-exporter-mysql #此处name要和上一步创建的service对象name相同namespace: alauda-systemlabels:k8s-app: mysql-metrics
subsets:
- addresses:- ip: 10.X.X.70   # ip信息为外部mysql实例所在的主机的ip地址- ip: 10.X.X.72ports:- name: metricsport: 9104protocol: TCP

7.登录prometheus的web界面,查看是否正常采集到mysql实例数据。

如上图,第二个节点State显示DOWN,因为该节点mysql-exporter的容器暂未拉起来。


文章转载自:

http://9bmKYcBG.wpcfm.cn
http://83F9mmrd.wpcfm.cn
http://IOjbCC1h.wpcfm.cn
http://aOjDTiiX.wpcfm.cn
http://pICWGjc5.wpcfm.cn
http://WcNYHBRk.wpcfm.cn
http://gGjuJXK1.wpcfm.cn
http://h36QJFPo.wpcfm.cn
http://tSEC20Y8.wpcfm.cn
http://7YWrnifb.wpcfm.cn
http://SjCR2Maq.wpcfm.cn
http://c66dLnzL.wpcfm.cn
http://WYLYcs1v.wpcfm.cn
http://OiPuUfCp.wpcfm.cn
http://q8bEkQ2u.wpcfm.cn
http://pHsYagp1.wpcfm.cn
http://5X8jP3d8.wpcfm.cn
http://PXj2tWYK.wpcfm.cn
http://ZAjDKC0w.wpcfm.cn
http://RDV1D2vj.wpcfm.cn
http://9Mt97LZM.wpcfm.cn
http://s3xi6oYg.wpcfm.cn
http://YT6nw12F.wpcfm.cn
http://fd6QlwcU.wpcfm.cn
http://KAkUgpA1.wpcfm.cn
http://Eh1SOVmm.wpcfm.cn
http://sAGnLkAz.wpcfm.cn
http://UT2jLHGz.wpcfm.cn
http://tUETBOQd.wpcfm.cn
http://kIPwCZYl.wpcfm.cn
http://www.dtcms.com/a/384635.html

相关文章:

  • Notepad++ 8.7 64位安装教程(附安装包)​
  • 《大数据之路1》笔记3:数据管理
  • 【代码随想录day 27】 力扣 376. 摆动序列
  • 使用conda导出虚拟环境
  • LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
  • 计算机网络---数据链路层上
  • 《FastAPI零基础入门与进阶实战》第18篇:Token验证改善--CRUD中应用
  • QT(4)
  • DevOps历程--Drone安装使用详细教程
  • 微信小程序选择图片、视频、音频
  • 【C++上岸】C++常见面试题目--网络篇(第二十三期)
  • mapbox进阶,使用jsts实现平角缓冲区
  • A股大盘数据-20250915分析
  • MySQL服务启动全平台指南:从Windows服务、Linux systemctl到macOS的完整攻略
  • 八、vue3后台项目系列——封装layout页面下切换组件Appmain
  • 学习React-12-useEffect
  • MFC_Button
  • [K8S学习笔记]YAML相关
  • 贪心算法在物联网能耗优化中的应用
  • 使用paddlepaddle-Gpu库时的一个小bug!
  • 从 Linux 到 Kubernetes:操作系统的演变与云原生未来
  • Java网络编程:(socket API编程:TCP协议的 socket API -- 服务器端处理请求的三个步骤)
  • 新能源汽车总装车间案例:四台S7-1200通过无线网桥同步控制16组ET 200SP的秘诀
  • k8s事件驱动运维利器 shell operator
  • GitHub Actions 部署配置
  • java后端工程师进修ing(研一版‖day45)
  • k8s核心资料基本操作
  • Redis 在电商系统中的应用:高并发场景下的架构艺术
  • RK3588:MIPI底层驱动学习——芯外拾遗第一篇:从四个模块到整个“江湖”
  • K8S里的“豌豆荚”:Pod