一、Prometheus & node_exporter & Grafana 的原理
- Prometheus:Prometheus是一个开源的系统监控和报警工具包,它负责定时从各种数据源(如Node Exporter)中获取指标数据,并将其存储在自己的时间序列数据库中。Prometheus支持灵活的查询和报警功能,用户可以方便地对这些指标数据进行查询和分析,以及设置相关的报警规则。
- Node Exporter:Node Exporter是一个独立的组件,它负责收集目标节点(如服务器、主机或容器等)上的各种指标数据,如CPU、内存、磁盘、网络等,并将这些数据以Prometheus支持的格式暴露出来。Prometheus Server通过HTTP协议定时从Node Exporter中获取这些数据。
- Grafana:Grafana是一个开源的可视化平台,它可以与Prometheus无缝集成,将Prometheus中的指标数据以图表的形式展示出来。用户可以通过Grafana创建各种自定义的仪表板,以便更好地理解和分析系统的性能和行为。
这三个组件的结合使用可以实现全面的系统监控和可视化。具体来说,Prometheus负责收集指标数据,Node Exporter则提供指标数据的来源,而Grafana则负责将指标数据以图表的形式展示出来。这样,用户就可以通过Grafana方便地查看系统的各种指标数据,并对系统进行全面的监控和分析。
原理图:
二、环境与配置关系
ip | 角色 | 系统 |
10.10.10.1 | node_exporter | Linux Centos7 4核 |
10.10.10.1 | mysql_exporter | Linux Centos7 4核 |
10.10.10.1 | Prometheus | Linux Centos7 4核 |
10.10.10.1 | Grafana | Linux Centos7 4核 |
10.10.10.1 | redis_exporter | Linux Centos7 4核 |
三、node_exporter介绍、下载、解压、启动
1、node_exporter介绍
Node Exporter是Prometheus的一个指标数据收集组件,用于采集目标节点(如服务器、主机或容器等)的各种运行指标,如CPU、内存、磁盘、网络等。
Node Exporter是由Prometheus官方提供并维护的,它是一个用Go语言编写的独立组件。它通过各种系统命令或者访问操作系统的接口来获取指标数据,然后将这些数据转换成Prometheus支持的格式并暴露出来。
2、下载node_exporter
下载地址:https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
下载完成后,MobaXterm工具上传压缩包上传到【10.10.10.1】服务器的/root/ 目录中。
3、解压node_exporter
tar -xvzf node_exporter-1.7.0.linux-amd64.tar.gz
4、启动node_exporter
node_exporter默认监听端口为9100,我们启动可以指定监听端口为:8100
nohup ./node_exporter --web.listen-address=:8100 &
查看进程
ps -ef |grep node_exporter
四、mysql_exporter介绍、下载、解压、启动
1、mysql_exporter介绍
MySQL Exporter是一个专门用于监控MySQL数据库的Prometheus Exporter。它可以提供有关MySQL的各种指标,以便对数据库进行全面、深入的分析和了解。
MySQL Exporter的工作原理是,通过查询MySQL服务器的状态变量、内存使用情况、锁状态、QPS等信息,将这些数据转换成Prometheus支持的格式并暴露出来。Prometheus Server通过HTTP协议定时从MySQL Exporter中获取这些数据,并将其存储在自己的时间序列数据库中。
2、下载mysql_exporter
下载地址:https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
下载完成后,MobaXterm工具上传压缩包上传到【10.10.10.1】服务器的/root 目录中。
3、解压mysql_exporter
tar -xzvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
4、启动mysql_exporter
mysql_exporter默认监听端口为9104,我们启动可以指定监听端口为:8200,新建my.cnf文件。
my.cnf 配置文件输入如下内容
启动mysql_exporter命令
./mysqld_exporter --config.my-cnf='/root/mysqld_exporter-0.15.1.linux-amd64/my.cnf' --web.listen-address=:8200 &
五、redis_exporter介绍、下载、解压、启动
1、redis_exporter介绍
Redis Exporter是一个用于Prometheus监控的工具,它可以抓取Redis服务器的指标数据,并将其转换为Prometheus可以理解的格式。
Redis Exporter通过访问Redis服务器的INFO命令来获取各种指标数据,如内存使用情况、客户端连接数、键值存储统计信息等。然后,它将这些数据转换成Prometheus支持的格式并暴露出来。Prometheus Server通过HTTP协议定时从Redis Exporter中获取这些数据,并将其存储在自己的时间序列数据库中。
2、下载redis_exporter
下载地址:https://github.com/oliver006/redis_exporter/releases/download/v1.57.0/redis_exporter-v1.57.0.linux-amd64.tar.gz
下载完成后,使用命令上传至【10.10.10.1】服务器的/root/ 目录中。
scp redis_exporter-v1.57.0.linux-amd64.tar.gz root@10.10.10.1:/root
3、解压redis_exporter
tar -xvzf redis_exporter-v1.57.0.linux-amd64.tar.gz
4、启动redis_exporter
redis_exporter 默认监听端口为 9121,我们可以修改其监听端口为:8300
./redis_exporter -redis.addr 'redis://10.10.10.1:6379' -redis.password '123456' -web.listen-address ':8300' &
lsof -i:8300
六、sql_exporter介绍、下载、解压、启动
1、sql_exporter介绍
MSSQL的监控,官网没有提供采集器,所以只能用其他程序来监控,本文就用了 sql-exporter。
它可以理解成一个远程连接数据库的工具,可以用它来连接sql server/mysql 等等数据库,并以SQL查询方式采集SQL查询结果。
SQL_Exporter 是中心化的,可以把对不同实例的agent链接,都放在一台linux服务器上,以便管理、修改。你想想看,如果你更新了采集指标,只需要在该台中心化服务器重启sql_exporter agent采集客户端即可生效。
2、下载sql_exporter
下载地址:https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz
下载完成后,使用命令上传至【10.10.10.1】服务器的/root/ 目录中。
scp sql_exporter-0.5.linux-amd64.tar.gz root@10.10.10.1:/root
3、解压sql_exporter
tar -xvzf sql_exporter-0.5.linux-amd64.tar.gz
4、修改配置文件,加入sqlserver 服务器的地址及用户名密码
解析:
(1)global
收集器中允许最慢的SQL执行超时时间,注意该超时时间应小于prometheus中的 scrape_time
scrape_timeout_offset: 500ms #用于从 prometheus的 scrape_timeout 中减去一个偏移时间,防止 prometheus 先超时,如果设置了 scrape_timeout,scrape
min_interval: 0s #收集器每隔0运行一次(默认情况下)收集器每隔0运行一次。
max_connections: 10 #到任何一个目标的最大打开连接数。采集器信息查询将在多个连接上并发运行,
max_idle_connections: 5 #到任何一个目标的最大空闲连接数。除非使用很长的收集间隔,否则应该
(2)target
#数据源data_source_name: 'sqlserver://sa:a123456!@10.10.10.1:1433'
(3)collector
#引用收集器文件
collector_files:
- "*.collector.yml"
5、启动sql_exporter
sql_exporter 默认监听端口为 9399,我们可以修改其监听端口为:8300
./sql_exporter --config.file='/root/sql_exporter-0.5.linux-amd64/sql_exporter.yml' --web.listen-address=:8400 &
七、Prometheus下载,配置,启动
1、下载Prometheus
详见:Prometheus(普罗米修斯)常用exporter类下载地址大全
下载地址:prometheus-2.49.1.linux-amd64.tar.gz
下载完成后,MobaXterm工具上传压缩包上传到【10.10.10.1】服务器的/root 目录
2、解压Prometheus
tar -xzvf prometheus-2.49.1.linux-amd64.tar.gz
3、启动Prometheus及添加Node_exporter、redis_exporter、mysq_exporterl、sql_exporter配置
Prometheus默认端口:9090,支持修改端口,进入 vi prometheus.yml
进入 vi prometheus.yml ,分别追加Node_exporter 、mysq_exporterl、redis_exporter、sql_exporter配置如下内容(注意Yaml格式):
4、启动prometheus命令 -- 默认监听端口9090,启动普罗米修斯
/root/prometheus-2.49.1.linux-amd64/prometheus --config.file='/root/prometheus-2.49.1.linux-amd64/prometheus.yml' --web.listen-address='10.10.10.1:9090' &
5、查看监听端口
进入http://10.10.10.1:9090/targets 查看 Prometheus 启动显示
http://10.10.10.1:9090/metrics 、 http://10.10.10.1:8100/metrics 、 http://110.10.10.1:8200/metrics 地址查看收集数据源
七、Grafana下载,启动,配置数据源,导入模板
1、Grafana下载,启动,请参考此篇文章:【干货最详细】Jmeter + Grafana + InfluxDB 性能测试监控平台搭建
2、Prometheus 配置数据源
进入 Configuration -> Data Sources ,点击 Prometheus
导入服务器主机模板,选择模板ID:12633,导入Mysql监控模板,选择模板ID:17320,导入Redis监控模板,选择模板ID:11835,导入sql server 监控模板,选择模板ID:13919
服务器资源展示
数据库资源展示
redis 资源展示