1、自定义quiklink链接功能概述
-
主要功能:用来配置第三方服务界面链接,如Yarn的管理界面。
服务可以通过在metainfo中加入一串quicklink的引用(一串预定义的JSON字符串)即可。ambari server能解析json文件并将其提供给UI,以便ambari web ui 能够计算快速链接的URL(基于信息和相对应的下拉快速链接列表)
2、自定义quiklink链接实现流程
- 简而言之:metainf配置文件中首先要告诉ambari-server有快速链接这个东西(quickLinks),然后ambri-server才去检测 以及 解析 然后给ambari web 这个url。
2.1、在 metainfo.xml 文件里面添加如下内容
<quickLinksConfigurations>
<quickLinksConfiguration>
<fileName>quicklinks.json</fileName>
<default>true</default>
</quickLinksConfiguration>
</quickLinksConfigurations>
- 注意事项:quicklinks.json 所在位置,默认在服务根目录的 quicklinks 目录下。如果需要更改 quicklinks.json 文件的所在目录,则需要更改 metainfo.xml 文件的 quickLinksConfigurations-dir 属性值。
2.2、quicklinks.json 内容解析
{
"name": "default", // 这里的值如果为default,前提是metainfo.xml文件里面的quickLinksConfiguration.default为true。
"description": "default quick links configuration",
"configuration": {
"protocol": {
"type":"https", // type告诉Ambari Web UI如果所有检查都满足使用https协议。该属性值可为 http 或者 https
"checks":[
{
"property":"es.head.http.policy", ---该属性的值为HTTP_ONLY或是HTTPS_ONLY
"desired":"HTTPS_ONLY",
"site":"elastic-config" ---property属性所在的文件
}
]
},
"links": [
{
"name": "elasticsearch_ui", // 快速链接的名称
"label": "Elasticsearch-head UI", // 快链UI上的显示名称
"component_name": "ELASTICSEARCH_HEAD", // 指定该link所关联的组件名称
"url":"%@://%@:%@", // 第一个%@为通信协议,第二个是主机名,第三个是端口号
"port":{
"http_property": "elasticsearch_head_port", // 端口号,动态获取
"http_default_port": "9100",
"https_property": "elasticsearch_head_port", // 端口号,动态获取
"https_default_port": "9100",
"regex": "^(\\d+)$", // 正则表达式,只支持多个数字组合。第一个\为转义符
"site": "elastic-config" // http_property或https_property参数所在的文件名称,省略了”.xml“
}
}
]
}
}
- 参数说明
属性 | 说明 | 备注 |
---|---|---|
name | 用于标识快速链接 JSON文件的名称 | 这里的值如果为default,前提是metainfo.xml文件里面的quickLinksConfiguration.default为true。 |
description | 链接描述信息 | |
configuration/protocol/type | 链接协议类型 | 告诉Ambari Web UI如果所有检查都满足使用https协议 |
configuration/protocol/checks/property | ||
configuration/protocol/checks/desired | ||
configuration/protocol/checks/site | property属性所在的文件 | |
configuration/links | 连接信息 | |
configuration/links/name | 快速链接的名称 | |
configuration/links/label | 快链UI上的显示名称 | |
configuration/links/component_name | 指定该link所关联的组件名称 | |
url | link的url地址 | %@😕/%@:%@", // 第一个%@为通信协议,第二个是主机名,第三个是端口号 |
port | 获取端口号 |
2.3、拷贝文件
(1)直接将 quicklinks.json 文件拷贝 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/FLINK/quicklinks 目录。
- 注意事项:如果创建文件夹则运行如下命令重新赋权
sudo chown -R ambari /var/run/ambari-server
(2)替换metainfo.xml文件到 ambari-server 所在节点的 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/FLINK 目录下,重启 ambari-server 后生效,无需重装所属服务。
ambari-server start
2.4、实现效果
3、调试方法
将自定义的 quicklinks.json 文件拷贝到 /var/lib/ambari-server/resources/stacks/HDP/3.1/services/FLINK/quicklinks 目录下,重启 ambari-server,即可生效,刷新一下界面查看最新效果。