# Prometheus+Grafana+Mongodb数据可视化
我们的目的是搭建
实现mongodb中的数据可视化。
# 安装Grafana
利用工具安装
brew update //更新brew工具,确保安装软件最新版本
安装最新版本
brew install grafana
之后运行
brew services start grafana
的界面默认端口是3000,因此在浏览器地址输入本地(这里的192.168.19.178是我的地址,应该设置为自己的地址)
http://192.168.19.178:3000
进入登陆界面,此时主界面为
的默认用户名和密码均为,输入之后点击确定就可以进入的控制台页面
到此为止安装完成
# 安装MongoDB
为了节省资源和方便配置,选择用来搭建
从里 下来 的镜像
docker pull mongo
之后运行即可
docker run --name mydocker -p 27017:27017 -d mongo --auth
进入中,给数据库增加一个用户(登陆使用)
use admin
db.createUser({user:'root',pwd:'root',roles:[{role:'root',db:'admin'}]})
PS:这里最好重启一下,使新配置的用户名生效
到此安装完成
# 安装Prometheus
为了节省资源和方便配置,选择用来搭建
从里 下来 的镜像
docker pull prom/prometheus
在本地新建一个自己的的配置文件,假设放在桌面的文件夹中,文件内容为
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'mongo1'
static_configs:
- targets: ['192.168.19.178:9001']
文件中,最后一部分代表了所监控的内容的信息,需要在这个地方配置要监听的端口
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'mongo1'
static_configs:
- targets: ['192.168.19.178:9001']
之后,在中运行
docker run -d --name prometheus -p 9090:9090 -v ~/Desktop/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
的端口为9090,在浏览器中输入
http://192.168.19.178:9090
可以进入的界面中
可以看到开启成功,点击页面中的可以看到所配置的监听节点
当未将与真正连接时,节点的显示为红色的
到此安装配置完成
# 安装Mongodb_exporter
真正将与连接的是,这个东西就像一个桥梁,用户在中进行了什么操作,会先告诉,之后再告诉。
为什么这么麻烦搞一个中间人?是因为的默认数据源不包括,所以需要将作为数据源,用作为的输入端。而与之间的连接需要。
同样在中安装
从里 下来 的镜像
docker pull prom/mongodb_exporter
之后运行它(在这里我进行了一个端口映射,为了跟我前面配置的监听的端口对应,因此设置了端口为9001)
docker run -d --name exporter -p 9001:9104 prom/mongodb_exporter --mongodb.uri mongodb://root:root@192.168.19.178:27017
这时就配置完了,正式将与连接起来。
现在进入的界面内,点击页面中的可以看到已经由改为了
到此为止
已经调通。
# 连接Prometheus和Grafana
再次进入到中
- 首先配置数据源
配置完后,点击绿色按钮,会提示配置成功
- 添加专用可视化模版,在导入中,输入2583,之后配置数据源,点击确认
- 之后会出现图表模板
但是我们会发现,what???没有数据??难道是配置错了??no no no
- 重新写搜索条件
经过多次测试后,发现其实是新版软件中的语句已经变了。
于是我们修改它默认的语句。随便点一个图表的标题(比如),然后点击edit,会进入一个图表的具体配置页面,如下所示
可以看到,这条查询语句
然后我们把它修改为
rate(mongodb_mongod_op_counters_total{instance=~"192.168.19.178:9001"}[$interval])然后数据出现了
发现它默认的语句中的要修改为自己的数据地址,然后前面的查询语句中需要添加一个单词(自己手动输入查询语句的时候会有提示~)
之后配置一下其他的图表,tada,整个页面就出现效果了~
到此,整个环境就搭建完成了~
完结~
🎉🎉🎉🎉🎉