我们想使用 Swisscom 云提供的 ELK 服务。由于我们要记录的应用程序不是由 Swisscom 托管,而是在外部托管,因此我们希望从外部连接到 ELK 服务。这有可能吗?或者 ELK 服务仅适用于 Swisscom 云中托管的应用程序?
最佳答案
当您创建并绑定(bind) ELK 服务时,您将收到这样的连接字符串和凭据
$ cf env $APP
Getting env variables for app $APP in org $ORC / space $SPACE as $USER...
OK
System-Provided:
{
"VCAP_SERVICES": {
"elk": [
{
"credentials": {
"elasticSearchHost": "9zz2ulprvgzlepa5.service.consul",
"elasticSearchPassword": "$PASSWORD",
"elasticSearchPort": 48783,
"elasticSearchUsername": "$USERNAME",
"kibanaPassword": "$PASSWORD",
"kibanaUrl": "http://xjcv9zh0jer2s44q.service.consul:59664",
"kibanaUsername": "$USERNAME",
"logstashHost": "gew5qn71sxcz49gd.service.consul",
"logstashPort": 46611,
"syslog": "syslog://uew5qn71sxcz49gd.service.consul:46611"
},
"label": "elk",
"name": "example-so",
"plan": "small",
"provider": null,
"syslog_drain_url": "syslog://gew5qn71sxcz49gd.service.consul:46611",
"tags": []
}
],
您无法从外部访问地址 *.service.consul
(DNS 仅在 Swisscom Cloud 中可用)。您只能从您的应用程序(在 Cloud Foundry 容器中运行)访问这些地址。
有一个解决方法,但我建议仅用于开发目的。
您可以从本地桌面创建通往 Elasticsearch 或 Kibana Web 界面的隧道。
参见Administrating Service Instances with Service Connector 。这是 Swisscom 开发的 CF CLI 插件。
After creating a service instance, you’ll eventually need to administrate the service. For example you might need to create data tables in a database or backup/restore your data. For these use cases, we created the Cloud Foundry CLI Plugin Service Connector which is a local proxy app through which you can connect to your service instances using your preferred locally installed tools.
Kibana Web 界面示例。
cf service-connector 80 xjcv9zh0jer2s44q.service.consul:59664
您还可以从桌面访问 Elasticsearch 并使用 API 插入或查询文档。
关于cloud-foundry - 从外部使用 Swisscom 云的 ELK 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37751036/