摘要:在中默認開啟端口用于偵聽發送過來的日志報文。至此,在中如何部署一套完整系統已經介紹完了,下面我將介紹如何將容器日志發送到中。下面我將介紹如何收集容器日志。目前日志顯的雜亂無序。,現在我們再去查看發現我們的容器日志已經展示在這里了。
相信大家對于容器和 docker 這個概念并不陌生,很高興的是 docker 為我們提供了多種log-driver。
我們在使用 docker 處理日志的時候多數是采用 docker logs
上述方式如果用于開發過程中的調試工作,是種快速且不錯的方案,但是如果面對大規模應用部署的環境下那么日志的跟蹤與調試帶來的困擾顯而易見,因此我們需要一個統一集中的容器日志收集與展示平臺。
對于容器日志收集與展示,syslog + rsyslog + ELK(ElasticSearch、Logstash、Kibana)是一個不錯的技術方案,我將簡單介紹下為什么我們選用這種方案。
Syslog 是一種 RFC 協議,與平臺無關,且是 UNIX 標準的日志解決方案,集成度良好。rsyslog 顧名思義是 remote 的意思,使 syslog 具備收集遠端日志的功能,由于 logstash 采用 java 和 jruby開發,所以 logstash 文件庫中可以加入 windows 日志文件。而 logspout 暫不支持容器-t(tty) 啟動。
我們慶幸的是 Rancher 的 Catalog 真的很強大,Rancher Catalog 已經為我們提供了 ELK 的Catalog,下面我將給出 ELK 在 Rancher 中的部署視圖,并簡單介紹下視圖中每個組件都是干什么的。
logstash-collector:用于接收 docker container 發送過來的日志信息,并將日志信息發送到redis 隊列中。在 rancher 中默認開啟 TCP:6000 UDP:5000 端口用于偵聽發送過來的日志報文。
redis:日志消息隊列。
logstash-indexer:用于接收redis中未處理的日志信息,然后將該日志消息發送到elasticsearsh中進行存儲及搜索分析。
kopf:elasticsearch 的一款第三方插件,提供一個簡單的管理員 web 界面。
elasticsearch-clients:用于處理路由請求,協調數據節點與主節點。
elasticsearch-master:用于集群操作相關的內容。
elasticsearch-datanode: 用于存儲索引數據的節點。
上述部署視圖中說好的 Kibana 哪兒去了?
因為我們有自己的日志展現平臺,所以這里去掉了 kibana,如果你想在 Rancher 中使用 Kibana做日志前端展現,那么很簡單,只需要利用 Rancher 的 Catalog,service link:Rancher 環境中上述已經部署好的 elasticsearch-client 即可。
至此,在 Rancher 中如何部署一套完整 ELK 系統已經介紹完了,下面我將介紹如何將容器日志發送到 ELK 中。
為了完成上述的目標,我們還需要做一些準備工作,那就是需要一個運行 rsyslog 的容器。如果你不想基于 alpine 去制作 rsyslog 鏡像,那么可以使用 panoptix/rsyslog 這個鏡像。
下面就是關鍵的一步:如何讓 rsyslog 發送日志到 logstash 中。
上述 rsyslog 容器啟動好之后我們需要告知 rsyslog,目的接收端 logstash 的地址。過程很簡單,需要在容器中/etc/rsyslog.d/ 目錄下建立一個文件 60-logstash.conf
:programname, contains, “docker”的意思是過濾日志,只有 Properties 中 key 為 programname,value 包含 docker 字樣的日志才會被發送給 logstash
*.*@@logstash-collector:6000;json-template 是所有用戶的所有日志通過 tcp 傳輸到logstash-collector 的 6000 端口并且日志使用 json-template 格式化。
同樣我們需要建立 01-json-template.conf,property 的 key 值我們可以通過 rsyslog 官網獲取。
下面我將介紹 rsyslog 如何收集容器日志。
首先我們需要修改我們的應用容器 log-driver 為 syslog(可以通過 rancher-ui 或者rancher-compose)來完成。
其次我們需要設置我們日志接收端 rsyslog 地址,可以通過 log_opt 指定syslog-address:hostname:tcp_port 來完成。
log_opt 可以指定許多 syslog 支持的選項比如 facility 等,在此不一一列舉。目前日志顯的雜亂無序。如何去按照 container 或者 stack 或者 service 去區分日志呢?
syslog 的 tag 屬性為我們支持了自定義的標簽,通過打 tag 的方式我們可以細粒度的自行切分日志。
Rancher 對 docker 的親和性極大程度的為我們提供了遍歷。我們可以通過 go templage 語法去獲取 rancher 環境下容器的特征值從而協助我們切分日志信息。
OK,現在我們再去查看 kibana 發現我們的容器日志已經展示在這里了。
最后我們可以按照 rancher catalog 規范,制作一鍵部署應用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27957.html
摘要:寶典系列來襲,相關的常見問題,本文一網打盡。在中的設置是以秒為單位的。在啟動時,執行模式遷移。它的競爭條件可能會留下一個鎖定條目,這將阻止后續的流程。更改為,并清除的值。確認更改在表中是否生效。如果認證未打開,則響應代碼應為。 Rancher FAQ寶典系列來襲,Rancher Server相關的常見問題,本文一網打盡。 1、Docker運行Rancher Server容器應該注意什么...
摘要:因此,另一種解決辦法像這樣的工具,則只是將和進行了結合,其功能尤其關注日志管理,比如格式檢查,日志語法分析,數據改進地址地理位置信息,元數據標簽等以及日志路由。 由Rancher社區維護的應用商店最近迎來了兩個明星項目——SPM 和 Logsene,來自Sematext的監控與日志工具。如果你已經熟悉Logstash,Kibana,Prometheus,Grafana這些監控或日志解決...
摘要:年正在柏林盛大舉行,來自等多個開源云原生社區的領先技術專家正匯聚一堂,以進一步推動云原生計算的教育和發展。例如,你還需要諸如負載均衡器和的服務來運行應用程序。負載均衡器可以進行高級定制,以滿足用戶的各類需求。 想要在生產環境中成功部署容器,你需要的不僅僅是容器編排。 2017年CloudNativeCon+KubeCon Europe正在柏林盛大舉行,來自Fluented、Kubern...
閱讀 3793·2021-11-12 10:34
閱讀 2812·2021-09-22 15:14
閱讀 777·2019-08-30 15:53
閱讀 3196·2019-08-30 12:53
閱讀 1280·2019-08-29 18:32
閱讀 2761·2019-08-29 16:41
閱讀 1056·2019-08-26 13:40
閱讀 1795·2019-08-23 18:07