软件环境
软件环境 |
版本号 |
JDK |
jdk1.8.0_321 |
Mysql |
5.7.29 |
Ambari |
2.7.5.0 |
HDP |
3.1.5.0 |
据说是2.3 版本后 也就是2.4 的Ambari才支持了这种自定义的快速链接。
2.4.0官方公布了quickLinks相关引入了jar。
这个快速链接的架构是 metainf配置文件中首先要告诉ambari-server有快速链接这个东西(quickLinks)
然后ambri-server才去检测 以及 解析 然后给ambari web 这个url。
本文以kafka 添加 kafka-manager为例子
我们为kafka这个服务添加快速链接
默认情况下 文件名:quicklinks.json 这个是快速链接的json定义。
他的位置在:/var/lib/ambari-server/resources/stacks/HDP/3.0/services/KAFKA (我这边kafka是没有quicklinks 目录的。自己创建了一个)
首先要在metainfo 中定义一下 是有quicklinks这个功能的。
metainfo定义如下:
quicklinks-kafka
quicklinks.json
true
......
quicklinks.json定义:
"name": "kafka_ui",
"label": "Kafka Manager UI",
"component_name": "BROKER",
"url":"http://hadoop01:9001/clusters/kafka-test",
"requires_user_name": "false"
比较详细讲解的可以看下这个:(不是kafka的 主要看解释)
{
"name": "default", ---默认
"description": "default quick links configuration", ---默认
"configuration": {
"protocol": {
# 如果所有检测都满足,制定UI类型
# 执行https或是http类型
"type":"https",
"checks":[ # 检测必要性
{
"property":"HTTPS_ONLY",---可选HTTP_ONLY或是HTTPS_ONLY
"desired":"HTTPS_ONLY",
"site":"simple-site" ---属性所在的文件
}
]
},
#链接的配置项
"links": [
{
"name": "", ---快速链接的名称
"label": "", ---快链UI上的显示名称
"requires_user_name": "false", #如果需要UI附加用户名在快速链接的尾部,则设置为true,
"url": "%@://%@:%@",
"template": "%@://%@:%@", ---可选2.3支持的。2.4后用url替代
"port":{
#如果服务没有该端口的属性,请使用完整url属性,指定解析规则以便解析url
#Specify the regex so the url can be parsed for the port value.
"http_property": "simple.webapp.address",
"http_default_port": "8280",
"https_property": "simple.webapp.https.address",
"https_default_port": "8290",
"regex": "\\w*:(\\d+)",
"site": "simple-site"
}
}
]
}
}
查看HDFS的curl配置:
curl -u admin:admin http://hadoop01:8080/api/v1/stacks/HDP/versions/3.1/services/HDFS/quicklinks?QuickLinkInfo/default=true&fields=*
对比我们查看kafka的:
curl -u admin:admin http://hadoop01:8080/api/v1/stacks/HDP/versions/3.1/services/KAFKA/quicklinks?QuickLinkInfo/default=true&fields=*
然后我们看下界面:
点击就可以进入 manager了