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