最近由于工作上的安排,我们产品的运维工作也落到了我头上,接手发现很多运维工作方式比较原始,尤其时在监控方面的欠缺,使得我们处于很被动的局面,所以想着搭建一套监控系统;在做监控平台选型时,比来比去决定还是用prometheus来搭建我们的监控平台,基于我们做这个决定的原因主要有如下几点:
- 社区活跃,很多人都在用
- prometheus属于一站式监控告警平台,依赖少,功能齐全。
- prometheus支持对云或者容器的监控,其他系统主要对主机的监控。
- 扩展能力比较好,对于后续我们的服务的自定义监控指标集成比较容易。
下面开始搭建:
prometheus :github地址
搭建Prometheus
查阅资料的时候发现很多同学都时直接部署的,这里我推荐用容器的方式部署,这样可以更简洁和便于管理。
- 部署服务器安装docker,这里不再赘述docker的安装方式,网上有很多。
- 拉去Prometheus镜像
docker pull prom/prometheus
- 准备prometheus.yml,这个配置文件是Prometheus的配置文件,我们先准备好,启动Prometheus时会用到。
vim prometheus.yml
global:
# 全局默认抓取间隔
scrape_interval: 15s
rule_files:
- "*rule.yml"
scrape_configs:
- job_name: 'prometheus'
# 本任务的抓取间隔,覆盖全局配置
scrape_interval: 5s
static_configs:
# 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
- targets: ['localhost:9090']
- 启动Prometheus服务,并且把prometheus.yml所在的目录挂载进去。
docker run --name prometheus -d -p 9090:9090 -v /data/prometheus/:etc/prometheus/ prom/prometheus