GoldenDB告警脚本部署及基本使用
GoldenDB-Sloth-告警部署和基础应用
目 录
1、 上传工具包
(1) 将alarm告警工具压缩包上传至insight服务器中
2、 复制文件
3、 编辑配置文件
(1) 编辑告警发送格式
(2) 编辑告警发送渠道send.xml
(3) 编辑告警过滤器filters.xml
4、 启动告警
检查是否启动,有进程即启动成功
5、 查看日志
tail -f send_alarm.log
(1) 将alarm告警工具压缩包上传至insight服务器中
(1) 解压后,将alarm/ 整个路径复制到$HOME_INSIGHT/script_monitor/scripts/ 下
cd $HOME_INSIGHT/script_monitor/scripts/alarm/config
vi dataformat.xml
详细可参考dataformat_example.xml
<dataformats>
<dataformat>
<platform>sxyd_sendnotice</platform>
<data_structure>jsonstr</data_structure>
<new_alarm>
<dict>
<origin>goldendb</origin>
<mobile>${sendTarget}</mobile>
<content>GoldenDB告警通知:-序号:${alarmId} -名称:${alarmDesc}(${alarmReasonCode}) -级别:${severity} -告警对象:${resourceName} -生成时间:${alarmTime} -告警内容:${alarmReason},${alarmDetailReason}</content>
<needReplay>false</needReplay>
<proId>sx</proId>
</dict>
</new_alarm>
<recovery_alarm>
<dict>
<origin>goldendb</origin>
<mobile>${sendTarget}</mobile>
<content>GoldenDB告警解除通知:-序号:${alarmId} -名称:${alarmDesc}(${alarmReasonCode}) -级别:${severity} -告警对象:${resourceName} -生成时间:${alarmTime} -告警内容:${alarmReason},${alarmDetailReason}</content>
<needReplay>false</needReplay>
<proId>sx</proId>
</dict>
</recovery_alarm>
</dataformat>
</dataformats>
vi send.xml
详细可参考send_example.xml
<sending_method>
<res_interface>
<sender>
<platform>发送渠道名称</platform>
<url>发送方接口</url>
</sender>
</res_interface>
</sending_method>
vi filters.xml
详细可参考filters_example.xml
<filters>
<filter>
<platform>发送渠道名称</platform>
<class_path>过滤器路径</class_path>
<class>过滤器类名</class>
<过滤器参数名(如有)>参数值</过滤器参数名(如有)>
</filter>
<filter>
<platform>发送渠道名称</platform>
<class_path>过滤器路径</class_path>
<class>过滤器类名</class>
</filter>
</filters>
① 过滤器示例:
1) 告警通知多个手机号
第一步:vi filter.xml
<filter>
<platform>发送渠道名称</platform>
<class_path>lib.filter.gengrate_metadata</class_path>
<class>GenerateMetaData</class>
<old_metadata>${severity}</old_metadata>
<new_metadata>mobile</new_metadata>
<tranfile>config/sendTarget_mapping.txt</tranfile>
<default>发送默认手机号</default>
<verify>
<policy>checkLength</policy>
<checklength>11</checklength>
<split_symbol>,</split_symbol>
</verify>
</filter>
第二步:vi plugins.xml
<plugins>
<plugin>
<platform>发送渠道名称<</platform>
<class_path>lib.plugins.dispatcher_plugin</class_path>
<class>DispatcherPlugin</class>
<split_data>mobile</split_data>
<split_symbol>,</split_symbol>
</plugin>
</plugins>
第三步:创建手机号文本文件 vi sendTarget_mapping.txt
#格式:告警级别+@#@+告警手机号
1@#@1393*******
2@#@1393*******
3@#@1393*******
4@#@1393*******
8@#@1393*******
完成.
2) 告警过滤指定租户
vi filter.xml
<filter>
<platform>发送渠道名称</platform>
<class_path>lib.filter.clusteridfilter</class_path>
<class>ClusterIdFilter</class>
<clusteridfilter>需要过滤的租户ID(多个逗号隔开)</clusteridfilter>
</filter>
3) 告警过滤指定告警代码
第一步:vi filter.xml
<filter>
<platform>发送渠道名称</platform>
<class_path>lib.filter.alarmreasoncodefilter</class_path>
<class>alarmreasoncodeFilter</class>
<whitelistpath>config/whitelist.txt</whitelistpath>
</filter>
a. 告警过滤指定告警代码
第二步:编辑白名单文件 vi whitelist.txt
#1 is open,0 is close
#格式:告警代码+逗号+0或1
2021401,1
2000101,1
2000109,1
完成.
(1) Insight会自动监听告警目录下的告警程序,只需将告警脚本重命名即可
cd $HOME_INSIGHT/script_monitor/scripts/alarm/
cd $HOME_INSIGHT/script_monitor/scripts/alarm/
mv send_alarm.py* send_alarm.py
ps -ef |grep send_alarm
cd $HOME_INSIGHT/script_monitor/scripts/alarm/log