无监控,不运维 | Google Cloud Monitoring in grafana 案例

作者:MeshCloud 公有云架构师 陈博文

引言

“无监控,不运维”。

监控是运维工作中非常重要的一个环节,一个趁手好用的可视化监控工具能使工作更加快捷、便利。

使用Google Cloud 的同学对Google Cloud Monitoring这款功能丰富的运维工具并不陌生,不管是GCP,还是AWS,它都能提供相应的工作上的帮助。

而Grafana也以其开源、易用、灵活和好看的UI界面获得了很多运维工程师的青睐。

这篇文章就结合这两款强大的工具,来对Google Cloud Egine做一个监控案例的分享。

整体架构

有两种方法:

方法一:Grafana使用Cloud Monitoring数据源

方法二:Grafana使用Prometheus数据源

技术简介

一、Google Cloud Monitoring

可以用于Google Cloud 也可以用于AWS的运维组件,可用于日志和监控指标的收集

参考链接:
https://cloud.google.com/monitoring/docs

二、Prometheus

本文架构的第二种方法使用的是stackdriver_exporter

stackdriver_exporter:

A Prometheus exporter for Google Stackdriver Monitoring metrics. It acts as a proxy that requests Stackdriver API for the metric’s time-series everytime prometheus scrapes it.

参考链接:
https://github.com/prometheus-community/stackdriver_exporter#google-stackdriver-prometheus-exporter

三、Grafana

主要是配置数据源

1、配置以Google Cloud Monitoring 为Data Source

2、配置以Prometheus为Data Source

目标

最终用Grafana来可视化GCE的数据指标

准备工作

方法一:Grafana使用Cloud Monitoring数据源

1、权限相关

Service Account :

role:cloud monitoring viewer

Api Enable :

  • Monitoring API
  • Cloud Resource Manager API

2、安装ops-agent

①登录控制台–Monitoring

②选中需要监控的VM实例—点击install agent— 使用cloud shell — 打开后回车—安装完毕

无监控,不运维 | Google Cloud Monitoring in grafana 案例

③查看状态:ops-agent √ 安装完毕

方法二:Grafana使用Prometheus数据源

1、权限相关

同上

2、下载stackdriver_exporter(二进制)

wget https://github.com/prometheus-community/stackdriver_exporter/releases/download/v0.12.0/stackdriver_exporter-0.12.0.linux-amd64.tar.gz
tar -xf stackdriver_exporter-0.12.0.linux-amd64.tar.gz
cd stackdriver_exporter-0.12.0.linux-amd64

实施步骤

方法一:

1、配置Data Source

①添加data sources时候有两种authentication:JWT file 和default

JWT:控制台下载获取json文件

无监控,不运维 | Google Cloud Monitoring in grafana 案例

Default:是指如果grafana部署在这台需要监控的vm上就用Default type

无监控,不运维 | Google Cloud Monitoring in grafana 案例

②upload json

③save & test

2、创建一个panel

http://35.240.228.159:3000/dashboard/new?orgId=1

无监控,不运维 | Google Cloud Monitoring in grafana 案例

详细配置参考:

https://grafana.com/docs/grafana/latest/datasources/google-cloud-monitoring/#metric-queries
方法二:

1、启动stackdriver_exporter

cd stackdriver_exporter-0.12.0.linux-amd64.tar.gz
nohup ./stackdriver_exporter <flag>

2、flag

https://github.com/prometheus-community/stackdriver_exporter#flags
FlagRequiredDefaultDescription
google.project-idNoGCloud SDK auto-discoveryComma seperated list of Google Project IDs
`monitoring.metrics-type-prefixesYesComma separated Google Stackdriver Monitoring Metric Type prefixes (see example and available metrics)
monitoring.metrics-intervalNo5mMetric’s timestamp interval to request from the Google Stackdriver Monitoring Metrics API. Only the most recent data point is used
monitoring.metrics-offsetNo0sOffset (into the past) for the metric’s timestamp interval to request from the Google Stackdriver Monitoring Metrics API, to handle latency in published metrics
monitoring.filtersNoFormatted string to allow filtering on certain metrics type
web.listen-addressNo:9255Address to listen on for web interface and telemetry
web.telemetry-pathNo/metricsPath under which to expose Prometheus metrics

3、验证

curl 127.0.0.1:9255/metrics

4、配置Prometheus修改配置文件

#添加一个组
...
- job_name: stackdriver
  honor_timestamps: true
  scrape_interval: 15s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  follow_redirects: true
  static_configs:
  - targets:
    - localhost:9255
    labels:
      instance: spoton-project
      
#使配置生效
kill -HUP PID

5、查看prometheus 是否pull到了

无监控,不运维 | Google Cloud Monitoring in grafana 案例

6、配置Grafana

无监控,不运维 | Google Cloud Monitoring in grafana 案例

验证

方法一:

无监控,不运维 | Google Cloud Monitoring in grafana 案例

方法二:

无监控,不运维 | Google Cloud Monitoring in grafana 案例
无监控,不运维 | Google Cloud Monitoring in grafana 案例

发表评论

您的电子邮箱地址不会被公开。