Docker实现Prometheus监控redis+grafana图形展示


本次我们利用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=<job_name>` 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: 5s
    static_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文件

随后就能以图形化界面来监控服务了:

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 如何使用prometheus监控mysql? 使用prometheus监控mysql需要安装一个名为mysqld_exporter的exporter,该exporter可以在MySQL实例上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询MySQL指标,如查询数据库连接数、查询响应时间、查询缓存使用情况等。 2. 如何使用prometheus监控redis? 使用prometheus监控redis需要安装一个名为redis_exporter的exporter,该exporter可以在Redis实例上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询Redis指标,如查询内存使用情况、查询命令执行次数、查询客户端连接数等。 3. 如何使用prometheus监控docker? 使用prometheus监控docker需要安装一个名为node_exporter的exporter,该exporter可以在docker主机上运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询docker主机指标,如查询CPU使用情况、查询内存使用情况、查询磁盘空间等。 4. 如何使用prometheus监控k8s集群的过程? 使用prometheus监控k8s集群需要安装一个名为kube-state-metrics的exporter,该exporter可以在k8s集群中运行并公开metrics。你可以在Prometheus配置文件中添加此exporter的配置,并使用PromQL查询语言查询k8s集群指标,如查询pod数量、查询节点状态、查询资源使用情况等。 5. 如何使用prometheus自动发现功能? prometheus自动发现功能可以通过配置文件中的文件SD(file_sd_config)或kubernetes SD(kubernetes_sd_config)进行配置。其中,文件SD允许你从文件中读取目标列表,而kubernetes SD允许你通过API服务器自动发现k8s集群中的目标。你可以在Prometheus配置文件中添加这些配置,并在Prometheus中启用自动发现功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值