我們希望使用Swisscom雲提供的ELK服務。由於我們要記錄的應用程序不是由Swisscom託管的,而是在外部,我們希望從外部連接到ELK服務。這可能嗎?或者,ELK服務僅適用於Swisscom雲託管的應用程序?使用來自外部Swisscom雲的ELK服務
回答
當你創建和綁定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插入或查詢文檔。
麋鹿棧有三個組成部分:
- 彈性搜索 - 存儲,索引
- Logstash - 接收和處理的日誌信息(如系統日誌,JSON,文本)
- Kibana - Web UI來搜索並可視化
正如@Fydor所寫,您無法從外部訪問ELK的服務端點。如果您想訪問您的CF託管應用程序的日誌,這也是一個問題。您並不總是希望使用Swisscom的服務連接器訪問Kibana。
因此通常會部署一個小型代理應用程序。 Swisscom有一個樣本。
或者有使用代理應用程序像 Swisscom Kibana Proxy,讓您的Kibana儀表板公開 可用的方法可行。
由於Elastic Search使用REST界面,因此可以使用代理髮布Elastic Search端點。最終,您還應該抓住機會,將一些安全措施加入代理應用程序中。
已經有很多日誌框架,它們直接支持轉發到Elastic Search。
如果您需要集成到現有的日誌解決方案(如Syslog,文本日誌等),那麼您可能需要使用logstash。
由於Cloud Foundry目前僅支持發佈HTTP和HTTPS端點,因此您不能使用Swisscom爲其提供的實例,但必須部署自己的實例並將其配置爲使用已發佈的彈性搜索端點。
- 1. 重新啓動Swisscom雲上的MariaDB服務
- 2. GWT使用來自外部模塊(jar)的域模型/服務?
- 3. 來自使用PHP代碼的服務雲的HTTP會話
- 4. Swisscom應用程序雲:nodejs與java jdk
- 5. 使用HTTPS部署Azure雲服務
- 6. 使用Azure自動化部署Azure雲服務Powershell DSC
- 7. Azure的雲服務使用
- 8. Kubernetes:外部服務不可用從Azure雲所有的爪牙
- 9. 使用Profiler捕獲來自外部的SQL服務器的連接
- 10. 使用來自外部的值onItemSelected
- 11. 使用來自MS Dynamics CRM 2013的外部Web服務Online Online Plug-in
- 12. 如何在SilverStripe模板中使用來自外部服務的json數據?
- 13. Phonegap:使用來自外部服務器的數據填充本地數據庫
- 14. WCF服務使用來自外部DLL的類時找不到元數據
- 15. 使用外部訂閱服務的iOS
- 16. 來自WCF服務的驗證例外
- 17. 來自Android的REST服務:400例外
- 18. 使用kubectl或kubernetes API來獲取服務的外部IP
- 19. 來自外部服務的ASP.NET即時頁面更新
- 20. Django,句柄來自外部服務器的響應
- 21. 來自外部交換機的服務器端事件
- 22. 如何調試來自外部服務器的響應?
- 23. 來自外部Web服務的駱駝返回值
- 24. 來自外部服務器的PHP讀取文件
- 25. 顯示來自外部REST服務的值
- 26. UDP服務器不接受來自外部的呼叫
- 27. 使用WCF「消息」來調用外部服務
- 28. HANA雲平臺中的外部Web服務的HTTP目標
- 29. 外部訪問雲中的Spring Java RMI服務
- 30. 調用來自外部JavaScript