作者: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 — 打开后回车—安装完毕
③查看状态: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文件
Default:是指如果grafana部署在这台需要监控的vm上就用Default type
②upload json
③save & test
2、创建一个panel
http://35.240.228.159:3000/dashboard/new?orgId=1
详细配置参考:
方法二:
1、启动stackdriver_exporter
cd stackdriver_exporter-0.12.0.linux-amd64.tar.gz
nohup ./stackdriver_exporter <flag>
2、flag
Flag | Required | Default | Description |
google.project-id | No | GCloud SDK auto-discovery | Comma seperated list of Google Project IDs |
`monitoring.metrics-type-prefixes | Yes | Comma separated Google Stackdriver Monitoring Metric Type prefixes (see example and available metrics) | |
monitoring.metrics-interval | No | 5m | Metric’s timestamp interval to request from the Google Stackdriver Monitoring Metrics API. Only the most recent data point is used |
monitoring.metrics-offset | No | 0s | Offset (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.filters | No | Formatted string to allow filtering on certain metrics type | |
web.listen-address | No | :9255 | Address to listen on for web interface and telemetry |
web.telemetry-path | No | /metrics | Path 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到了
6、配置Grafana
验证
方法一:
方法二: