一切福田,不離方寸,從心而覓,感無不通。

使用docker-compose搭建Prometheus+Grafana监控系统

这是我参与更文挑战的第2天,活动详情查看: 更文挑战

以前所在的公司监控系统主要使用的zabbix,应用级的监控使用的是Pinpoint的二次开发,所以对于Prometheus的了解还只是听闻,尽管很想使用,但是公司的zabbix已经非常成熟,包括后来小米的open-falcon也是没有机会去使用。直到今天我才想着要不测试环境的服务都用Prometheus吧,因现在的公司并没有监控系统,服务挂了以后都是使用的时候才会发现。我个人是比较喜欢docker的,于是就记录分享一下。

角色分配

  • Prometheus 采集数据
  • Grafana 用于图表展示
  • redis_exporter 用于收集redis的metrics
  • node-exporter 用于收集操作系统和硬件信息的metrics
  • cadvisor 用于收集docker的相关metrics

安装Docker

我通常使用如下命令安装最新版的docker

 

安装Docker-Compose

可以使用如下命令安装最新版的docker-compose

 

在安装过程中下载时间需要40分钟,仅仅15M的东西,所以可以通过如下方式手动下载:

 

输出如下:

 

点击下载,完成后上传到服务器上,然后执行如下命令:

 

部署Prometheus和Grafana

新增Prometheus配置文件

首先,创建/data/prometheus/目录,然后创建prometheus.yml,填入如下内容:

 

接着创建node_down.yml,添加如下内容:

 

创建docker-compose

继续在/data/prometheus/目录中创建docker-compose-prometheus.yml,添加如下内容:

 

这里的端口号已经redis-addr请修改成自己的。

启动docker-compose

使用下面的命令启动docker-compose定义的容器

 

输入如下内容即代表启动成功:

 

也可通过docker ps命令查看是否启动成功。如果要关闭并删除以上5个容器,只需要执行如下命令即可:

 

同样也会输出如下日志:

 

打开 http://10.10.170.161:9090/targets ,如果State都是UP即代表Prometheus工作正常,如下图所示:

at2wn-xf7ha

当然,我第一次安装时只有一个是UP的,造成这个问题的主要原因是因为CentOS7的防火墙firewall导致的,将对应的端口添加到防火墙策略里即可:

 

可通过如下命令查看端口策略是否已经生效

 

配置Grafana

打开http://10.10.170.161:3000, 使用默认账号密码admin/admin登录并修改密码后,默认进来是创建数据库的页面,在如下图所示中,选择Prometheus。

art9i-9zivb

选择完成后,打开新的页面,在HTTP的URL中输入Prometheus的地址http://10.10.170.161:9090, 并且将Access由Server更换为Browser,因为跨域的问题Server无法使用。点击保存并测试。

aw9ad-dj17n

现在数据源已经接通了,只剩下漂亮的报表了,在 grafana.com/grafana/das… 中搜索需要的Dashboard模版,并将其json文件下载下来。我本次主要监控docker与redis,于是只需要下载下面两个即可:

在Grafana菜单栏中第一个+号中,选择import

ahrlf-57002

将其上传后,选择prom为Prometheus也就是配置Prometheus是的Name的值,点击保存即可。等待一会儿就会出现如下界面:就说明成功了。

a8nat-psqt4

作者:我是大明哥
链接:https://juejin.cn/post/6969764486701924383
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。