Cloud foundry 从外部使用瑞士电信云的ELK服务

Cloud foundry 从外部使用瑞士电信云的ELK服务,cloud-foundry,connectivity,elastic-stack,swisscomdev,Cloud Foundry,Connectivity,Elastic Stack,Swisscomdev,我们希望使用瑞士电信云提供的ELK服务。因为我们要记录的应用程序不是由Swisscom托管的,而是外部托管的,所以我们希望从外部连接到ELK服务。这可能吗?或者ELK服务仅对Swisscom云中托管的应用程序可用?当您创建并绑定ELK服务时,您将收到如下连接字符串和凭据 $ cf env $APP Getting env variables for app $APP in org $ORC / space $SPACE as $USER... OK System-Provided: { "V

我们希望使用瑞士电信云提供的ELK服务。因为我们要记录的应用程序不是由Swisscom托管的,而是外部托管的,所以我们希望从外部连接到ELK服务。这可能吗?或者ELK服务仅对Swisscom云中托管的应用程序可用?

当您创建并绑定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.concur
(DNS仅在Swisscom云中可用)。您只能从应用程序(在CloudFoundry容器中运行)访问这些地址

有一个变通方法,但我建议仅用于开发目的

您可以从本地桌面创建到Elasticsearch或Kibana web界面的隧道

看。这是Swisscom开发的CF CLI插件

创建服务实例之后,您最终需要 管理服务。例如,您可能需要创建数据 数据库中的表或备份/还原数据。对于这些用例, 我们创建了CloudFoundry CLI插件服务连接器,它是一个 您可以通过本地代理应用程序连接到您的服务 使用首选本地安装工具的实例

Kibana web界面示例

cf service-connector 80 xjcv9zh0jer2s44q.service.consul:59664

您还可以从桌面访问Elasticsearch,并使用API插入或查询文档。

麋鹿堆栈有三个组件:

  • 弹性搜索-存储、索引
  • Logstash-接收和处理日志消息(如syslog、JSON、text)
  • Kibana-用于搜索和可视化的Web UI
正如@Fydor所写,您无法从外部访问ELK的服务端点。如果您想访问CF托管应用程序的日志,这也是一个问题。您并不总是希望必须使用Swisscom的服务连接器才能访问Kibana

因此,通常需要部署一个小型代理应用程序。瑞士电信公司有一个样本

或者,也可以使用代理应用程序,如 公开你的Kibana仪表板 可用

由于弹性搜索使用REST接口,因此可以使用代理发布弹性搜索端点。最后,你也应该抓住机会,在代理应用程序中加入一些安全措施

已经有很多日志框架,它们直接支持转发到弹性搜索

如果您需要集成到现有的日志解决方案(如Syslog、文本日志等),那么您可能需要使用logstash

由于Cloud Foundry目前只支持发布HTTP和HTTPS端点,因此您不能使用Swisscom提供的实例来发布HTTP和HTTPS端点,但必须部署您自己的实例并将其配置为使用已发布的弹性搜索端点