一,PlumberAgent使用方法
注意事项
为了避免数据丢失或重传,务必参考注意事项
启动/停止通过配置文件、agent名字、所用端口来唯一确定一个plumber agnet进程;
启动/停止命令过程中会自动进行注销/注册,如果注销/注册失败会导致启动/停止失败,紧急情况下必须启动时可以用--force忽略注册/注销失败。
配置
plumber.properties
默认的配置文件为${PLUMBER_HOME}/conf/plumber.properties,可以参考配置样例进行配置
*注意:这个文件默认是没有的,需要手动生成
*注意:plumber.properties第一行可以用注释 #parser.class=com.sohu.datacenter.plumber.sdk.register.DefaultConfigParse 指明注册、注销程序所用的配置文件解析类。如果具体请参考自定义组件中的说明。这里一般可以不用修改,也可以不写这个注释。
plumber-env.sh
启动参数在${PLUMBER_HOME}/conf/plumber-env.sh中进行调整;
JAVA_HOME 所用的java的部署路径,不指定的话,将使用默认的java启动;
MONITOR_PORT 监控程序所用端口,这个端口用来区分不同的plumber进程,plumber启动注册的时候会将这个端口上报,一般确定之后不再修改;
JAVA_OPTS java启动参数,设置内存、gc配置等;
MONITOR_CLASS monitor主类,一般不做修改;
REGISTER_CLASS 注册程序主类,一般不做修改;
DEFAULT_CONF_FILE 默认配置文件路径,一般不做修改;
DEFUALT_CONF_DIR 默认conf文件夹路径,主要是包含了log4j的配置等,会添加进java classpath中,一般不做修改;
DEFAULT_AGENT_TYPE 默认agent类型,一般不做修改.
启动
启动脚本为${PLUMBER_HOME}/bin/plumber 不带任何参数执行会显示帮助 启动脚本提供的功能:
启动/停止plumber agent;
注册/注销plumber agent;
列出正在运行的plumber agent 进程pid.
[localhost /opt/sohu-plumber-0.0.6-bin]# bin/plumber
Usage: bin/plumber [options]...
commands options description
start start plumber agent
-c,--conf use configs in directory. DEFAULT: $PLUMBER_HOME/conf
-n,--name (required) the name of the agent
-t,--type specify agent type,could be source or sink DEFAULT:
-f,--file specify a config file. DEFAULT: ${PLUMBER_HOME}/conf/plumber.properties
-p,--port specify a port plumber will use. DEFAULT: 34550
--foreground run plumber in foreground
-Dproperty=value sets a Java system property value
-Xproperty=value sets a Java -X option
--no-reload-conf do not reload config file if changed
--force ignore register failure
stop stop plumber agent
-c,--conf use configs in directory. DEFAULT: $PLUMBER_HOME/conf
-n,--name (required) the name of the agent
-f,--file specify a config file. DEFAULT: $PLUMBER_HOME/conf/plumber.properties
-p,--port specify a port plumber will use. DEFAULT: 34545
--force ignore register failure
register register agent
-n,--name (required) the name of the agent
-f,--file specify a config file. DEFAULT: $PLUMBER_HOME/conf/plumber.properties
-p,--port specify a port plumber will use. DEFAULT: 34545
unregister unregister agent
-n,--name (required) the name of the agent
-f,--file specify a config file. DEFAULT: $PLUMBER_HOME/conf/plumber.properties
-p,--port specify a port plumber will use. DEFAULT: 34545
list
-n,--name (required) the name of the agent
-f,--file specify a config file. DEFAULT: $PLUMBER_HOME/conf/plumber.properties
-p,--port specify a port plumber will use. DEFAULT: 34545
help show this help text
命令说明
start
start 用于启动plumber agent进程。以下参数为start特有参数,其他参数请参考通用参数说明
注意 start时会先进行注册,如果注册失败,则不执行start。使用参数--force会忽略注册失败强制start
参数说明
参数
|
说明
|
默认值
|
-c,--conf
|
等同于flume的-c参数
|
${PLUMBER_HOME}/conf
|
-t,--type
|
指明agent类型,可以为source/sink
|
source
|
--foreground
|
不适用nohup进行后台启动,这个参数主要是为了在docker中启动使用的
|
N/A
|
--no-reload-conf
|
等同于flume的同名参数
|
N/A
|
-Dproperty=value
|
等同于flume的同名参数
|
|
-Xproperty=value
|
等同于flume的同名参数
|
stop
stop 用于停止plumber agent进程,stop的参数请参考通用参数说明
注意 stop时会先进行注销,如果注销失败,则不执行stop。使用参数--force会忽略注销失败强制stop
register
register 用于plumber agent注销, register的参数请参考通用参数说明
通常这个命令不需要手动执行,一般用于测试或者补注册
unregister
unregister 用于plumber agent注销, unregister的参数请参考通用参数说明
通常这个命令不需要手动执行,一般用于测试或者补注销
list
list 用于列出正在运行的plumber agent进程id号, list的参数请参考通用参数说明
通用参数说明
目前只有-n参数是必选的,其他都是可选 现在的帮助文档有点乱,不过可以看出来,下面的配置是通用的。
必选参数
参数
|
说明
|
-n
|
等同于flume的-n参数,指定要启动的agent名称,设置的名字必须在配置文件中有对应的配置 此参数在1.0.3版本后提供了默认值,不再是必选参数
|
可选参数
参数
|
说明
|
默认值
|
-f,--file
|
等同于flume的-f参数
|
${PLUMBER_HOME}/conf/plumber.properties
|
-p,--port
|
agent所用的端口号
|
34545
|
--force
|
启动/停止的时候会进行注册/注销,失败的话会终止命令不执行启动/重启。携带这个参数的话会忽略注册/注销失败,强制启动/停止
|
N/A
|
使用默认参数启动/停止
注意: 1.0.3之后,默认使用-n agent参数,可以直接通过plumber start来进行启动
唯一需要指定的参数是-n
${PLUMBER_HOME}/bin/plumber start -n ${agent}
${PLUMBER_HOME}/bin/plumber stop -n ${agent}
缺省参数的情况下,所用的的等效配置:
-c ${PLUMBER_HOME}/conf
-f ${PLUMBER_HOME}/conf/plumber.properties(需要手动生成这个文件,默认是没有的
-p 34550
-t source
不使用默认的配置文件启动/停止
需要指定-n ,如果不是用默认的conf/plumber.properites作为配置文件的话,需要指定 -f 参数
${PLUMBER_HOME}/bin/plumber start -n ${agent} -f ${file}
${PLUMBER_HOME}/bin/plumber stop -n ${agent} -f ${file}
使用其他端口启动/停止
需要指定 -n ,如果不使用默认端口启动的话,需要指定 -p 参数
${PLUMBER_HOME}/bin/plumber start -n ${agent} -p ${port}
${PLUMBER_HOME}/bin/plumber stop -n ${agent} -p ${port}
二,PlumberManage使用方法
位置
目前PlumberManager部署路径/opt/plumber-manager/,所用api端口为8080
配置
目前PlumberManager的配置分为2部分: 监控管理部分(default.conf) 以及告警部分 (alert.conf)
监控管理配置
配置文件为default.conf,这个配置修改后需要重启进程
配置项
|
说明
|
默认值
|
kafka.topic
|
心跳数据所用的kafka topic名称
|
N/A
|
kafka.*
|
*中的内容将作为参数直接用于配置kafka consumer。 如kafka.group.id,kafka.consumer.timeout.ms一类的参数
|
N/A
|
influx.server
|
manager所用的influxDB的地址,如
|
N/A
|
influx.database
|
所用的influxDB的数据库名称
|
plumber
|
influx.retention
|
所用的默认的influxDB的retention policy
|
autogen
|
plumber.port
|
manager提供api所用的端口
|
8080
|
plumber.checkpoint
|
manager记录checkpoint的文件,可以为绝对路径也可以为相对路径
|
checkpoint.json
|
grafana.host
|
如 10.16.34.188:3000。 grafana用于展示InfluxDB中的数据曲线。Manager可以根据模板自动生成grafana dashboard
|
N/A
|
example
kafka.auto.commit.enable = false
kafka.zookeeper.connect = 192.168.109.58:2182/kafka-yanchao-test
kafka.consumer.timeout.ms = 100
kafka.auto.offset.reset = smallest
kafka.group.id = test
kafka.topic = plumber
influx.server =
influx.database = plumber
influx.retention = forever
plumber.port = 8080
plumber.checkpoint = checkpoint.json
grafana.host = 10.16.34.188:3000
告警配置
配置文件为alert.conf。这个配置修改后会自动生效,无需重启进程。
这里分为告警部分以及sender部分
告警部分配置说明
以alert.开头,用于配置告警级别、阈值等。
alert.default用于给出全局默认值
alert.topic.[name]用于对名称为name的topic的告警进行配置
告警类型以及告警级别相关信息,请参考告警设计
告警部分配置项
配置项
|
说明
|
默认值
|
INVALID
|
INVALID 类型的告警级别
|
FATAL
|
FAILED
|
FAILED 类型的告警级别
|
FATAL
|
DELAYED
|
DELAYED 类型的告警级别
|
NOTICE
|
NO_DATA
|
NO_DATA 类型的告警级别
|
IGNORE
|
INCOMPLETE
|
INCOMPLETE 类型的告警级别
|
NOTICE
|
RECORD_ERR
|
RECORD_ERR 类型的告警级别
|
NOTICE
|
DIFF1.threshold.WARN
|
DIFF1 类型的告警的WARN级别的阈值。sink与source记录数不等会触发NOTICE级别的告警,sink/source低于此值触发WARN级别告警。
|
0.95
|
DIFF2.threshold.WARN
|
DIFF2 类型的告警的WARN级别的阈值。sink与后续处理流程的输入记录数(process)不等会触发NOTICE级别的告警,sink/process低于此值触发WARN级别告警
|
0.95
|
PROCESS_ERR.threshold.WARN
|
PROCESS_ERR 类型告警的WARN级别阈值。后续处理存在error时触发NOTICE级别告警,error/输入数 超过此阈值会触发WARN级别告警
|
0.05
|
sender部分配置说明
这部分用于配置告警的sender。sender目前默认实现了微信告警(内部接口)。其他sender可以通过实现接口来进行扩展。配置方式如下:
配置项
|
说明
|
默认值
|
sender.[name].type
|
名称为 name的sender的类型,使用类名来进行配置,如 com.sohu.datacenter.plumber.manager.alert.sender.WechatAlertSender
|
|
sender.[name].*
|
作为参数传递给sender的 void config(Map configs) 方法,由sender自行决定如何解析
|
WechatAlertSender
提供的一种默认实现。可以同时配置多个WechatAlertSender,每个有各自的配置,负责发送不同的告警
配置项
|
说明
|
默认值
|
sender.[name].type
|
需要设置为com.sohu.datacenter.plumber.manager.alert.sender.WechatAlertSender
|
|
sender.[name].topics
|
这个sender负责发送的topic列表。如果为空则发送所有topic的告警;如果非空,则只发送这个列表中的告警
|
|
sender.[name].encoding
|
消息编码格式
|
|
其他
|
作为http请求的参数直接发出
|
example
alert.default.INVALID = FATAL
alert.default.FAILED = FATAL
alert.default.DELAYED = NOTICE
alert.default.NO_DATA = IGNORE
alert.default.DIFF2.threshold.WARN = 0.95
alert.default.PROCESS_ERR.threshold.WARN = 0.05
alert.topic.zhiqu.DELAYED=WARN
alert.topic.zhiqu.INCOMPLETE=WARN
alert.topic.zhiqu.DIFF1.threshold.WARN = 0.99
alert.topic.zhiqu.DIFF2.threshold.WARN = 0.99
alert.topic.app-test-container0.DELAYED = NOTICE
alert.topic.app-test-container0.RECORD_ERR = NOTICE
alert.topic.app-test-container0.DIFF1.threshold.WARN = 0
alert.topic.app-test-container0.DIFF2.threshold.WARN = 0
alert.topic.app-test-container0.PROCESS_ERR.threshold.WARN = 1
sender.wx1.type = com.sohu.datacenter.plumber.manager.alert.sender.WechatAlertSender
sender.wx1.topics = zhiqu app-test1 app-test-container0
sender.wx1.server =
sender.wx1.encoding = utf-8
sender.wx1.msgType = tag
sender.wx1.toTag = 2
sender.wx1.agentId = 8
脚本
执行bin/plumber-manager时不带任何参数可以看使用说明
阅读(1054) | 评论(0) | 转发(0) |