Centos6.10下Open-falcon学习记录(三)——plugin机制使用、无git方案

其实这篇是在Centos6.7下做的,不过没感受到差距

官方文档http://book.open-falcon.org/zh_0_2/philosophy/plugin.html

plugin就是open-falcon上类似于zabbix的用户自定义监控项userparameter的功能,简单来说,你把采集监控数据的可执行文件弄好,在open-falcon前端页面配置一下,他就会按你设置的时间间隔去执行脚本并获取输出作为监控数据

官方给的教程是把可执行文件放在git上,再通过http请求让agent自动去拉取这些文件,但是我的服务器连不上外网,所以写了这篇,其实也没差多少

1 配置agent

open-falcon的agent配置文件要进行修改,使能plugin

因为我们不用git的那些功能,只要改enabled和dir就可以了

"plugin": {
          "enabled": true,  // 使能
          "dir": "./plugin",  // 本地插件目录,相对目录是相对于open-falcon这个脚本的目录而言
          "git": "https://github.com/open-falcon/plugin.git",
          "logs": "./logs"
},

这个dir是相对于open-falcon这个可执行文件而言的(就是我们./open-falcon start agent那个),比如下面这么写,就要建立这样的目录结构

改完重启agent

sudo ./open-falcon restart agent

2 编写监控脚本

只要这个脚本执行后,可以打印出json,json按open-falcon push数据的json格式来就好了

因为每个监控脚本都要写一下怎么把数据封装成open-falcon的json格式很麻烦,所以我写了一个封装脚本,要执行shell命令还是脚本,自己填就好了,支持中文,output里面每一行代表一个自定义监控项,自己要几个写几个,用逗号分隔

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time
import json
import os

def cmd(command):
  return os.popen(command).read().split("\n")[0]

output = [
{"endpoint": "这里写你的endpoint", "tags": "这里写你的tag", "timestamp": int(time.time()), "metric": "这里写你的counter名", "value": cmd(这里写上你要执行的shell命令,或者脚本), "counterType": "GAUGE", "step": 这里写监控周期},
{"endpoint": "这里写你的endpoint", "tags": "这里写你的tag", "timestamp": int(time.time()), "metric": "这里写你的counter名", "value": cmd(这里写上你要执行的shell命令,或者脚本), "counterType": "GAUGE", "step": 这里写监控周期}
]

print json.dumps(output, ensure_ascii=False)

脚本要用数字加下划线开头,数字就是step,比如我这个脚本60s执行一次,就命名为60_xxx.py

脚本放在刚才建立的plugin目录下,再建立一个子目录MetaStore,把脚本放进去

再强调一下,目录结构是plugin/MetaStore/60_xxx.py

3 前端配置

现在来到HostGroup那里,找到你要绑定这个plugin的主机组

这里的目录是plugin下面的目录,比如我刚才的目录结构,这里填写MetaStore就可以了

 

配置之后,等一两分钟,就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值