Использование услуги ELK из облака Swisscom извне
Мы хотели бы воспользоваться услугой ELK, предоставляемой облаком Swisscom. Поскольку приложения, которые мы хотим регистрировать, не размещаются в Swisscom, а извне, мы хотели бы подключиться к сервису ELK извне. Это вообще возможно? Или услуга ELK доступна только для приложений, размещенных в облаке Swisscom?
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.
См. Администрирование экземпляров службы с помощью Service Connector. Это плагин CF CLI, разработанный Swisscom.
После создания экземпляра службы вам в конечном итоге потребуется администрировать службу. Например, вам может понадобиться создать таблицы данных в базе данных или сделать резервную копию / восстановить ваши данные. Для этих случаев использования мы создали сервисный коннектор плагина Cloud Foundry CLI, который является локальным прокси-приложением, с помощью которого вы можете подключаться к экземплярам службы с помощью предпочитаемых локально установленных инструментов.
пример для веб-интерфейса Kibana.
cf service-connector 80 xjcv9zh0jer2s44q.service.consul:59664
Вы также можете получить доступ к Elasticsearch со своего рабочего стола и использовать API для вставки или запроса документов.
Стек ELK состоит из трех компонентов:
- Эластичный поиск - хранение, индекс
- Logstash - получать и обрабатывать сообщения журнала (такие как syslog, JSON, текст)
- Kibana - веб-интерфейс для поиска и визуализации
Как написано @Fydor, вы не можете получить доступ к конечным точкам обслуживания ELK извне. Это также проблема, если вы хотите получить доступ к журналам ваших CF-приложений. Вы не всегда хотите использовать служебный разъем Swisscom для доступа к Kibana.
Таким образом, обычно вы развертываете небольшое прокси-приложение. У Swisscom есть образец для этого.
В качестве альтернативы есть возможность использовать прокси-приложение, такое как Swisscom Kibana Proxy, чтобы сделать вашу панель Kibana общедоступной.
Поскольку Elastic Search использует интерфейс REST, вы можете использовать прокси-сервер для публикации конечной точки Elastic Search. В конце концов, вы также должны воспользоваться возможностью ввести некоторые меры безопасности в прокси-приложение.
Уже существует много каркасов ведения журналов, которые напрямую поддерживают пересылку в Elastic Search.
Если вам нужно интегрироваться в существующие решения для ведения журналов (например, Syslog, текстовые журналы, ...), тогда вы можете использовать logstash.
Поскольку Cloud Foundry в настоящее время поддерживает только публикацию конечных точек HTTP и HTTPS, вы не можете использовать предоставленный для этого экземпляр Swisscom, но должны развернуть свой собственный экземпляр и настроить его для использования опубликованной конечной точки Elastic Search.