docker~service將容器日志輸出到fluentd


我們把微小的服務發布到docker里,然后實現docker service啟動它,保證了服務的高可用性,然后把服務產生的日志輸出到fluentd,由它進行過濾和轉發,存儲到elasticsearch里,最后由kibana進行查詢與分析,整個過程都是異步進行,不會阻塞主線程,你只需要把日志輸出的控制台即可!Console.WriteLine!

.netcore在docker里產生日志的過程如下:

  1. vs,vscode開發程序
  2. 上傳到git,svn,tfs
  3. jenkins去獲代碼,編譯,發布
  4. 由sh調用Dockerfile生成鏡像
  5. 上傳到私有倉庫
  6. 下傳倉庫里的指定鏡像
  7. 啟動服務docker service,一般會與docker swarm集群一起使用
  8. 項目產生日志,輸出到控制台,同時可以保存到本地
  9. docker service的--log參數把它獲取,並發到fluentd服務端
  10. fluentd把它存儲到elasticsearch里
  11. kibana建立索引,查詢與分析日志

我們在生產docker服務時需要可以使用下面代碼實現上面的日志輸出的過程

   docker service create \
    --name "$SERVICE_NAME" \
    --hostname "{{.Node.ID}}-{{.Service.Name}}" \   #配置的是容器的主機名稱
    --network pilipa-network \
    --network pilipa-mysql-network \
    --network pilipa-elk-network \
    --mode global \
    --log-driver=fluentd \
    --log-opt=fluentd-address=192.168.1.65:24224 \
    --log-opt=tag=lind.{{.Name}} 

通過本講內容我們知道了,如何在docker service上將控制台日志輸出到fluentd上,這個在日志收集場合下是非常必要的!

感謝各位的閱讀!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM