暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

prometheus开坑,邀你上车

一粒菜鸟 2021-09-27
476


前言


开个新坑,近期会对使用监控系统prometheus的经验做一下记录和总结。欢迎感兴趣的小伙伴多多讨论。今天就先简单讲讲Prometheus的搭建过程。

实操


Prometheus的搭建很简单,官网二进制包下载下来解压之后启动,访问http://127.0.0.1:9090,即可看到prometheus提供的访问界面,是不是简单的一批?


#解压
tar -zxvf prometheus-2.17.1.freebsd-amd64.tar.gz

#
启动
./prometheus


但是打开页面你就会发现,这啥都没有啊,我该去哪里配置监控,去哪里设置触发器,发送告警?对不起,页面上统统没有,官方的界面,你可以理解成是一个各种信息的查看地,所有的配置,基本上所有的配置操作都需要基于prometheus.yml这个配置文件去做,那么我们来看一看这个配置文件都有什么


# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
 
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - alertmanager:9093
 
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
 
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
 
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9090']



  • global部分


    一些公共的参数,比如默认的抓取间隔,超时时间,公共的label之类的


  • alerting


    告警模块,targets里面的alertmanager:9093,你以为是启动Prometheus之后自带的,实际上你需要下载alertmanager的程序包,启动它,这时候你配置的告警规则触发之后,就会发到alertmanager,然后由alertmanager再去处理这些告警去往何处,又是一波配置。。。


  • rule_files


    这里就是刚刚我们想要找的配置告警规则的地方,同样是基于配置文件,在配置文件内配置好相应的规则,然后Prometheus就会根据规则去触发告警


  • scrape_configs


    抓取数据部分配置,它将抓取任务拆分成一个个job,每个job下可以有一个或多个抓取任务,官方配置中给出的是以http方式获取监控指标的方式,也是使用最多的方式,直接访问http://localhost:9090/metrics 可以看到抓取的数据内容


配置文件内容先大概讲到这里,后面会对每一个模块做详细的介绍,下面介绍几个常用的启动参数。


启动
./prometheus --storage.tsdb.retention.time=180d --web.enable-lifecycle --config.file=prometheus.yml

#
 --storage.tsdb.retention.time=180d 数据保存时间
# --web.enable-lifecycle 配置此参数,可以通过调用接口实现配置热加载
# --config.file=prometheus.yml 配置文件位置

配置热加载
curl -XPOST http://localhost:9090/-/reload


总结


以上便是对prometheus的一个简单的介绍,可以发现,promethues的安装和搭建过程很简单,但是基于配置文件去设置各种监控参数,必然会给我们的后期使用和维护带来困难,后面会介绍我在使用promethues的过程中,结合一些其他工具,来优化使用体验的一些尝试。欢迎大家留言讨论!



一粒菜鸟


程序猿非硬核技术文档和崩溃日常



文章转载自一粒菜鸟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论