参照: https://www.cnblogs.com/juno3550/p/15846151.html
时序数据库, 主要用于储存时间戳为主键的时间序列信息, 提供高性能的储存和检索
维度 | InfluxDB | Mysql | Mongo |
---|---|---|---|
储存数据 | TimeSeries Data | 表格数据 | Json数据 |
结构 | database-measurement | database-table | database-collection |
列 | timestemp(唯一主键)、tag(带索引的,非必须,分类依据)、field(数据, 不带索引) | column | 无 |
Prometheus(官网)是一套开源的监控&报警&时序数据库的组合,适合监控 Docker 容器,服务器及程序
graph LR
监控对象对应的Endpoint--端口交互-->监控-->存储数据
监控-->预警
graph LR
Jmeter--BackendListener收集客户端数据-->InfluxDB-->Grafana
Server--nodeExporter收集服务器数据-->Prometheus-->Grafana
部署容器
docker network create grafana
docker run -d --name=influxdb --network grafana -p 8086:8086 -v /home/loadTest/influxdb/:/home/loadTest/influxdb influxdb:1.7.10 # -V部分需要自定义
docker exec -it influxdb influx
数据库设置
create database jmeters;
use jmeters;
docker run -d --name grafana --network grafana -p 3000:3000 grafana/grafana:9.5.3 # 不要直接拉latest, 会拉取旧版本
# 部署容器时指定配置文件*
docker run -d --name grafana --network grafana -p 3000:3000 -e "GF_USERS_DEFAULT_LANGUAGE=zh-CN" grafana/grafana # 我这里尝试将语言改成中文,配置文件改成功了,但是页面还是英文
配置文件示例:https://github.com/grafana/grafana/blob/main/conf/defaults.ini 格式 -e “GF__ = $自定义值”, 一切都应为大写,“.”和“-”应替换为“_”。
登录
登录grafana, setting模块选择InfluxDB进行配置以下内容后, 点击save& test
manage模块点击import
设置刷新频率
添加Backend Listener 监听器
进行Jmeter压测, 查看grafana数据展示
docker run -d --name prometheus --network grafana -p 9090:9090 -v /home/loadTest/prometheus/prometheus.yml:/home/loadTest/prometheus/prometheus.yml prom/prometheus:v2.16.0 --config.file=/home/loadTest/prometheus/prometheus.yml
Prometheus登录测试
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz # 注意这是2022年的教程,可以到github下载最新版 -- https://github.com/prometheus/node_exporter
tar -zxvf node_exporter-1.6.0.linux-amd64.tar.gz
cd node_exporter-1.6.0.linux-amd64/
nohup ./node_exporter --web.listen-address=":9102" & # 我再这里不限定了监听IP
vim /home/loadTest/prometheus/prometheus.yml
---- 添加
# node_exporter config
- job_name: "235 node_exporter"
static_configs:
- targets: ["192.168.2.235:9102"] # 设置监听监听IP
docker restart prometheus
访问测试
Grafana, 点击设置新增DataSource->Prometheus
Create->Import
如果要更换dashboard,要注意模板和grafana的兼容问题
参照: https://www.cnblogs.com/zqyx/p/10107233.html
修改grafana配置文件 : 以Docker方式安装的Grafana如何修改配置 - 初心 (mayanpeng.cn)
安装docker : centos7安装Docker详细步骤(无坑版教程)-腾讯云开发者社区-腾讯云 (tencent.com)
权限隔离: https://www.jianshu.com/p/aac0cef668e6
InfluxDB Sql
show databases;
use jmeters;
SELECT * FROM jmeter ORDER BY time DESC LIMIT 10 offset 100; # 查询数据库跳过100个显示10条数据
DROP MEASUREMENT jmeter;
用到的linux命令
lsof -i:9090 # 查看端口占用
sudo firewall-cmd --zone=public --add-port=9102/tcp --permanent
sudo firewall-cmd --reload # 开放防火墙端口