1、alter概述

在Ambari中的告警机制用来监控各个模块及其机器的状态。对于告警来说主要包括AlertDefinition和Alert Instance。

  • Alert Definition:告警任务定义,即定义告警的检测时间间隔(interval)、类型(type)、以及阈值等。
  • Alert Instance:告警实例,即Ambari会读取alert definition,然后创建对应实例去执行告警任务。

2、alter类型

  • alert类型分为五种,分别如下

类型

用途

阈值是否可分配

阈值单位

PORT

用来监测机器上的一个端口进程是否存在



METRIC

用来监测Metric相关的配置属性


%

AGGREGATE

用来收集其他某些Alert的状态


%

WEB

用来监测一个WEB UI(URL)地址是否可用



SCRIPT

Alert的检测逻辑由一个自定义的python脚本执行



  • 注意事项:alert检查结果有五个级别,分别是OK、WARNING、CRITICAL、UNKNOWN和NONE

3、Alter开发实例

3.1、第一步_PORT告警示例实现
{
    "FLINK": {
        "service": [],
        "FLINK_MASTER": [
            {
                "name": "Flink_server_process",
                "label": "Flink服务进程",
                "description": "如果您不能确定Flink服务器进程已启动并且正在网络上侦听,则将触发此主机级别警报。",
                "interval": 1,
                "scope": "ANY",
                "enabled": true,
                "source": {
                    "type": "PORT",
                    "uri": "{{flink-env/jobmanager_web_port}}",
                    "default_port": 8081,
                    "reporting": {
                        "ok": {
                            "text": "TCP OK - {0:.3f}s response on port {1}"
                        },
                        "warning": {
                            "text": "TCP OK - {0:.3f}s response on port {1}",
                            "value": 1.5
                        },
                        "critical": {
                            "text": "Connection failed",
                            "value": 5
                        }
                    }
                }
            }
        ]
    }
}
  • 参数说明:依据metainfo.xml 文件的service.name/ component.name属性表示用来定义这个 Alert 属于哪个 Service 的哪个模块

属性

说明

备注

name

告警名称

label

告警显示名称

description

告警描述

interval

告警检测周期

单位为分钟

scope

告警范围

enabled

是否启用告警

source

告警实例

source/type

告警类型

source/uri

定义变量,获取conf的参数值

source/default_port

监测告警的默认端口号。

如果 uri 参数失效,就会读取该参数。

source/reporting

代表告警级别

分别是OK、WARNING,CRITICAL、UNKNOWN 和 NONE

3.2、第二步_上传文件
cd /var/lib/ambari-server/resources/stacks/HDP/3.1/services/FLINK
rz alerts.json
  • 结果如下

yarn flink 监控 脚本 flink任务监控报警_yarn flink 监控 脚本

3.3、第三步_调试运行

(1)如果是修改 alerts.json 文件内容

需要重启 Ambari Server ,并卸载、重新安装服务,Ambari 会将新预定义的 Alert 信息保存到数据库中。

(2)如果是修改 SCRIPT 类型的 py 文件

需要将修改后的 py 文件放置到 告警组件所在机器的 /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/ELASTICSEARCH/package/alerts 目录下即可(以 Flink 为例)。实时更新,不需要重启 ambari-server ,大概等待一分钟后,程序刷新。

3.4、运行结果

yarn flink 监控 脚本 flink任务监控报警_服务器_02