k8s部署mysql-exporter,mongo-exporter,redis-exporter,zookeeper-exporter,kafka-exporter

k8s部署mysql-exporter,mongo-exporter,redis-exporter监控

命名空间创建

先建立一个命名空间: prometheus-exporter 用来存放本环境的所有exporter

kubectl create ns prometheus-exporter

mysql监控

如果需要监控多个mysql,可以用一下部分再建一个mysql-exporter

1 创建mysql-exporter用户

CREATE USER 'exporter'@'%' IDENTIFIED BY 'XXXXXXXX';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'%';
GRANT SELECT ON performance_schema.* TO 'exporter'@'%';

2 创建mysql-exporter

使用下面的yaml文件创建一个redis-exporter的Deployment‘

vi   01-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysqld-exporter
  namespace: prometheus-exporter
  labels:
    app: mysqld-exporter
spec:
  selector:
    matchLabels:
      app: mysqld-exporter
  template:
    metadata:
      labels:
        app: mysqld-exporter
    spec:
      containers:
      - name: mysqld-exporter
        image: prom/mysqld-exporter
        env:
        - name: DATA_SOURCE_NAME
          value: exporter:password@(mysql:3306)/  #数据库连接: 用户:密码@(主机:端口)
        ports:
        - containerPort: 9104
          name: http

创建资源

kubectl apply -f  01-deployment.yaml

此时mysql-exporter创建完成

3 创建mysql-exporter服务

使用下面的yaml文件创建redis-exporter服务

vi 02-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: mysqld-exporter
  name: mysqld-exporter
  namespace: prometheus-exporter
spec:
  type: NodePort
  ports:
  - name: http
    port: 9104
    nodePort: 30018
    targetPort: http
  selector:
    app: mysqld-exporter

创建资源

kubectl apply -f  02-service.yaml

此时mysql-exporter 服务创建完成

4 测试

访问

curl localhost:30018/metrics

返回如下
[外链图片转存失败,源站可能有防盗
链机制,建议将图片保失败,源站可能有防盗链机制,建议将图片保存下来直接上传存上传(imXrAhMgOazw-1626414896614)(../img/中间件监控/image-20210716112515025.p83)(../img/中间件监控/image-20210716112515025.png)]

redis监控

1 创建redis-exporter

使用下面的yaml文件创建一个redis-exporter的Deployment‘

vi   01-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-exporter
  namespace: prometheus-exporter
  labels:
    app: redis-exporter
spec:
  selector:
    matchLabels:
      app: redis-exporter
  template:
    metadata:
      labels:
        app: redis-exporter
    spec:
      containers:
      - name: redis-exporter
        image: oliver006/redis_exporter:latest
        args: ["-redis.addr", "redis://10.20.20.155:6379"]  #这里填写redis地址
        ports:
        - containerPort: 9121
          name: http

创建资源

kubectl apply -f  01-deployment.yaml

此时redis-exporter创建完成

在这里插入图片描述

2 创建redis-exporter服务

使用下面的yaml文件创建redis-exporter服务

vi 02-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: redis-exporter
  name: redis-exporter
  namespace: prometheus-exporter
spec:
  type: NodePort
  ports:
  - name: http
    port: 9121
    nodePort: 30019
    targetPort: http
  selector:
    app: redis-exporter

创建资源

kubectl apply -f  02-service.yaml

此时redis-exporter 服务创建完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qpjqETzA-1626414896620)(../img/中间件监控/image-20210716104555324.png)]

3 测试

访问

 curl localhost:30019/metrics

返回如下

在这里插入图片描述

mongo监控

1 创建mongodb-exporter

使用下面的yaml文件创建一个mongodb-exporter的Deployment‘

vi   01-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-exporter
  namespace: prometheus-exporter
  labels:
    app: mongodb-exporter
spec:
  selector:
    matchLabels:
      app: mongodb-exporter
  template:
    metadata:
      labels:
        app: mongodb-exporter
    spec:
      containers:
      - name: mongodb-exporter
        image: ssheehy/mongodb-exporter
        env:
        - name: MONGODB_URI
          value: mongodb://localhost:27017   #mongo地址
        ports:
        - containerPort: 9216
          name: http

创建资源

kubectl apply -f  01-deployment.yaml

此时mongodb-exporter创建完成

2 创建mongodb-exporter服务

使用下面的yaml文件创建mongodb-exporter服务

vi 02-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: mongodb-exporter
  name: mongodb-exporter
  namespace: prometheus-exporter
spec:
  type: NodePort
  ports:
  - name: http
    port: 9216
    nodePort: 30020
    targetPort: http
  selector:
    app: mongodb-exporter

创建资源

kubectl apply -f  02-service.yaml

此时mongodb-exporter 服务创建完成

3 测试

访问

 curl localhost:30020/metrics

返回如下

在这里插入图片描述

zookeeper监控

1 创建zookeeper-exporter

使用下面的yaml文件创建一个redis-exporter的Deployment‘

vi   01-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zookeeper-exporter
  namespace: prometheus-exporter
  labels:
    app: zookeeper-exporter
spec:
  selector:
    matchLabels:
      app: zookeeper-exporter
  template:
    metadata:
      labels:
        app: zookeeper-exporter
    spec:
      containers:
      - name: zookeeper-exporter
        image: josdotso/zookeeper-exporter
        args: ["-zookeeper", "10.20.20.155:30458"]  #这里填写zookeeper地址
        ports:
        - containerPort: 9141
          name: http

创建资源

kubectl apply -f  01-deployment.yaml

此时zookeeper-exporter创建完成

2 创建zookeeper-exporter服务

使用下面的yaml文件创建zookeeper-exporter服务

vi 02-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: zookeeper-exporter
  name: zookeeper-exporter
  namespace: prometheus-exporter
spec:
  type: NodePort
  ports:
  - name: http
    port: 9141
    nodePort: 30021
    targetPort: http
  selector:
    app: zookeeper-exporter

创建资源

kubectl apply -f  02-service.yaml

此时zookeeper-exporter 服务创建完成

3 测试

访问

 curl localhost:30021/metrics

kafka监控

1 创建kafka-exporter

使用下面的yaml文件创建一个redis-exporter的Deployment‘

vi   01-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-exporter
  namespace: prometheus-exporter
  labels:
    app: kafka-exporter
spec:
  selector:
    matchLabels:
      app: kafka-exporter
  template:
    metadata:
      labels:
        app: kafka-exporter
    spec:
      containers:
      - name: kafka-exporter
        image: danielqsj/kafka-exporter
        args: ["--kafka.server=kafka:9092"]  #这里填写kafka地址
        ports:
        - containerPort: 9308
          name: http

创建资源

kubectl apply -f  01-deployment.yaml

此时kafka-exporter创建完成

2 创建kafka-exporter服务

使用下面的yaml文件创建kafka-exporter服务

vi 02-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kafka-exporter
  name: kafka-exporter
  namespace: prometheus-exporter
spec:
  type: NodePort
  ports:
  - name: http
    port: 9308
    nodePort: 30022
    targetPort: http
  selector:
    app: kafka-exporter

创建资源

kubectl apply -f  02-service.yaml

此时kafka-exporter 服务创建完成

3 测试

访问

 curl localhost:30022/metrics

prometheus添加target

修改Prometheus配置文件

添加target

scrape_configs:
  - job_name: 'mysql'
    scrape_interval: 30s
    static_configs:
      - targets: ['10.20.20.153:30018']
  - job_name: 'redis'
    scrape_interval: 30s
    static_configs:
      - targets: ['10.20.20.153:30019']
  - job_name: 'mongodb'
    scrape_interval: 30s
    static_configs:
      - targets: ['10.20.20.153:30020']
  - job_name: 'zookeeper'
    scrape_interval: 30s
    static_configs:
      - targets: ['10.20.20.153:30021']
  - job_name: 'kafka'
    scrape_interval: 30s
    static_configs:
      - targets: ['10.20.20.153:30022']

重启Prometheus

访问Prometheus查看target

在这里插入图片描述

成功

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你想使用podman部署node-exporter,可以按照以下步骤进行操作: 1. 创建一个名为node-exporter的目录,用于存放node-exporter的配置文件和数据。使用以下命令创建: ``` mkdir node-exporter ``` 2. 创建一个名为node-exporter.service的systemd服务单元文件,用于启动node-exporter服务。使用以下命令创建: ``` sudo vi /etc/systemd/system/node-exporter.service ``` 将以下内容复制粘贴到文件中: ``` [Unit] Description=Node Exporter [Service] Restart=always ExecStartPre=podman rm node-exporter ExecStart=/usr/bin/podman run --name node-exporter --net=host --pid=host --privileged=true -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/rootfs:ro -v /etc/node-exporter:/etc/node-exporter:z quay.io/prometheus/node-exporter [Install] WantedBy=multi-user.target ``` 保存并退出文件。 3. 创建一个名为node-exporter的配置文件目录,用于存放node-exporter的配置文件。使用以下命令创建: ``` sudo mkdir /etc/node-exporter ``` 4. 创建一个名为node-exporter.yml的node-exporter配置文件,用于指定node-exporter的参数和监控对象。使用以下命令创建: ``` sudo vi /etc/node-exporter/node-exporter.yml ``` 将以下内容复制粘贴到文件中: ``` global: scrape_interval: 15s scrape_configs: - job_name: 'node' metrics_path: /metrics static_configs: - targets: ['localhost:9100'] ``` 保存并退出文件。 5. 重新加载systemd守护程序并启动node-exporter服务。使用以下命令执行: ``` sudo systemctl daemon-reload sudo systemctl enable node-exporter sudo systemctl start node-exporter ``` 6. 确认node-exporter服务已经成功启动。使用以下命令查看服务状态: ``` sudo systemctl status node-exporter ``` 如果服务状态显示为“active (running)”则表示服务已经启动成功。 希望以上步骤能够帮助你成功部署node-exporter服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值