分享

open-falcon-agent插件使用

 昵称54185769 2018-07-30

说明

Plugin可以看做是对agent功能的扩充。使用插件可以对采集脚本进行统一管理,方便定制修改,也可以免去在crontab中添加计划任务。

开启plugin功能

# 修改agent配置文件
    "plugin": {
        "enabled": true,                                         # 打开设置为true 
        "dir": "/opt/programs/open-falcon-agent_0.2.1/plugin",   # git插件目录
        "git": "http://user:password@ip/open-falcon/plugin.git", # git相关地址、用户名及密码
        "logs": "/opt/programs/open-falcon-agent_0.2.1/logs"     # git插件执行目录
    },

编写采集脚本

用什么语言写没关系,只要目标机器上有运行环境就行,脚本本身要有可执行权限。采集到数据之后直接打印到stdout即可,agent会截获并push给server。数据格式是json,举个例子:

#./600_ntp.py
[{"endpoint": "host01", "tags": "", "timestamp": 1431349763, "metric": "sys.ntp.offset", "value": 0.73699999999999999, "counterType": "GAUGE", "step": 600}]

注意,这个json数据是个list

上传脚本到git

插件脚本也是code,所以最好也用git、svn管理,这里我们使用git管理,公司内部如果没有搭建gitlab,可以使用gitcafe、coding.net之类的,将写好的脚本push到git仓库,比如上例中的600_ntp.py,姑且放到git仓库的sys/ntp目录下。
注意,这个脚本在push到git仓库之前要加上可执行权限。

拉取plugin脚本

agent开了一个http端口1988,执行命令curl一下http://ip:1988/plugin/update 这个地址,这会让agent主动git pull这个插件仓库。

让plugin run起来

上一步我们拉取了plugin脚本到所有机器上,不过plugin并没有执行。哪些机器执行哪些plugin脚本,是在portal上面配置的。在portal上找到要执行插件的HostGroup,点击对应的plugins超链接,对于上例sys/ntp目录下的600_ntp.py,直接把sys/ntp绑定上去即可。sys/ntp下的所有插件就都执行了。

备注

portal上配置完成之后并不会立马生效,有个同步的过程,最终是agent通过调用hbs的接口获取的,需要一两分钟。上例我们绑定了sys/ntp,这实际是个目录,这个目录下的所有插件都会被执行,那什么样的文件会被看做插件呢?文件名是数字下划线打头的。这个数字代表的是step,即多长时间跑一次,单位是秒,比如60_a.py,就是在通过命名告诉agent,这个插件每60秒跑一次。sys/ntp目录下的子目录、其他命名方式的文件都会被忽略。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多