快速入门
网站监控
网站监控概述
HTTP/HTTPs监控
Ping监控
FTP监控
TCP监控
UDP监控
DNS监控
SMTP监控
TraceRoute监控
管理网站监控项目
服务器性能监控
服务器性能监控概述
安装配置SNMP代理
创建服务器监控项目
管理服务器监控项目
查看服务器监控项目
服务性能监控
服务性能监控概述
Apache监控
Lighttpd监控
Nginx监控
MySQL监控
MongoDB监控
Redis监控
Memcache监控
Tomcat监控
IIS监控
SQLServer监控
Oracle监控
管理服务监控项目
API监控
API监控概述
创建API监控项目
管理API监控项目
查看API监控项目
安全监控
安全监控概述
新建并管理资产
新建并管理VPN通道
创建并管理检测任务
执行任务
查看检测结果
管理白名单
自定义监控
自定义监控概述
创建自定义规则
创建自定义监控项目
查看自定义监控项目
用户体验跟踪
用户体验跟踪概述
创建用户体验项目
查看用户访问速度
查看用户体验报告
管理服务器
内网采集器管理
插件式监控平台
内网采集器插件说明
采集器运行环境说明
内网采集器注意事项
配置采集器运行环境
创建内网采集器
下载并运行采集器
创建关联项目
管理内网采集器
云主机监控管理
云主机监控端概述
配置云主机运行环境
创建云主机监控端
下载并运行云主机
管理云主机监控端
项目概况
应用架构图
应用架构图概述
创建应用架构图
分享应用架构图
查看应用架构图
报表中心
管理仪表盘
管理监控视图
数据报表
管理告警和故障
管理对比分析报告
管理SLA报告
用户中心
账户设置
个人设置
通知设置
URL回调说明

内网采集器的主进程是jkbAgent,而jkbMaster是内网采集器的守护进程,负责启动、重启、更新jkbAgent。

jkbAgent启动后,通过读取用户的插件配置信息,加载初始化插件。插件以jkbAgent线程的方式运行, 插件之间的运行是并行的且互不干扰。

内网采集器会按时通过postData()方法向监控宝提交采集到的数据, 数据以json格式提交。 插件返回给内网采集器的数据格式如下:

{'agentType':self.agentType,
   'taskId':self.taskId,
   'pluginId':self.pluginId,
   'code':self.code, 
   'time':time.time(),
   'data':redata, 
   'error_info':self.error_info}

内网采集器的进程id会被记录在tmp文件夹下的agentpid.pid和masterpid.pid中。内网采集器的运行日志会按天自动生成到log目录下, 可以通过log分析内网采集器的运行情况。

插件运行连续多次出错时会被设为停止状态,此时应通过日志分析插件的出错原因,也可以直接联系我们。

开发新插件

目前我们的自定义监控配合采集器的使用,支持您开发满足自己需求的插件。开发插件时应该要遵守下规则:

  • 新插件要放于plugin目录下,插件包含一个名为CustomClass的类和一个名为run()的入口方法。

  • 类的初始化方法应带有接收调用对像的实例。

  • 数据返回return数组(在Python里准确是叫字典),可以仿照custom_daemon.py 进行开发。

下面是记录插件错误信息的方法:

  self.obj.logger.error(traceback.format_exc())
  self.obj.errorInfoDone(traceback.format_exc())

插件代码示例如下:

  #类名必定义为CustomClass
  class CustomClass():
  def __init__(self,obj):
  #接收调用对像的实例
  self.obj=obj
  #必须有个run的入口方法
  def run(self):
      redata={}
      try:
    #数据收集开始
          redata['val1']=455
          redata['val2']=52662
          redata['val4']='descff'
    #数据收集结束
      except Exception :
    #下面是处理插件错误信息的方法
          self.obj.logger.error(traceback.format_exc())
          self.obj.errorInfoDone(traceback.format_exc());
      finally:
          #最终要把数据以字典格式返回
          return redata