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

Prometheus+Grafana监控

Prometheus是一种开源监控系统,可用于收集指标和统计数据,并提供强大的查询语言,以便分析和可视化这些数据。它被广泛用于云原生和容器化环境中,可以嵌入到Kubernetes集群中,并与其他Kubernetes工具进行集成。

Grafana是一种开源的面向数据的仪表板和可视化工具,可与Prometheus等数据源一起使用。它提供了各种可视化选项和插件,可以可视化数据和指标以便于分析。Grafana还支持警报和通知机制,以便在指标达到特定条件时通知用户。

结合使用Prometheus和Grafana可以实现实时监控应用程序的运行状况,帮助开发人员迅速发现和解决问题。通过可视化和分析指标数据,可以对系统性能和稳定性进行深入了解,并且可以根据警告和通知及时采取行动。

实验部署

IP角色系统规格
192.168.231.233Prometheus 服务端CentOS 74c8g
192.168.231.232node_exporter 客户端CentOS 74c8g

在服务端部署prometheus

由于本地有包 因此直接上传

rz  
选择这个prometheus-2.47.2.linux-amd64.tar.gz

解压
[root@prometheus opt]# tar xvfz prometheus-2.47.2.linux-amd64.tar.gz -C /usr/local/
[root@prometheus opt]# cd /usr/local/

改名
[root@prometheus local]# mv prometheus-2.47.2.linux-amd64 prometheus
[root@prometheus local]# cd prometheus
[root@prometheus prometheus]# ls
console_libraries  consoles  data  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

# 查看版本信息
[root@prometheus prometheus]# ./prometheus --version
prometheus, version 2.47.2 (branch: HEAD, revision: 3f3172cde1ee37f1c7b3a5f3d9b031190509b3ad)
  build user:       root@79f2ad339b75
  build date:       20231012-16:07:10
  go version:       go1.21.3
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels
# 查看帮助
[root@prometheus prometheus]# ./prometheus --help
prometheus, version 2.47.2 (branch: HEAD, revision: 3f3172cde1ee37f1c7b3a5f3d9b031190509b3ad)
  build user:       root@79f2ad339b75
  build date:       20231012-16:07:10
  go version:       go1.21.3
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels
  …………

prometheus.yml配置文件详细解释

[root@prometheus prometheus]# cat prometheus.yml
# my global config
global:
  # 默认情况下,每15s拉取一次目标采样点数据。
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  # 每15秒评估一次规则。默认值为每1分钟。
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
  - job_name: 'prometheus'

    # 覆盖global的采样点,拉取时间间隔5s
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9090']

启动Prometheus

[root@prometheus prometheus]# ./prometheus --config.file=prometheus.yml

相关启动参数

# 指定配置文件
--config.file="prometheus.yml"
# 默认指定监听地址端口,可修改端口
--web.listen-address="0.0.0.0:9090" 
# 最大连接数
--web.max-connections=512
# tsdb数据存储的目录,默认当前data/
--storage.tsdb.path="data/"
# premetheus 存储数据的时间,默认保存15天
--storage.tsdb.retention=15d 
# 通过命令热加载无需重启 curl -XPOST 192.168.2.45:9090/-/reload
--web.enable-lifecycle
# 可以启用 TLS 或 身份验证 的配置文件的路径
--web.config.file=""

启动选项了解:./prometheus --help

web端访问

192.168.231.233:9090

将Prometheus配置为system管理

# 配置Prometheus启动文件
[root@prometheus opt]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090

[Install]                      
WantedBy=multi-user.target

重新加载system配置

[root@prometheus opt]# systemctl daemon-reload
[root@prometheus opt]# systemctl start prometheus

查看端口
[root@prometheus opt]# ss -tlanp |grep 9090
LISTEN     0      1024      [::]:9090                  [::]:*                   users:(("prometheus",pid=9318,fd=7))

客户端,配置服务发现linux主机及相关服务

# 安装node_exporter

传包
rz   #node_exporter-1.7.0.linux-amd64.tar.gz

解压
[root@node ~]# tar -xr node_exporter-1.7.0.linux-amd64.tar.gz -C /usr/local/
[root@node ~]# cd /usr/local/
[root@node local]# mv node_exporter-1.7.0.linux-amd64/ node_exporter

进入目录,查看有哪些文件
[root@node local]# cd node_exporter/
[root@node node_exporter]# ls
LICENSE  node_exporter  NOTICE

后台运行并启动
[root@node node_exporter]# ./node_exporter &
	…………
ts=2023-11-16T09:52:04.979Z caller=tls_config.go:274 level=info msg="Listening on" address=[::]:9100
ts=2023-11-16T09:52:04.979Z caller=tls_config.go:277 level=info msg="TLS is disabled." http2=false address=[::]:9100

查看端口

[root@node node_exporter]# ss -tlnp  | grep 9100
LISTEN     0      1024      [::]:9100                  [::]:*                   users:(("node_exporter",pid=8414,fd=3))

配置node——exporter为systemd管理

[root@node node_exporter]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target 

[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

重新加载配置,并查看端口

[root@node node_exporter]# systemctl daemon-reload
[root@node node_exporter]# systemctl start node_exporter
[root@node node_exporter]# ss -tlnp  | grep 9100
LISTEN     0      1024      [::]:9100                  [::]:*                   users:(("node_exporter",pid=8675,fd=3))

普罗米修斯服务端配置文件添加监控项

vim  /usr/local/prometheus/prometheus.yml

最后一行添加

 - job_name: "node_exporter"
    static_configs:
      - targets: ["192.168.231.232:9100"]
   # 如果有多个机器,用','分开

重启prometheus服务

[root@prometheus prometheus]# systemctl restart prometheus

监控mysql(mysqld-exported)

安装mysqld-exported

rz  上传包

解压
[root@node ~]# tar xf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/
改名
[root@node /usr/local]# mv mysqld_exporter-0.15.0.linux-amd64 mysqld_exporter
编辑文件
[root@node /usr/local/mysqld_exporter]# vim .my.cnf
[client]
user=root
password=123   #登录系统用户的密码

启动mysqld-exported

后台运行
[root@node /usr/local/mysqld_exporter]# ./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf" &

查看进程
[root@node /usr/local/mysqld_exporter]# ps -ef |grep mysqld_exporter
root       3447   3398  0 01:31 pts/1    00:00:02 ./node_exporter
root       4647   3398  0 02:13 pts/1    00:00:00 ./mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf

查看端口
[root@node /usr/local/mysqld_exporter]# ss -lntp |grep 4647
LISTEN     0      128         :::9104                    :::*                   users:(("mysqld_exporter",pid=4647,fd=3))
[root@VM_2-44 /usr/local/mysqld_exporter]# 
# 启动后会监听9104端口

普罗米修斯服务端配置文件添加监控项

[root@prometheus prometheus]# vim prometheus.yml 

 - job_name: "mysql-exporter"
    static_configs:
      - targets: ["192.168.231.232:9104"]

重启服务

[root@prometheus prometheus]# systemctl restart prometheus

使用grafana展示Prometheus数据,在服务端安装

上传grafana-10.0.0-1.x86_64.rpm 
rz

安装
[root@prometheus ~]# yum install initscripts fontconfig -y
[root@prometheus ~]# yum install -y grafana-10.0.0-1.x86_64.rpm

启动服务
[root@prometheus ~]# systemctl start grafana-server.service 

查看端口
[root@prometheus ~]# ss -tlanp |grep grafana |grep LISTEN
LISTEN     0      1024      [::]:3000                  [::]:*                   users:(("grafana",pid=10629,fd=11))

# 启动后访问地址:ip:3000
# 初始用户名和密码都是admin

浏览器访问 http://192.168.231.233:3000

看不懂英文改中文

添加数据源

成功的提示

添加仪表盘

选择新建导入

dashboards查找地址,去官方找模板

https://grafana.com/grafana/dashboards/
 

找到点击copy,会复制id

选择普罗米修斯

成功


http://www.kler.cn/a/133838.html

相关文章:

  • 浅谈:基于三维场景的视频融合方法
  • C++ 的协程
  • 前端请求后端php接口跨域 cors问题
  • C++初阶:类和对象(上)
  • 树形dp总结
  • Nuxt 版本 2 和 版本 3 的区别
  • 【Java并发编程七】Java内存模型
  • Django command执行脚本
  • C++初阶 日期类的实现(上)
  • 专业数据标注公司:景联文科技领航数据标注行业,满足大模型时代新需求
  • ⑩④【MySQL】什么是视图?怎么用?视图的检查选项? 视图的作用?[VIEW]
  • 【Redis】RedisTemplate最全的常用方法
  • VB.net webbrowser 自定义下载接口实现
  • 【数据结构】图的存储结构及实现(邻接表和十字链表)
  • 适用于 Windows 的 10 个最佳视频转换器:快速转换高清视频
  • C++ 字符串的 拼接,插入,查找与截取。
  • 消息消费过程
  • CnosDB有主复制演进历程
  • main.js 中的 render函数
  • 几种典型的深度学习算法:(CNN、RNN、GANS、RL)
  • S32K324 UDS Bootloader开发-下位机篇-Bootload软件(2)
  • Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • 日志维护库:loguru
  • 图论| 827. 最大人工岛 127. 单词接龙
  • 运行ps显示msvcp140.dll丢失怎么恢复?msvcp140.dll快速解决的4个不同方法