Prometheus完整的部署方案+实战实例
Prometheus简介是一套开源的系统监控报警框架。Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix)拥有如下优点
-
易管理性:Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储
-
高效性:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点
-
易于伸缩性:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群
-
丰富的看板:多种可视化图表及仪表盘支持
-
针对容器监控:对docker,k8S监控有成熟解决方案
Prometheus架构图
1 | Prometheus Server: 收集指标和存储时间序列数据,并提供查询接口 |
官方安装说明
1 | https://prometheus.io/docs/prometheus/latest/installation/ |
准备两台服务器
1 | 192.168.106.101 #Prometheus服务端 |
在101服务器创建prometheus.yml主配置文件
1 | # 全局配置 |
下载镜像
1 | docker pull prom/prometheus |
开启内核路由转发
1 | echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf |
启动镜像,将主配置文件挂载到容器内
1 | docker run -d --name=prometheus -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus |
http://192.168.106.101:9090/ #访问该地址,出现一个简单ui界面,说明部署成功
实战一:监控一个容器服务(常用的监控指标有: 内存,CPU,硬盘,网络,状态)
非交互获取容器的监控指标
1 | docker stats --no-stream lnmp_nginx |
cAdvisor (Container Advisor) 用于收集正在允许的容器资源使用和性能信息。相当于zabbix-agent一样提供一个数据采集的接口
docker部署cAdvisor:
100被监控服务器安装
1 | docker run -d \ |
访问该地址,就能看到实时采集到的数据
1 | http://192.168.106.100:8080/containers/ |
1 | http://192.168.106.100:8080/metrics #该地址的数据为prometheus识别的数据的接口 |
去101上修改prometheus的配置文件,复制一个job文件,job_name 指名称,targets为cAdvisor服务器地址ip和端口
1 | vim /tmp/prometheus.yml |
1 | docker restart prometheus #重启服务 |
http://192.168.106.101:9090/ 可以看到监控指标说明获取数据成功
101服务器上安装grafana
1 | docker run -d --name=grafana -p 3000:3000 grafana/grafana |
http://192.168.106.101:3000/ #p配置数据源,配置完成点击保存
1 | https://grafana.com/grafana/download #该地址下载grafana模板 |
保存,选择Prometheus数据源后可以看到如下图所示
可以看到100上所有容器都被监控到了,至此监控容器完成!
实战二:监控Linux主机
编写了一个采集linux主机metrics的脚本
1 | cat node_exporter.sh |
运行这个脚本就能监控Linux主机
测试 访问
1 | http://192.168.106.100:9100/metrics |
说明采集信息成功
修改101服务上的配置文件/tmp/prometheus.yml
1 | docker restart prometheus |
检测方法:http://192.168.106.101:9090/classic/targets,up说明采集成功
然后配置grafana仪表盘,本次导入9276模板,和刚才导入模板的方式一致。导入完成即可看到如图所示模板
至此实战监控Linux部署
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小俊丶生活日志!