Plugin可以看做是对agent功能的扩充。对于业务系统的监控指标采集,最好不要做成plugin,而是把采集脚本放到业务程序发布包中,随着业务代码上线而上线,随着业务代码升级而升级,这样会比较容易管理。
1. 编写采集脚本
用什么语言写没关系,只要目标机器上有运行环境就行,脚本本身要有可执行权限。采集到数据之后直接打印到stdout即可,agent会截获并push给server。数据格式是json。
2. 上传脚本到git
3. 检查agent配置:修改plugin的配置
4. 拉取plugin脚本
注意插件目录plugin是和agent同目录,如果agent相同目录已经存在plugin目录,第一次拉取会失败
5. 让plugin run起来
哪些机器执行哪些plugin脚本,是在portal上面配置的
6. 补充
portal上配置完成之后并不会立马生效,有个同步的过程,最终是agent通过调用hbs的接口获取的,需要一两分钟。上例我们绑定了sys/ntp,这实际是个目录,这个目录下的所有插件都会被执行,那什么样的文件会被看做插件呢?文件名是数字下划线打头的~这个数字代表的是step,即多长时间跑一次,单位是秒,比如60_a.py,就是在通过命名告诉agent,这个插件每60秒跑一次。sys/ntp目录下的子目录、其他命名方式的文件都会被忽略。
7、自己可以直接把监控信息push给agent,然后agent会发给server的transefer
push
到接口:http://127.0.0.1:1988/v1/push
, http method
为post
参考:
1、https://book.open-falcon.org/zh_0_2/philosophy/plugin.html
2、jvm监控等参考:https://book.open-falcon.org/zh_0_2/usage/jmx.html
3、http://zhxfei.com/2017/09/08/falcon_scripts/