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

Grafana自定义dashboard与监控主流中间件

🌟Grafana自定义Dashboard

CPU使用率

(1 - sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) /  sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

CPU核心数

count(node_cpu_seconds_total{mode="idle"}) by (instance)

服务器启动时间

node_time_seconds - node_boot_time_seconds

内存大小

node_memory_MemTotal_bytes/1024/1024/1024

🌟Grafana变量定义

Grafana设置变量

面板使用变量


🌟Grafana表格制作

配置Query(查询)

avg(node_uname_info) by (instance,nodename,release)

配置Transform(转换)

添加Overrides(覆盖)属性

如上图所示,依次点击"Overrides","Add field override""Fields with name"如下图所示,"Fields with name"选择响应的列字段(比如instance),而后点击"add override property",选择"Stamd options> Display name"

配置多指标监控展示

统计系统负载

如上图所示,我们依次按照图标执行,并添加"node_load5-0"查询,发现最终展示效果并不理想,需要配置"Transform"页面。如下图所示,我们在"Transform"页面添加"Merge"转换,而后在为"Value #B"添加Overrides配置进行输出展示

统计CPU核数

如上图所示,继续添加CPU核心数监控,PromQL语句: count(node_cpu_seconds_total{mode='system'}) by (instance)

统计CPU使用率

如上图所示,继续添加CPU使用率监控,PromQL语句: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)) * 100

统计内存总量

如上图所示,继续添加内存总量的监控,PromQL语句: node_memory_MemTotal_bytes-0值得注意的是,需要当我们为内存配置属性时要配置两个,一个是列的名称(Display name),另一个是单位转换(Unit)

统计内存使用率

如上图所示,继续添加内存使用率的监控,PromQL语句: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))*100

统计网卡出流量

如上图所示,继续网卡出流量的监控,PromQL语句:max(rate(node_network_transmit_bytes_total[1m])) by (instance)

配置阈值和背景色

配置指定的表格颜色

如上图所示,我们可以为指定表格添加一个"Cell type"属性,然后选择"Colored background",就可以发现其会自动变色。

压力测试观察Thresholds(阈值)颜色变化

	1.安装stress压测工具
[root@node-exporter42 ~]# apt -y install stress2.开始内存压测
[root@node-exporter42 ~]# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10m
stress: info: [2103] dispatching hogs: 8 cpu, 4 io, 2 vm, 0 hdd3.观察监控变化
如上图所示,表格的颜色变红了,根本原因是超过了定义的"Thresholds"(阈值)默认值: 80,我们可以自行修改该阈值哟~

Cell options(单元选项)

如上图所示,我们可以定义"Cell options"(单元选项),修改背景色,颜色之类的,但是个人感觉还是Auto的看着比较顺眼,你可以自行修改哈。

Grafana验证实例宕机映射

测试的PromQL

up{job="node-exporter"}

添加Value Mappings

而后点击"add override property",选择"Value Mappings> Value Mappings",再次点击"Add value mappings",将1映射为"Up",将0映射为"Down",最后可以将Down状态设置为红色,将Up状态设置为绿色。表格添加一个"Cell type"属性,然后选择"Colored background",就可以发现其会自动变色。

🌟备份与恢复仪表盘

备份仪表盘

如上图所示,我们可以将自己做的dashboard导出相当于备份,而且也可以给其他人共享。

恢复仪表盘

如上图所示,如果本地的dashboard删除了,或者别人要用咱们的dashboard就可以手动导入啦

🌟Prometheus监控主流的中间件

prometheus监控主流的中间件之docker

参考链接: https://github.com/google/cadvisor

部署docker环境(所有节点)

cadvisor-v0.52.1.tar.gz

导入镜像(所有节点)

docker load -i cadvisor-v0.52.1.tar.gz

运行测试的镜像

[root@node-exporter41 ~]# docker run -id --name c1 alpine:3.20.2
[root@node-exporter41 ~]# docker run -id --name c2 alpine:3.20.2[root@node-exporter42 ~]# docker run -id --name c3 alpine:3.20.2
[root@node-exporter42 ~]# docker run -id --name c4 alpine:3.20.2[root@node-exporter43 ~]# docker run -id --name c5 alpine:3.20.2
[root@node-exporter43 ~]# docker run -id --name c6 alpine:3.20.2

运行CAdVisor

docker run \--volume=/:/rootfs:ro \--volume=/var/run:/var/run:ro \--volume=/sys:/sys:ro \--volume=/var/lib/docker/:/var/lib/docker:ro \--volume=/dev/disk/:/dev/disk:ro \--network host \--detach=true \--name=cadvisor \--privileged \--device=/dev/kmsg \gcr.io/cadvisor/cadvisor-amd64:v0.52.1

访问CAdvisor的webUI

http://10.0.0.41:8080/docker/http://10.0.0.42:8080/docker/http://10.0.0.43:8080/docker/[root@node-exporter41 ~]# curl -s http://10.0.0.43:8080/metrics | wc -l
3067

Prometheus监控容器节点

[root@prometheus-server31 ~]# vim /app/tools/prometheus-2.53.4.linux-amd64/prometheus.yml- job_name: "docker-cadVisor"static_configs:- targets: - 10.0.0.41:8080- 10.0.0.42:8080- 10.0.0.43:8080

热加载配置文件

[root@prometheus-server31 ~]# curl -X POST 10.0.0.31:9090/-/reload

验证配置是否生效

http://10.0.0.31:9090/targets?search=

Grafana导入ID模板

10619

prometheus监控主流的中间件之mysql

部署MySQL

1..运行MySQL服务
[root@node-exporter43 ~]# docker run -d --network host --name mysql-server --restart always -e MYSQL_DATABASE=prometheus -e MYSQL_USER=zhu -e MYSQL_PASSWORD=zhu -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:8.0.36-oracle --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password2..检查MySQL服务
[root@node-exporter43 ~]# docker ps -l
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS     NAMES
16aa74bc9e03   mysql:8.0.36-oracle   "docker-entrypoint.s…"   2 seconds ago   Up 2 seconds             mysql-server
[root@node-exporter43 ~]# 
[root@node-exporter43 ~]# ss -ntl | grep 3306
LISTEN 0      151                *:3306             *:*          
LISTEN 0      70                 *:33060            *:*          
[root@node-exporter43 ~]# 3..添加用户权限
[root@node-exporter43 ~]# docker exec -it mysql-server mysql
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO zhu;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR zhu;

下载MySQL-exporter

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz

解压软件包

tar xf mysqld_exporter-0.17.2.linux-amd64.tar.gz  -C /usr/local/bin/ mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter --strip-components=1

运行MySQL-exporter暴露MySQL的监控指标

[root@node-exporter42 ~]# vim .my.cnf 
[client]
host = 10.0.0.43
port = 3306
user = zhu
password = zhu
[root@node-exporter42 ~]# mysqld_exporter --config.my-cnf=/root/.my.cnf

验证测试

[root@node-exporter41 ~]# curl -s http://10.0.0.42:9104/metrics | wc -l

修改Prometheus的配置文件

[root@prometheus-server31 ~]# vim /app/tools/prometheus-2.53.4.linux-amd64/prometheus.yml- job_name: "mysql-exporter"static_configs:- targets:- 10.0.0.42:9104

热加载配置文件

[root@prometheus-server31 ~]# curl -X POST 10.0.0.31:9090/-/reload

验证配置是否生效

http://10.0.0.31:9090/targets?search=

Grafana导入ID模板

14057
17320

prometheus监控主流的中间件之mongoDB

下载MongoDB的exporter

https://github.com/percona/mongodb_exporter/releases/download/v0.47.1/mongodb_exporter-0.47.1.linux-amd64.tar.gz

解压软件包

[root@node-exporter42 ~]#  tar xf mongodb_exporter-0.43.1.linux-amd64.tar.gz -C /usr/local/bin/ mongodb_exporter-0.43.1.linux-amd64/mongodb_exporter --strip-components=1

运行mongodb-exporter

mongodb_exporter --mongodb.uri=mongodb://10.0.0.43:27017 --log.level=info --collect-all --no-collect.pbm

验证mongoDB-exporter的WebUI

http://10.0.0.42:9216/metrics[root@node-exporter41 ~]# curl -s http://10.0.0.42:9216/metrics | wc -l
8847

配置Prometheus监控mongoDB容器

[root@prometheus-server31 ~]# vim /app/tools/prometheus-2.53.4.linux-amd64/prometheus.yml- job_name: mongodb-exporterstatic_configs:- targets: - 10.0.0.42:9216

热加载

[root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload

验证Prometheus配置是否生效

http://10.0.0.31:9090/targets?search=可以进行数据的查询,推荐使用: mongodb_dbstats_dataSize

grafana导入模板ID

参考链接: https://grafana.com/grafana/dashboards

16504

prometheus监控主流的中间件之nginx

编译安装nginx

1.安装编译工具
[root@node-exporter41 ~]# cat > /etc/apt/sources.list <<'EOF'
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF[root@node-exporter41 ~]# apt update
[root@node-exporter41 ~]# apt -y install git wget gcc make zlib1g-dev build-essential libtool openssl libssl-dev2.克隆nginx-module-vts模块 
git clone https://gitee.com/jasonyin2020/nginx-module-vts.git3.下载nginx软件包
wget https://nginx.org/download/nginx-1.28.0.tar.gz4.解压nginx
tar xf nginx-1.28.0.tar.gz5.配置nginx
cd nginx-1.28.0/
./configure --prefix=/app/tools/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --without-http_rewrite_module --with-http_stub_status_module --without-http_gzip_module  --with-file-aio --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module=/root/nginx-module-vts6.编译并安装nginx
make -j 2 && make install7.修改nginx的配置文件
vim /app/tools/nginx/conf/nginx.conf
...
http {vhost_traffic_status_zone;upstream promethues {server 10.0.0.31:9090;}...server {...location / {root   html;# index  index.html index.htm;proxy_pass http://promethues;}location /status {vhost_traffic_status_display;vhost_traffic_status_display_format html;}}
}8.检查配置文件语法
/app/tools/nginx/sbin/nginx -t9.启动nginx
/app/tools/nginx/sbin/nginx10.访问nginx的状态页面
http://10.0.0.41/status/format/prometheus

prometheus监控主流的中间件之tomcat

参考链接: https://github.com/nlighten/tomcat_exporter

基于Dockerfile构建tomcat-exporter

[root@node-exporter43 ~]# git clone https://gitee.com/jasonyin2020/tomcat-exporter.git
[root@node-exporter43 ~]# cd tomcat-exporter/
[root@node-exporter43 tomcat-exporter]# 
[root@node-exporter43 tomcat-exporter]# ll
total 44
drwxr-xr-x  5 root root 4096 May 13 11:55 ./
drwx------ 10 root root 4096 May 13 11:55 ../
-rw-r--r--  1 root root   96 May 13 11:55 build.sh
-rw-r--r--  1 root root  503 May 13 11:55 Dockerfile
drwxr-xr-x  8 root root 4096 May 13 11:55 .git/
drwxr-xr-x  2 root root 4096 May 13 11:55 libs/
-rw-r--r--  1 root root 3407 May 13 11:55 metrics.war
drwxr-xr-x  2 root root 4096 May 13 11:55 myapp/
-rw-r--r--  1 root root  191 May 13 11:55 README.md
-rw-r--r--  1 root root 7604 May 13 11:55 server.xml
[root@node-exporter43 tomcat-exporter]# 
[root@node-exporter43 tomcat-exporter]# bash build.sh 

运行tomcat镜像

[root@node-exporter43 tomcat-exporter]# docker run -dp 18080:8080 --name tomcat-server registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/tomcat9-app:v1
5643c618db790e12b5ec658c362b3963a3db39914c826d6eef2fe55355f1d5d9

访问tomcat应用

http://10.0.0.43:18080/metrics/
http://10.0.0.43:18080/myapp/

配置prometheus监控tomcat应用

参考链接: https://github.com/nlighten/tomcat_exporter/blob/master/dashboard/example.json

1.修改配置文件
[root@prometheus-server31 ~]# vim /app/tools/prometheus-2.53.4.linux-amd64/prometheus.yml ...- job_name: "tomcat-exporter"static_configs:- targets: - "10.0.0.43:18080"2.重新加载配置并验证配置是否生效
curl -X POST http://10.0.0.31:9090/-/reload3.导入grafana模板 

文章转载自:

http://nNBE9sQR.stbfy.cn
http://5ggQqAyq.stbfy.cn
http://TnefUpj3.stbfy.cn
http://BpneYDHm.stbfy.cn
http://tXCJXPnP.stbfy.cn
http://q0t8xVJP.stbfy.cn
http://anHZ23Tw.stbfy.cn
http://bpjUvpSY.stbfy.cn
http://5NMm0e0x.stbfy.cn
http://fqhkuXfu.stbfy.cn
http://Y40VStk6.stbfy.cn
http://FnAcGY2i.stbfy.cn
http://TjB2hVsv.stbfy.cn
http://IUAlxMQA.stbfy.cn
http://MEeJ0rSu.stbfy.cn
http://ax98t75H.stbfy.cn
http://7rwfN2ma.stbfy.cn
http://UnapdoUP.stbfy.cn
http://5ti5Gcwi.stbfy.cn
http://nr5DbnJT.stbfy.cn
http://NmmGMcD1.stbfy.cn
http://FSMKI9mS.stbfy.cn
http://99PnuKVK.stbfy.cn
http://jmuslYzO.stbfy.cn
http://VI4rlUA5.stbfy.cn
http://mD9cLxvl.stbfy.cn
http://QPN9U43O.stbfy.cn
http://JNW0fUui.stbfy.cn
http://uXzh0L9r.stbfy.cn
http://kqRZAZn6.stbfy.cn
http://www.dtcms.com/a/382920.html

相关文章:

  • LabVIEW 中的振动分析与信号处理
  • 简单UDP网络程序
  • RCE绕过技术:取反与异或的深入解析与实践
  • 算法题(207):最长上升子序列(经典线性dp题)
  • 【Nginx开荒攻略】Nginx主配置文件结构与核心模块详解:从0到1掌握nginx.conf:
  • 操作系统(二) :CPU调度
  • Knockout.js DOM 数据存储模块详解
  • js趣味游戏 贪吃蛇
  • Ajax-day2(图书管理)-弹框显示和隐藏
  • 低代码平台-开发SDK设计
  • Java 线程池面试高频问题全解析
  • 【HarmonyOS】MVVM与三层架构
  • 算法—双指针1.2
  • hcl ac ap 本地转发学习篇
  • Velox:数据界的超级发动机
  • 嵌入式系统启动流程
  • TRAE通用6A规则+敏捷开发5S规则
  • 【Java后端】Spring Boot 集成雪花算法唯一 ID
  • 【知识管理】【科普】新概念的学习路径
  • flask入门(五)WSGI及其Python实现
  • 第17课:自适应学习与优化
  • 详解安卓开发andorid中重要的agp和gradle的关系以及版本不匹配不兼容问题的处理方法-优雅草卓伊凡
  • Linux应用开发(君正T23):三网智能切换及配网功能
  • 华为HarmonyOS开发文档
  • Java 文件io
  • 在Android Studio中配置Gradle涉及到几个关键的文件
  • 基于OpenCV的答题卡自动识别与评分系统
  • 贪心算法应用:出租车调度问题详解
  • 【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?
  • FlashAttention(V2)深度解析:从原理到工程实现