step by step,实现自定义监控脚本

简介: # 背景 有几个客户在使用自定义监控,通过脚本方式上报数据时,反馈我们的文档不细致,对于aliyuncli的配置不熟,对于自定义指标的部分字段的含义不理解。 因此有必要再整理一个stepbystep的文档,描述清楚每一步的具体含义。 希望能够根据这个文档,能够快速的完成一个自定义的监控脚本。 # 前置条件 * 你需要有一个阿里云官网账号 # 生成ak(accessk

背景

有几个客户在使用自定义监控,通过脚本方式上报数据时,反馈我们的文档不细致,对于aliyuncli的配置不熟,对于自定义指标的部分字段的含义不理解。

因此有必要再整理一个stepbystep的文档,描述清楚每一步的具体含义。

希望能够根据这个文档,能够快速的完成一个自定义的监控脚本。

前置条件

  • 你需要有一个阿里云官网账号

生成ak(accesskeyid, accesskeysecrret)

建议使用子账号accesskeyid, accesskeysecrret,安全性更好。

  1. 创建子账号
    image.png
  2. 为子账号生成accesskeyid, accesskeysecrret
    image.png
  3. 为子账号授权:cloudmonitorfullaccess
    image.png

安装aliyuncli工具

前提条件

• 系统要求:Linux、UNIX 或 Mac OS。
• 环境要求:已安装 Python 2.7.x。

安装 Python

• 若您的设备已安装 Python 2.7.x 版本,请跳过此步骤。
• 若您的设备没有安装 Python 2.7.x 版本,请在命令行窗口中执行下列命令,安装 Python。
• 注意:请确保您的设备中已安装了 wget。

1. wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz (或者通过其他方式下载后放在某个路径下)
2. tar -zxvf Python-2.7.8.tgz
3. cd Python-2.7.8
4. ./configure
5. make
6. sudo make install

安装 pip

• 若您的设备已安装 pip,请跳过此步骤。
• 若您的设备没有安装 pip,在命令行窗口中执行如下命令,安装 pip。

1. curl "https://bootstrap.pypa.io/get-pip.py" -o "pip-install.py"
2. sudo python pip-install.py

• 系统显示如下类似信息,则表明安装成功。
1. Successfully installed pip-7.1.2 setuptools-18.7 wheel-0.26.0

安装命令行工具

如果系统内的 pip 版本过低,会造成 CLI 安装出错。用户可以使用如下指令先对 pip 软件进行升级后再进行相关操作。请使用 pip 7.x 或更高版本。若已是最新版本的 pip,请跳过此步骤。

在命令行窗口中执行如下命令,升级 pip。
1. sudo pip install -U pip

系统显示如下类似信息,则表明升级成功。
1. Successfully uninstalled pip-7.1.2
2. Successfully installed pip-8.1.2

2. 执行如下命令,安装阿里云命令行工具。
1. sudo pip install aliyuncli

系统显示如下类似信息,则表明安装成功。
1. Successfully installed aliyuncli-2.1.2 colorama-0.3.3 jmespath-0.7.1


    

配置命令行工具

~ sudo aliyuncli configure
Aliyun Access Key ID [*******************a]: youraccesskeyid
Aliyun Access Key Secret [*******************b]: youraccesskeysecret
Default Region Id [cn-hangzhou]: cn-hangzhou
Default output format [json]: json

安装云监控sdk

Windows安装方式:

在命令行窗口输入如下命令

1. cd C:\Python27\Scripts
2. pip install aliyun-python-sdk-cms

如果需要更新SDK,则使用如下命令:

1. pip install --upgrade aliyun-python-sdk-cms

Linux 安装方式:

1. sudo pip install aliyun-python-sdk-cms

如果需要升级SDK,则使用如下命令:

1. sudo pip install —upgrade aliyun-python-sdk-cms

上报数据

上报自定义事件数据

使用PutEvent接口。

Windows上报示例:

1. aliyuncli.exe cms PutEvent --EventInfo "[{'content':'helloworld','time':'20171013T170923.456+0800','name':'ErrorEvent','groupId':'27147'}]"

Linux 上报示例:

1. aliyuncli cms PutEvent --EventInfo "[{'content':'helloworld','time':'20171023T180923.456+0800','name':'ErrorEvent','groupId':'27147'}]"

上报成功后,返回200状态码

1. {
2. "Code":"200"
2.  }

上报自定义指标数据

使用PutCustomMetric接口

Linux 上报示例:

 1. aliyuncli cms PutCustomMetric --MetricList "[{groupId': 101,'metricName': 'hearteate','dimensions': {'name': '127.0.0.1','sex': 'hosta'},'type': 0,'values': {'value': 10.5}}]"

参数解释:

1. groupId,就填你创建的$groupid,   如果没有分组,也可以直接填入0,表示没有分组。
2. metricName是你自己命名的一个指标的名称。  
3. dimensions是一组{"K1":v1,"k2":v2},也是一组json结构的tag, 用来描述指标的维度或者属性,根据业务填写, 也可以为空, 比如,如果metricName:heartbeate(一个人的心跳), 那么dimensions应该是用来描述人是谁,  {'name':'waitaminitue','sex':'male'},也可以{'name':'waitaminitue'} , 也可以{'id':'370283xxxxxxxx'}。具体根据业务确定。每组不同的dimensions会形成一个时间序列,即形成这个指标的一条线。
4. type:0,  表示是原始数据上报,这个不用动,  
5. value:就填具体的心跳的次数。
6. 整个MetricList是一个json格式的string字符串,需要由""双引号包括,里面的key需要由''包括。

上报成功后,返回200状态码:

1. {
2. "Code":"200"
3. }

错误编码

错误代码 含义
200 正常
400 客户端请求中的语法错误
403 校验失败、限速、没有授权
500 服务器内部错误

通过cron定时执行脚本。

sudo crontab -e
添加以下到cron里,每分钟执行一次。
* * * * * heartbeate.sh 

参考

自定义指标监控详细介绍:

* https://help.aliyun.com/document_detail/63767.html?spm=a2c4g.11186623.6.626.efTsCt

自定义事件监控详细介绍:

* https://help.aliyun.com/document_detail/60724.html?spm=a2c4g.11186623.6.573.FCla0R

云监控官网地址:

* https://www.aliyun.com/product/jiankong

云监控自定义监控优势:

• 开箱即用,不需要安装zabbix,
• 不需要注册,直接上报
• 上报指标支持按业务分组,
• 支持对指标配置大屏和报警,
• 自定义指标可以和其他的基础监控一起,形成关联性分析,更利于故障分析定位。
目录
相关文章
|
4月前
|
运维 Kubernetes Devops
云效产品使用报错问题之flow step publish 新的镜像提示: step sign 已被占用。如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Prometheus Cloud Native 数据可视化
Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例
Linkerd 2.10(Step by Step)—4. 如何配置外部 Prometheus 实例
135 0
|
SQL 机器学习/深度学习 人工智能
验证PAI Designer作业数据面板查看量限制 Quick Start
PAI Designer(Studio 2.0)是基于云原生架构Pipeline Service(PAIFlow)的可视化建模工具, 提供可视化的机器学习开发环境,实现低门槛开发人工智能服务。同时,系统提供丰富且成熟的机器学习算法,覆盖商品推荐、金融风控及广告预测等场景,支持基于MaxCompute、PAI-DLC、Flink等计算资源进行大规模分布式运算,可以满足您不同方向的业务需求。在PAI-Studio/Designer任务运行成功后右键查看数据时,面板默然显示前100条数据。本文使用心脏病预测案例的公共数据集使用odps sql来验证一下,以供参考。
196 0
验证PAI Designer作业数据面板查看量限制 Quick Start
|
存储 JSON Prometheus
Linkerd 2.10(Step by Step)—导出指标
Linkerd 2.10(Step by Step)—导出指标
113 0
Linkerd 2.10(Step by Step)—修改代理日志级别
Linkerd 2.10(Step by Step)—修改代理日志级别
167 0
|
Kubernetes 网络协议 Go
Linkerd 2.10(Step by Step)—调试 502s
Linkerd 2.10(Step by Step)—调试 502s
|
监控
Linkerd 2.10(Step by Step)—配置超时
Linkerd 2.10(Step by Step)—配置超时
112 0
|
存储 Kubernetes API
Linkerd 2.10(Step by Step)—安装多集群组件
Linkerd 2.10(Step by Step)—安装多集群组件
168 0
|
监控
Linkerd 2.10(Step by Step)—配置重试
Linkerd 2.10(Step by Step)—配置重试
121 0
|
Kubernetes Java Linux
Linkerd 2.10(Step by Step)—配置代理并发
Linkerd 2.10(Step by Step)—配置代理并发
167 0