Docker实现Prometheus监控redis+grafana图形展示
文章目录
- 首先在系统中安装Docker
- 安装成功后查看版本:
- 设置镜像源
- 重启Docker:
- 随后拉取Prometheus的Docker镜像:
- 监控redis例子
- 拉取镜像
- 启动redis:
- 启动redis状态收集器
- 运行docker ps 查看服务:
- 随后创建prometheus的配置文件
- 配置下面代码:
- 启动Prometheus
- 浏览器查看界面
- 重启prometheus服务:
- 使用grafana图形化
- 导入数据:
- 选择prometheus
- 配置prometheus地址和端口:
- 导入redis 模板
- 随后就能以图形化界面来监控服务了:
本次我们利用Docker和Prometheus以及周边的其他生态来搭建一套属于自己的全时监控告警平台,系统采用Centos7.6。
首先在系统中安装Docker
#升级yum
sudo yum update
#卸载旧版本docker
sudo yum remove docker docker-common docker-selinux docker-engine
#安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
#安装docker
sudo yum install docker-ce#启动服务
sudo systemctl start docker
安装成功后查看版本:
[root@instance-53r3vagg tmp]# docker -v
Docker version 19.03.14, build 5eb3275d40
设置镜像源
在下载镜像之前,我们需要设置一下国内源,用来提高下载速度,执行sudo vim /etc/docker/daemon.json 命令创建新文件,并添加如下代码
{"registry-mirrors": ["https://d7grpode.mirror.aliyuncs.com"]
}
重启Docker:
sudo systemctl restart docker
随后拉取Prometheus的Docker镜像:
docker pull prom/prometheus:latest
监控redis例子
这里我们以监控Redis数据库为例子,所以还需要拉取redis和redis状态收集器两个镜像:
拉取镜像
docker pull redis
docker pull oliver006/redis_exporter:latest
分别启动redis和redis状态收集器:
启动redis:
docker run -d --name redis -p 6379:6379 redis
启动redis状态收集器
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter:latest --redis.addr redis://192.168.0.1:6379
这里redis_exporter监听服务器上的redis服务,而redis_exporter运行在9121端口上,注意redis的地址写服务器的公网ip。
运行docker ps 查看服务:
[root@instance-53r3vagg tmp]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51349113892a redis "docker-entrypoint.s…" 52 minutes ago Up 52 minutes 0.0.0.0:6379->6379/tcp redis
0ffcf81ea7ff oliver006/redis_exporter:latest "/redis_exporter --r…" About an hour ago Up About an hour 0.0.0.0:9121->9121/tcp redis_exporter

随后创建prometheus的配置文件
vim /tmp/prometheus.yml
配置下面代码:
scrape_configs:# The job name is added as a label `job=` to any timeseries scraped from this config. - job_name: 'redis'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5sstatic_configs:- targets: ['120.48.20.113:9121']
这里每隔5秒就获取一下服务运行信息,注意服务器地址要写公网ip,随后启动prometheus服务
启动Prometheus
docker run -d -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest
浏览器查看界面
此时,prometheus就运行在9090端口上,访问一下:http://192.168.0.1:9090/targets

就可以看到redis服务正在运行,与此同时,也可以查询一些参数,比如内存占用:

重启prometheus服务:
#把宿主机Prometheus配置文件挂载镜像中
docker run -d -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml -v /tmp/redis.rules:/etc/prometheus/redis.rules prom/prometheus:latest
使用grafana图形化
整个过程滴水不漏,当然了,如果你觉得prometheus的监控界面过于简陋,可以使用Grafana将监控数据可视化:
docker run -d --name prom-dashboard -p 3000:3000
访问地址:http://192.168.0.1:3000/
默认账号密码是admin/amdin。
导入数据:

选择prometheus

配置prometheus地址和端口:

导入redis 模板
访问地址
https://grafana.com/grafana/dashboards
点击Download,下载json文件
随后就能以图形化界面来监控服务了:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
