免责声明:
1.编写此文是为了更好地学习,如果损害了有关人的利益,请联系删除;
2.如果文中描述欠妥,请在评论中进行指正;
3.文字编写不易,若感觉有用,点赞收藏关注会让博主很开心哦;
4.此外,转载请注明出处,非常感谢!!!
本文源自:https://blog.csdn.net/testleaf/article/details/128746669
另外,本文中要使用到的文件,基本上已在百度网盘链接中提供:
链接:https://pan.baidu.com/s/1c5-pJeQCAvRILPcG-rerjQ?pwd=leaf
一、grafana+influxdb+jmeter
1、前言
grafana: 前端展示平台,通过 更换不同的模板,来改变展示效果;
influxdb: 时序数据库:
时序数据库的特点: 每一行的数据,都有一个时间戳;
jmeter的后端监听器:实现了数据的收集以及发送给数据库的功能;
注:grafana、influxdb、jmeter最好不要放在被测服务器上,有条件可以单独在另一台服务器上部署;
2、安装grafana和influxdb
上传grafana-7.4.3-1.x86_64.rpm、influxdb-1.7.0.x86_64.rpm文件到centos7;
进行安装:
yum install -y grafana-7.4.3-1.x86_64.rpm
yum install -y influxdb-1.7.0.x86_64.rpm
3、启动grafana
启动grafana:
systemctl restart grafana-server
查看是否启动成功:
ps -ef|grep grafana
4、访问grafana
grafana的访问端口:3000
访问地址:http://grafana所在服务器IP地址:3000
初始账号密码:admin/admin
5、启动influxdb
启动influxdb:
influxd
不要按Ctrl+C,不然就会结束掉了;
6、配置influxdb和jmeter
再打开一个终端,
进入influxdb数据库:
influx
由上可知,influxdb数据库有一个http协议的访问端口;
jmeter中的监听器选择后端监听器,监听器的实现中,选择influxdb;
influxdbUrl:修改host_to_change为influxdb的ip地址,看到db=jmeter,说明,我们的数据是要写入一个叫jmeter的库中。
看有哪些库:
show databases
创建一个叫jmeter的数据库:
create database jmeter
时序数据库与关系数据库对应的表,不叫table,叫measurement
进入库:use jmeter
查看库里有哪些表:show measurements
不需要手动建表,建好库就可以了;
jmeter配置:
运行Jmeter;
查看表:
select * from jmeter
由上可知,在jmeter中执行性能测试,数据就入表了;
7、在grafana中显示数据
创建数据源:
引入模板:
模板ID:5496
右上角的时间,可以自己去调整,可以刷新指定时间内的数据;
8、其他模板
也可以去grafana官网去寻找合适的模板:https://grafana.com
二、grafana+prometheus+exporter
1、前言
prometheus是一个时序数据库,用来存数据的;
exporter是收集器,来收集被监控的数据,想要监控不同的内容,就使用不同的exporter,这个exporter应该放在 被测服务器
上,grafana和prometheus应该放在非被测服务器上;
然后,再把 exporter与 prometheus进行关联(数据联通);
这个解决方案,可以用于运维人员来监控服务器;
2、grafana启动
systemctl restart grafana-server
3、exporter安装与运行
node_exporter包上传到被测服务器上;
解压:
tar -xzvf node_exporter-1.1.1.linux-amd64.tar.gz
进入解压后的文件夹;
可执行文件不知道用,那就命令后面跟 --help 来获得帮助:
./node_exporter --help
直接执行:
./node_exporter
或者:后台执行,同时把运行日志,写到nohup.out文件中:
nohup ./node_exporter &
node_expoter端口: 9100
因此,被测服务器 需要开放 9100 端口;
http://YouExporter_IP:9100/metrics这个能访问,说明node_exporter是正常的,网络也是可以被访问的:
4、prometheus安装与运行
把prometheus的包,放到 非被测服务器上;
解压后,进入解压后的文件夹;
执行prometheus:
./prometheus
通过日志,我们发现 prometheus.yml 是它的配置文件:
msg="Start listening for connections" address=0.0.0.0:9090
说明prometheus的端口为: 9090
访问http://prometheus_IP:9090
5、prometheus与exporter集成
修改prometheus.yml:vi prometheus.yml
yml文件的两个特别重要的语法: 缩进(对齐)、 key的冒号后面,有一个空格;
在prometheus.yml文件后面加入以下内容:
# job_name
可以自定义
- job_name: ‘node_exporter’
static_configs: - targets: [‘192.168.2.131:9100’,‘nodeexporter_IP:9100’]
然后,保存,退出;【注意换成自己的IP】
6、启动prometheus
./prometheus
报错:
解决办法:
杀掉prometheus的进程,再执行即可;
7、grafana的界面配置
添加prometheus数据源:
type选择 prometheus
URL:http://prometheus_ip:9090
引入模板:12884, 选择数据源:
三、常见问题【grafana+prometheus+exporter配置】
1、时间差
监控平台机器 和 被测试服务器 在不同机器上,这两台机器之间如果有时间差,
如果在监控平台上,看不到数据,可以去修改右上角的 时间范围为 大于8小时;
或者,时间错误就同步下时间:
查看当前时间:date
安装ntpdate:yum install ntpdate -y
通过外部的服务同步时间:ntpdate us.pool.ntp.org | logger -t NTP
2、监控界面中没有JOB、instance
可能是yml配置文件问题、数据源配置有问题、 import模板的时候你的数据源选择上有问题;
3、note_exporter、grafana和prometheus没有启动成功
note_exporter启动校验网址:http://192.168.2.131:9100/metrics
grafana校验网址:http://192.168.31.224:3000
prometheus校验网址:http://192.168.31.224:9090
注:ip地址都换成自己的;
4、虚拟机设置
若使用虚拟机,两个虚拟机的网络适配器的网络连接:NAT模式;
5、windows平台监控
windows版本的exporter下载:
https://github.com/prometheus-community/windows_exporter/releases
windows版本的模板ID:10467;Linux版本的模板ID:12884;
windows的node端口:9182;Linux版本的node端口:9100;
注:windows平台的监控除了exporter工具不一样【直接启动运行就可以】,模板ID不一样【导致在grafana平台引入的模板不一样】,端口不一样【导致在prometheus.yml文件中配置的端口不一样】,其他与Linux平台的监控配置基本相似;
windows_exporter运行成功后,可以在Windows服务控制台看到创建的服务:
也可以访问:http://YouExporter_IP:9182/metrics进行验证;
6、windows平台模板10467问题
特别注意:windows版本的模板【模板ID:10467】:网络使用率、Network discarded/error packets这两个模块没数据,使用Edit编辑查询语句:
网络使用率:
修改前:
(irate(windows_net_bytes_total{
job=~"$job",instance=~"$instance",nic!~'isatap.*|VPN.*'}[5m]) * 8 / windows_net_current_bandwidth{
job=~"$job",instance=~"$instance",nic!~'isatap.*|VPN.*'}) * 100
修改后:
(irate(windows_net_bytes_total{
job=~"$job",instance=~"$instance",nic!~'isatap.*|VPN.*'}[5m]) * 8 / windows_net_current_bandwidth_bytes{
job=~"$job",instance=~"$instance",nic!~'isatap.*|VPN.*'}) * 100
Network discarded/error packets【A、B两个地方都得改】:
修改前:
irate(windows_net_packets_outbound_discarded{
job=~"$job",instance=~"$instance", nic!~'isatap.*|VPN.*'}[5m]) + irate(windows_net_packets_outbound_errors{
job=~"$job",instance=~"$instance"}[5m])
修改后:
irate(windows_net_packets_outbound_discarded_total{
job=~"$job",instance=~"$instance", nic!~'isatap.*|VPN.*'}[5m]) + irate(windows_net_packets_outbound_errors_total{
job=~"$job",instance=~"$instance"}[5m])
7、grafana+prometheus+exporter+Linux/Windows展示效果
最后,就可以看到grafana监控平台的展示效果了;
【Linux:模板ID:12884】:
【Windows:模板ID:10467】:
转载:https://blog.csdn.net/testleaf/article/details/128746669