Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控

这篇具有很好参考价值的文章主要介绍了Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:

192.168.1.144  Ubuntu系统已经部署好Prometheus监控部署教程请看本人前面的教程 

192.168.1.140  centos7系统已安装docker+docker-compose

1、Prometheus监控mongodb

1、在被监控端以docker-compose方式安装mongodb

mkdir /data/mangodb/ #创建mangodb的目录

cd /data/mangodb/ #进入目录下

2,写docker-compose.yaml文件

vim docker-compose.yaml

version: '3'
services:
  mango:
    image: mongo
    container_name: mongo
    command: [--auth]
    restart: always
    volumes:
      - /data/mongo/db:/data/db
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 123456

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

启动:

docker-compose up -d

查看:

docker ps

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

3、登陆mongodb 创建监控用户

docker exec -it mongo mongosh admin        #登陆mongodb

db.auth("root","123456")                              #用户登陆

> db.createUser({                                             #创建监控用户

> user: "exporter",

pwd: "password",

roles: [

{ role: "readAnyDatabase", db: "admin" },

{ role: "clusterMonitor", db: "admin" }

]

})

> db.auth("exporter","password")                            #返回1表示成功

> exit                                                                     #退出mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

4、docker-compose方式安装mongodb_exporter

mkdir /data/mongo/mongodb_exporter             #创建mongodb_exporter的安装目录

cd /data/mongo/mongodb_exporter                 #进入到安装目录下

vim docker-compose.yaml

version: '3.3'
services:
  mongodb_exporter:
    image: bitnami/mongodb-exporter
    container_name: mongodb_exporter
    restart: always
    environment:
      MONGODB_URI: "mongodb://exporter:password@192.168.1.140:27017/admin?ssl=false"
    command:
      - '--collect-all'
      - '--compatible-mode'
    ports:
      - "9216:9216"

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

启动:

docker-compose up -d

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

5、浏览器进行访问查看

在浏览器中输入mongodb-expoerter端的IP加9216端口进行访问

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

6、在Prometheus端添加配置

在Prometheus端打开prometheus.yml文件添加以下内容

vim prometheus/prometheus.yml

  - job_name: 'mongodb_exporter'
    static_configs:
      - targets: ['192.168.1.140:9216']
        labels:
          instance: docker服务器

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

保存退出后重新加载配置

curl -X POST http://localhost:9090/-/reload

7、在浏览器访问是否监控到mongodb

输入Prometheus端的IP加9090端口选择Status 然后选择 Targets 查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

8、mongodb触发器配置 (在Prometheus端配置)

因为之前我在Prometheus.yaml文件中加了一个触发器文件

所以在rules文件中添加一个mongodb的触发器文件即可

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

在Prometheus端创建一个mongodb的yml文件添加输入以下触发器内容

vim prometheus/rules/mongodb.yml

groups:
- name: PerconaMongodbExporter
  rules:
    - alert: MongodbDown
      expr: 'mongodb_up == 0'
      for: 0m
      labels:
        severity: critical
      annotations:
        summary: "MongoDB Down 容器:{{ $labels.instance }}"
        description: "MongoDB 容器 is down,当前值:{{ $value }}"

    - alert: MongodbNumberCursorsOpen
      expr: 'mongodb_ss_metrics_cursor_open{csr_type="total"} > 10 * 1000'
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "MongoDB 数字游标打开告警 容器:{{ $labels.instance }}"
        description: "MongoDB为客户端打开的游标过多 > 10k,当前值:{{ $value }}"

    - alert: MongodbCursorsTimeouts
      expr: 'increase(mongodb_ss_metrics_cursor_timedout[1m]) > 100'
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "MongoDB 游标超时 容器:{{ $labels.instance }}"
        description: "MongoDB 太多游标超时,当前值:{{ $value }}"

    - alert: MongodbTooManyConnections
      expr: 'avg by(instance) (rate(mongodb_ss_connections{conn_type="current"}[1m])) / avg by(instance) (sum (mongodb_ss_connections) by (instance)) * 100 > 80'
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "MongoDB 太多链接 容器:{{ $labels.instance }}"
        description: "MongoDB 连接数 > 80% ,当前值:{{ $value }}"

    - alert: MongodbVirtualMemoryUsage
      expr: '(sum(mongodb_ss_mem_virtual) BY (instance) / sum(mongodb_ss_mem_resident) BY (instance)) > 3'
      for: 2m
      labels:
        severity: warning
      annotations:
        summary: "MongoDB虚拟内存使用警告 容器:{{ $labels.instance }}"
        description: "MongoDB虚拟内存使用过高,当前值:{{ $value }}"
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

9、检查与更新(在Prometheus端操作)

检查配置:

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

重新加载配置:

curl -X POST http://localhost:9090/-/reload

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

在浏览器输入Prometheus端的IP加9090端口选择Alerts查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

10、添加到grafana

在Dashboards | Grafana Labs官网

找到dashboard复制id

在grafana端开始配置

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

完成文章来源地址https://www.toymoban.com/news/detail-787048.html


2、Prometheus监控docker

环境:

192.168.1.144  Ubuntu系统已经部署好Prometheus监控部署教程请看本人前面的教程 

192.168.1.140  centos7系统已安装docker+docker-compose

1、docker-compose的方式安装CAdvisor

创建cadvisor的目录

mkdir /data/cadvisor

cd /data/cadvisor

vim docker-compose.yaml

version: '3.3'
  vadvisor:
        image: google/cadvisor
        container_name: cadvisor
        restart: always
        volumes:
          - /:/rootfs:ro
          - /var/run:/var/run:rw
          - /sys:/sys:ro
          - /var/lib/docker/:/var/lib/docker:ro
        ports:
          - 8080:8080

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

启动:

docker-compose up -d

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

2、在浏览器访问查看

访问CAdvisor端的IP加8080端口

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

3、在Prometheus端对prometheus.yaml配置文件进行修改

vim prometheus/prometheus.yml   

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

因为我之前配置过Prometheus机器监控docker所以添加以下内容

      - targets: ['cadvisor:8080']
        labels:
          instance: Prometheus服务器
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

修改好配置后重新加载配置

curl -X POST http://localhost:9090/-/reload

4、在Prometheus端添加docker的触发器配置

我们Prometheus.yaml文件的触发器中有添加了一个触发器rules文件所以在指定rules文件内创建docker的触发器文件就行

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

我的Prometheus目录在/data/docker-prometheus/prometheus

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

进入到触发器目录添加以下内容

cd /data/docker-prometheus/prometheus/rules/

vim docker.yml

groups:
- name: DockerContainers
  rules:
  - alert: Containerkilled
    expr: time() - container_last_seen > 60
    for: 0m
    labels:
      severity: warning
    annotations:
      summary: "Docker容器被杀死,容器:{{ $labels.instance }}"
      description: "{{ $value }} 个容器消失了"

  - alert: ContainerAbsent
    expr: absent(container_last_seen)
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "Docker无容器,容器:{{ $labels.instance }}"
      description: "5分钟检查容器不存在,当前值为{{ $value }}"

  - alert: ContainerCpuUsage
    expr: (sum(rate(container_cpu_usage_seconds_total{name!=""}[3m])) BY (instance, name) * 100) > 300
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "Docker容器cpu使用率告警,容器:{{ $labels.instance }}"
      description: "容器cpu使用率超过300%,当前值为:{{ $value }}"

  - alert: ContainerMemoryUsage
    expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) > 80
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "Docker容器内存使用率告警,容器:{{ $labels.instance }}"
      description: "容器内存使用率超过80%,当前值为:{{ $value }}"

  - alert: ContainerVolumeIoUsage
    expr: (sum(container_fs_io_current{name!=""}) BY (instance, name) * 100) > 80
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "容器存储io使用率告警,容器:{{ $labels.instance }}"
      description: "容器存储io使用率超过 80%,当前值为:{{ $value }}"

  - alert: ContainerHighThrottleRate
    expr: rate(container_cpu_cfs_throttled_seconds_total[3m]) > 1
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "容器限制告警,容器:{{ $labels.instance }}"
      description: "容器被限制,当前值为:{{ $value }}"
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

5、检查与更新(在Prometheus端操作)

检查配置:

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

重新加载配置:

curl -X POST http://localhost:9090/-/reload

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

6、在浏览器查看是否有docker的触发器

访问Prometheus端的IP加9090端口选择Alerts查看

http://192.168.1.144:9090/

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

7、选择dashboard

官网:https://grafana.com/grafana/dashboards

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

8、添加到grafana配置

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

完成


3、Prometheus监控MySQL.8.0

注:已安装docker 和 docker-compose

1、通过docker-compose启动MySQL

mkdir /data/mysql #创建存放MySQL的目录

cd /data/mysql

#创建docker-compose.yaml文件

vim docker-compose.yaml

version: '3.1'
services:
  db:
    image: mysql
    restart: always
    container_name: mysql
    environment:
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      MYSQL_ROOT_PASSWORD: sy123456
    command: [
      '--default-authentication-plugin=mysql_native_password',
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_general_ci',
      '--lower_case_table_names=1',
      '--performance_schema=1'
    ]
    volumes:
      - /data/mysql/data/:/var/lib/mysql
    ports:
      - 3306:3306

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

4、启动docker-compose

docker-compose up -d

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

5、查看MySQL的版本

docker-compose exec db mysql --version

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

6、创建MySQL的监控用户

因为我们是用docker-compose安装的MySQL所以用以下命令创建用户

登陆MySQL

docker exec -it mysql mysql -uroot -psy123456

创建监控用户:

CREATE USER 'exporter'@'%' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS 3;

解释:

数据库中创建一个名为 'exporter' 的用户,并指定了该用户的连接限制为最多 3 个连接。该用户将使用 'password' 作为登录密码

给与监控用户权限:

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

解释:

命令是为用户 'exporter' 授予在所有数据库中执行 PROCESS、REPLICATION CLIENT 和 SELECT 权限的权限,允许该用户从任意主机连接到 MySQL 服务器

退出MySQL:

quit

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

7、用创建的用户登陆验证

docker exec -it mysql mysql -uexporter -ppassword

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

8、docker方式安装mysql_exporter

创建mysql_exporter的安装目录

mkdir /data/mysqld_exporter -p

cd /data/mysqld_exporter -p

创建docker-compose.yaml文件

vim docker-compose.yaml

version: '3.3'
services:
  mysqld-exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    restart: always
    command:
      - '--collect.info_schema.processlist'
      - '--collect.info_schema.innodb_metrics'
      - '--collect.info_schema.tablestats'
      - '--collect.info_schema.tables'
      - '--collect.info_schema.userstats'
      - '--collect.engine_innodb_status'
    environment:
      - DATA_SOURCE_NAME=exporter:password@(192.168.1.140:3306)/
    ports:
      - 9104:9104
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

9、启动

docker-compose up -d 

10、如果启动不起来报错

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

日志如图

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

在当前目录下创建一个my.cnf文件

vim my.cnf 

[client]
user=exporter
password=password
host=192.168.1.140
port=3306

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

修改docker-compose.yaml 文件 

vim docker-compose.yaml             

version: '3.3'
services:
  mysqld-exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    restart: always
    command:
      - '--collect.info_schema.processlist'
      - '--collect.info_schema.innodb_metrics'
      - '--collect.info_schema.tablestats'
      - '--collect.info_schema.tables'
      - '--collect.info_schema.userstats'
      - '--collect.engine_innodb_status'
    volumes:
      - ./my.cnf:/.my.cnf          #注意映射进容器的根号下不然会报错
    ports:
      - 9104:9104

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

重新启动

docker-compose restart

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

11、访问查看

在浏览器输入本机IP加9104端口访问查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

12、在Prometheus端添加配置

在Prometheus端打开prometheus.yml文件在尾部添加以下内容

vim prometheus/prometheus.yml

  - job_name: 'mysql_exporter'
    static_configs:
      - targets: ['192.168.1.140:9104']
        labels:
          instance: docker服务器
 

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

更新配置

curl -X POST http://localhost:9090/-/reload

13、在浏览器查看是否有docker的触发器

 访问Prometheus端的IP加9090端口选择Status在选择Targets查看

http://192.168.1.144:9090/

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

14、触发器配置

我之前在Prometheus.yaml文件的触发器中有添加了一个触发器rules文件所以在指定rules文件内创建docker的触发器文件就行

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

我的Prometheus目录在/data/docker-prometheus/prometheus

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

进入到rules目录下创建mysqld的触发器文件

vim mysqld.yml

groups:
- name: MySQL
  rules:
  - alert: MysqlDown
    expr: mysql_up == 0
    for: 30s
    labels:
      severity: critical
    annotations:
      summary: "MySQL Down,实例:{{ $labels.instance }}"
      description: "MySQL_exporter连不上MySQL了 当前状态为:{{ $value }}"

  - alert: MysqlTooManyConnections
    expr: max_over_time(mysql_global_status_threads_connected[1m]) / mysql_global_variables_max_connections * 100 > 80
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "MySQL连接数过多告警,实例:{{ $labels.instance }}"
      description: "MySQL连接数>80% , 当前值:{{ $value }}"

  - alert: MysqlHighThreadsRunning
    expr: max_over_time(mysql_global_status_threads_running[1m]) > 20
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "MySQL运行的线程过多,实例:{{ $labels.instance }}"
      description: "MySQL运行的线程>20 , 当前运行的线程:{{ $value }}"

  - alert: MysqlSlowQueries
    expr: increase(mysql_global_status_slow_queries[2m]) > 0
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "MySQL慢日志告警,实例:{{ $labels.instance }}"
      description: "MySQL在过去的两分钟有新的 , {{ $value }}条慢查询"

  - alert: MysqlInnodbLogWaits
    expr: rate(mysql_global_status_innodb_log_waits[15m]) > 10
    for: 0m
    labels:
      severity: warning
    annotations:
      summary: "MySQL innodb日志等待,实例:{{ $labels.instance }}"
      description: "MySQL innodb日志写入停滞, 当前值:{{ $value }}"

  - alert: MysqlRestarted
    expr: mysql_global_status_uptime < 60
    for: 0m
    labels:
      severity: info
    annotations:
      summary: "MySQL 重启,实例:{{ $labels.instance }}"
      description: "不到一分钟MySQL 重启过"
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

15、检查配置

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

更新配置

curl -X POST http://localhost:9090/-/reload

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

16、在浏览器查看

访问Prometheus端的IP加9090端口选择Alerts查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

17、在dashboard找合适的dashboard建议使用7362

https://grafana.com/grafana/dashboards

18、登陆到grafana添加节点和dashboard

 

进入grafana页面 在左上角选择 Starred 然后在右上角选择New 然后选择 import 会出现下面的页面

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

完成

4、添加服务器系统进程监控

我的服务器已经安装docker和docker-compose

1、docker安装process_exporter

创建process的存储目录:

mkdir /data/process_exporter -p

cd /data/process_exporter

创建配置文件:

vim process.yml

process_names:
  - name: "{{.Comm}}"        
    cmdline:
    - '.+'

也可以监控指定进程和上面的二选一即可

vim process.yml

process_names:

- name: "{{.Matches}}" #匹配模板

cmdline:

- 'nginx' #唯一标识

- name: "{{.Matches}}"

cmdline:

- 'mongod'

- name: "{{.Matches}}"

cmdline:

- 'mysqld'

- name: "{{.Matches}}"

cmdline:

- 'redis-server'

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

2、启动process-exporter

docker run -d --rm -p 9256:9256 --privileged -v /proc:/host/proc -v `pwd`:/config --name process-exporter ncabatoff/process-exporter --procfs /host/proc -config.path /config/process.yml

解释:

  • -d:以后台方式运行容器。
  • --rm:在容器停止后自动删除容器。
  • -p 9256:9256:将主机的9256端口映射到容器的9256端口。
  • --privileged:以特权模式运行容器,允许容器访问主机的所有设备。
  • -v /proc:/host/proc:将主机的/proc目录挂载到容器的/host/proc目录,用于获取主机的进程信息。
  • -v pwd:/config:将当前工作目录挂载到容器的/config目录,用于提供配置文件process.yml。
  • --name process-exporter:给容器指定一个名称为process-exporter。
  • ncabatoff/process-exporter:使用ncabatoff/process-exporter镜像来创建容器。
  • --procfs /host/proc -config.path /config/process.yml:传递给容器的命令行参数,指定procfs路径为/host/proc,配置文件路径为/config/process.yml。

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

3、在浏览器访问查看

输入本机IP加9256端口查看是否能检测到数据

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

3、在Prometheus端添加配置

在Prometheus端打开prometheus.yml文件在尾部添加以下内容

vim prometheus/prometheus.yml

  - job_name: 'process_exporter'
    scrape_interval: 30s
    scrape_timeout: 15s
    static_configs:
      - targets: ['192.168.1.140:9256'

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

4、更新检查

curl -X POST http://localhost:9090/-/reload          更新配置

访问Prometheus端的IP加9090端口选择Status在选择Targets查看

http://192.168.1.144:9090/

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

5、触发器配置

我之前在Prometheus.yaml文件的触发器中有添加了一个触发器rules文件所以在指定rules文件内创建docker的触发器文件就行

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

我的Prometheus目录在/data/docker-prometheus/prometheus

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

进入到rules目录下创建process的触发器文件

vim process.yml

groups:
- name: process
  rules:
  - alert: 进程数多告警
    expr: sum(namedprocess_namegroup_states) by (instance) >1000
    for: 1m
    labels:
      severity: warning
    annotations:
      description: "服务器当前有{{ $value }}个进程"

  - alert: 僵尸进程数告警
    expr: sum by(instance, groupname) (namedprocess_namegroup_states{state="Zombie"}) > 0
    for: 1m
    labels:
      severity: warning
    annotations:
      description: "进程{{ $labels.groupname }}有{{ $value }}个僵尸进程"

  - alert: 进程重启告警
    expr: ceil(time() -max by (instance, groupname) (namedprocess_namegroup_oldest_start_time_seconds)) < 60
    for: 15s
    labels:
      severity: warning
    annotations:
      description: "进程{{ $labels.groupname}}在{{ $value }}秒前重启过"

  - alert: 进程退出告警
    expr: max by(instance, groupname) (delta(namedprocess_namegroup_oldest_start_time_seconds{groupname=~"^java.*|^nginx.*"}[1d])) < 0
    for: 1m
    labels:
      severity: warning
    annotations:
      description: "进程{{ $labels.groupname}}退出了"
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

6、检查更新(在Prometheus端操作)

检查配置

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

更新配置

curl -X POST http://localhost:9090/-/reload

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

7、在浏览器查看是否有新的触发器

访问Prometheus端的IP加9090端口选择Alerts查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

8、在dashboard找合适的dashboard建议使用249

https://grafana.com/grafana/dashboards

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

9、登陆到grafana添加节点和dashboard

进入grafana页面 在左上角选择 Starred 然后在右上角选择New 然后选择 import 会出现下面的页面

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

完成


5、添加域名过期时间监控

1、docker安装domain_exporter

docker run -d --restart=always --name domain_exporter -p 9222:9222 caarlos0/domain_exporter

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

2、在浏览器访问本机IP加9222端口访问查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

3、在Prometheus端进行配置

在Prometheus端打开配置文件添加以下内容

vim prometheus/prometheus.yml

  - job_name: domain
    #scrape_interval: 1h
    scrape_interval: 15s
    metrics_path: /probe
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - target_label: __address__
        replacement: 192.168.1.140:9222
    static_configs:
      - targets:
        - qq.com
        - baidu.cn
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

4、更新配置并检查

curl -X POST http://localhost:9090/-/reload         #更新配置

 访问Prometheus端的IP加9090端口选择Status在选择Targets查看

http://192.168.1.144:9090/

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

5、触发器配置(在Prometheus端配置)

我之前在Prometheus.yaml文件的触发器中有添加了一个触发器rules文件所以在指定rules文件内创建docker的触发器文件就行

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

我的Prometheus目录在/data/docker-prometheus/prometheus

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

进入到rules目录下创建process的触发器文件

vim domain.yml

groups:
- name: domain
  rules:
  - alert: 域名检测失败
    expr: domain_probe_success == 0
    for: 2h
    labels:
      severity: warning
    annotations:
      summary: '{{ $labels.instance }}'
      description: '{{ $labels.domain }}域名检测失败'

  - alert: 域名过期
    expr: domain_expiry_days < 30
    for: 2h
    labels:
      severity: warning
    annotations:
      summary: '{{ $labels.instance }}'
      description: '{{ $labels.domain }}将在30天后过期'

  - alert: 域名过期
    expr: domain_expiry_days < 5
    for: 2h
    labels:
      severity: page
    annotations:
      summary: '{{ $labels.instance }}'
      description: '{{ $labels.domain }}将在5天后过期'
Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

6、检查更新(在Prometheus端操作)

检查配置

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

更新配置

curl -X POST http://localhost:9090/-/reload

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

7、在浏览器查看是否有新的触发器

访问Prometheus端的IP加9090端口选择Alerts查看

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

8、在dashboard找合适的dashboard建议使用14605

https://grafana.com/grafana/dashboards

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

9、登陆到grafana添加节点和dashboard

进入grafana页面 在左上角选择 Starred 然后在右上角选择New 然后选择 import 会出现下面的页面

Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodbPrometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控,prometheus,docker,容器,mongodb

完成

到了这里,关于Prometheus监控添加监控mongodb+docker+MySQL8.0+服务器系统进程监控+域名过期时间监控的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • prometheus 配置服务器监控、服务监控、容器中服务监控与告警

           最近公司有几个服务遇到了瓶颈,也就是数据量增加了,没有人发现,这不是缺少一个监控服务和告警的系统吗?         主要需求是监控每个服务,顺带监控一下服务器和一些中间件,这里采集的2种,zabbix和prometheus,由于我们要监控的是Docker容器中的服务,最终

    2024年02月14日
    浏览(45)
  • prometheus+grafana进行服务器资源监控

    在性能测试中,服务器资源是值得关注一项内容,目前,市面上已经有很多的服务器资 源监控方法和各种不同的监控工具,方便在各个项目中使用。 但是,在性能测试中,究竟哪些指标值得被关注呢? 监控有着的分级体系,下面引用: 在以前的工作中,想要实现服务器资源

    2024年02月10日
    浏览(48)
  • prometheus + grafana进行服务器资源监控

    在性能测试中,服务器资源是值得关注一项内容,目前,市面上已经有很多的服务器资 源监控方法和各种不同的监控工具,方便在各个项目中使用。 但是,在性能测试中,究竟哪些指标值得被关注呢? 监控有着的分级体系,下面引用:   在以前的工作中,想要实现服务器资

    2024年02月11日
    浏览(39)
  • 基于Prometheus 和 Grafana 实现springboot应用监控和服务器监控

    目录 1.Prometheus环境搭建 1.1 下载和安装Prometheus 1.2 配置Prometheus 1.3 配置Prometheus抓取Spring Boot应用Metrics 1.4 启动Prometheus 2.Grafana环境搭建 2.1 下载和安装Grafana 2.2 配置Grafana数据源 2.3 创建Dashboard 3、NodeExporter(服务器监控)插件配置安装 3.1 下载和安装Node Exporter 插件 3.2配置pro

    2024年02月13日
    浏览(44)
  • Prometheus监控实战之Docker容器监控

    容器的使用已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。 关于容器的开源产品,目前知名的有Docker、Containerd、CoreOS rkt、LXC 等,在这其中Docker占据了绝对的统治地位,也

    2024年02月06日
    浏览(39)
  • 【云原生】Docker容器命令监控+Prometheus监控平台

    目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps 字段含义 docker top 查看指定容器内的进程 选项 查看详细docker容器

    2024年02月15日
    浏览(43)
  • Prometheus 监控MySQL

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下的产品。 MySQL是最流行的关系型数据库管理系统之一。数据库的稳定运行是保证业务可用性的关键因素之一。这一小节当中将介绍如何使用Prometheus提供的MySQLD Exporter实现对MySQL数据库性能以及资源利

    2024年01月19日
    浏览(35)
  • prometheus+cadvisor监控docker容器

    一、安装cadvisor 二、运行容器 若出现如下报错 执行 三、访问页面 ip:8088 四、Prometheus集成 五、在grafana中导入面板 六、监控图

    2024年02月11日
    浏览(43)
  • prometheus监控服务器、网络设备、Vmware-esxi

    采用prometheus方式进行部署,监控本地服务器、网络线路、域名访问达到阈值触发告警,从而快速定为问题源加快响应速度 1)创建docker-compose文件 vim docker-compose.yml -------------------------------------包含部署grafana、consul、alertmanager---------------------------------- version: \\\'3.7\\\' services: prome

    2024年02月07日
    浏览(53)
  • 实战:Prometheus+Grafana监控Linux服务器及Springboot项目

    相信大家都知道一个项目交付生产并不意味着结束,更多的是对线上服务的运维监控。运维监控主要涉及到部署服务器的资源情况,各个子服务的资源情况以及垃圾收集和吞吐量等等,还有故障告警等等功能。当然,作为一个搬砖人也是需要了解全链路的运维监控组件Promet

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包