利用Prometheus和Grafana监控SimpleBank并设定告警

从服务和基础设施上收集的度量指标发送到能够聚合和展示这些数据的系统上。这个系统会利用所收集的度量指标来提供告警功能。为了达到这一目的,使用Prometheus来收集度量指标并使用Grafana来展示这些数据。

1)Prometheus是一个开源的系统监控和告警工具箱,最初由SoundCloud公司开发,现在是一个不依赖于任何公司的独立开源项目。

2)Grafana是一款能够在Graphite、InfluxDB和Prometheus等各种度量指标数据源之上构建可视化仪表盘的工具。

Prometheus使用前提是已经有组件实现了度量指标并且提供Prometheus所需的格式。

同时使用Prometheus和StatsD两种度量指标来展示如何让两种不同的度量指标收集协议共存。StatsD是基于数据推送的工具,而Prometheus是基于数据拉取的工具,使用StatsD的系统会将数据推送到采集服务上,而Prometheus会从源系统中拉取数据。

将重点放在Prometheus的配置和Grafana上创建仪表盘,之后开始监控各个服务和事件队列。

Prometheus配置

global:

  scrape_interval: 5s ---  设置Prometheus抓取所配置的目标度量指标的时间间隔

  evaluation_interval: 10s

  external_labels:

      monitor: 'simplebank-demo'

alerting:

  alertmanagers:

  - static_configs:

    - targets:

scrape_configs: --- 用来配置要抓取的目标

  - job_name: 'statsd_exporter' ---  作为抓取配置的任务标签

    static_configs:

      - targets: ['statsd-exporter:9102']

        labels:

          exporter: 'statsd'

    metrics_path: '/metrics'

  - job_name: 'rabbitmq'

    static_configs:

      - targets: ['rabbitmq:15672'] ---  目标主机和度量指标途径拼接到一起可以确定收集度量指标所用的URL。如果默认使用http,URL是“http://rabbitmq:15672/api/metrics”

        labels:

          exporter: 'rabbitmq'

    metrics_path: '/api/metrics'

设置Grafana

为了在Grafana系统中接收度量指标,需要设置数据源。首先,启动Grafana,可以通过3900端口访问Grafana。登录界面,输入用户名和密码都是admin。

登录成功后,点击Add Data Source选项,进入Edit data source界面。为了在Grafana中配置一个Prometheus数据源,需要将Type设置为Prometheus,然后插入Prometheus服务实例的URL,例如http://prometheus:9090。

单击Save & Test按钮,会立刻收到数据源状态的反馈信息。如果Prometheus运行正常,就可以开始使用Grafana来为收集的度量指标搭建仪表盘了。

监控基础设施度量指标:事件队列

为了配置一套监控RabbitMQ的仪表盘,需要用到json格式的配置文件。在源代码库中,找到一个grafana文件夹,RabbitMQ Metrics.json文件记录了仪表盘的布局以及所要收集的度量指标的配置信息。导入该文件后立刻便拥有了一套监控的RabbitMQ仪表盘。

导入路径

页面展示了一个监控服务器运行状态的监视器,上面会显示up或者down,此外页面上以图表形式展示了每台主机上的交换(exchange)数、通道(channel)数、消费者(consumer)数量、连接数(connection)、队列数(queue)、每台主机的消息量以及每个队列的消息量。

汇总:grafana支持某个基础设施度量指标模板导入直接监控。

疑问点:grafana怎么知道哪个基础设施?

告警设置

前面已经在收集和存储度量指标了,在指定度量指标的数值背离了所谓的正常值可以发送告警信息。这可以是指定请求的处理时间增大,也可以是错误率升高,还可以是某个计数器异常增加等等。

通过网关服务提交出售订单后,会发生许多事情。这会触发许多事件消息,系统的瓶颈在于market服务处理订单发布事件的速度。在market place order队列中的消息量超过某个阈值时,设置一个告警来发送一条消息。可以配置多种通知方式:电子邮件、slack、pagerduty、pingdom、webhook等。

告警系统中设置webhook通知,每次消息队列中的消息数超过100时,就会将告警消息通知给webhook。

同样可以使用Grafana来设置告警,并且这些告警会展示在与之相关的面板上。既可以接收告警通知,又可以查看面板上之前的告警记录。

首先添加一个通知渠道以传播告警事件。

1)单击屏幕左上角的Grafana图标。

2)在Alerting菜单中,选择Notification  Channels。

3)输入渠道的名称并选择类型为webhook,然后选中Send on All Alerts选项。

4)输入接收告警服务的URL。可以使用告警服务的URL,并监听POST请求。

5)单击Send Test按钮验证该功能是否运行正常。如果正常,单击Save按钮保存这些修改信息。

在创建的RabbitMQ仪表盘下的消息队列面板上配置告警。单击Messages/Queue面板的标题会弹出一个菜单,然后选择Edit。就可以在Alert选项卡下创建告警了

在Alert Config部分,添加告警名称以及期望条件的检查频率以30s为例,接下来设置告警条件(condition)。将告警设置为在最近1min内一旦从队列A中搜集的值超过100就通知用户。

在Alert选项卡下,可以查看所配置告警的历史记录。

至此已经配置了一套收集度量指标数据的监控基础设施,这些数据包括各个服务发送的数据以及这些服务进行异步通信时所使用的核心组件(消息队列的数据)。


摘取自 摩根·布鲁斯和保罗·A.佩雷拉的《微服务实战》

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容