从外部使用Swisscom云的ELK服务

时间:2016-06-10 14:41:45

标签: cloudfoundry connectivity elastic-stack swisscomdev

我们想使用Swisscom云提供的ELK服务。因为我们要记录的应用程序不是由Swisscom托管,而是在外部,我们希望从外部连接到ELK服务。这有可能吗?或者ELK服务仅适用于Swisscom云中托管的应用程序吗?

2 个答案:

答案 0 :(得分:2)

创建和绑定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插件。

  

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

Kibana Web界面的示例。

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

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

答案 1 :(得分:1)

ELK堆栈有三个组成部分:

  • 弹性搜索 - 存储,索引
  • Logstash - 接收和处理日志消息(如syslog,JSON,文本)
  • Kibana - 用于搜索和可视化的Web UI

与@Fydor一样,您无法从外部访问ELK的服务端点。如果您想访问CF托管应用程序的日志,这也是一个问题。您并不总是希望使用Swisscom的服务连接器来访问Kibana。

因此,通常,您部署一个小型代理应用程序。 Swisscom有一个样本。

  

或者,可以使用类似的代理应用程序   Swisscom Kibana Proxy公开制作Kibana信息中心   可用。

由于Elastic Search使用REST接口,您可以使用代理发布Elastic Search端点。最后,您还应该抓住机会,将一些安全措施放入代理应用程序中。

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

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

由于Cloud Foundry目前仅支持发布HTTP和HTTPS端点,因此您无法使用Swisscom提供的实例,但必须部署您自己的实例并将其配置为使用已发布的Elastic Search端点。