使用MongoDB儲存Docker日誌__儲存

來源:互聯網
上載者:User

日誌是系統很重要的一個組成部分,通過日誌可以及時發現系統中存在的問題,也可以為修複問題提供線索。Docker提供了多種外掛程式方式管理日誌,本文就對使用MongoDB儲存Docker日誌的過程做個記錄。 資料流 Created with Raphaël 2.1.2 開始 Docker容器 FluentD MongoDB 結束

Docker產生的日期 發送到 FluentD,然後FluentD在轉存到MongoDB。 配置Fluentd

前提:作業系統是CentOS7,已安裝MongoDB3.4 1. 安裝Fluentd

CentOS 7的軟體庫並沒有包含Fluentd的安裝包,所以需要手動安裝。在CentOS使用的軟體td-agent。

# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

上面命令會在/etct/yum.repo.d/目錄中,建立一個td-agent的安裝庫 td.repo,然後自動安裝td-agent。安裝完畢後設為自動啟動。

# systemctl start td-agent# systemctl enable td-agent

如果在啟動過程中出現問題,可以查看位於/var/log/td-agent/下記錄檔td-agent.log 2. 配置將docker日誌轉存到MongoDB

轉存到MongoDB需要外掛程式支援,但是預設情況下td-agent是沒有安裝該外掛程式的,需要安裝。

# yum -y install td-agent-gemt# td-agent-gem install fluent-plugin-mongo

編輯/etc/td-agent/td-agent.conf,增加

## match tag=docker.* and dump to mongodb## 在docker啟動容器時,日誌的tag要符合docker.*的形式<match docker.*>  @type mongo  # 資料庫地址  host 127.0.0.1  # 資料庫連接埠  port 22017  # 儲存日誌的資料庫和資料集名稱  database docker  collection log</match>

重啟td-agent。 啟動容器

啟動容器的命令改為:

$ docker run --mount type=bind,source=/home/demo/app,destination=/app --log-driver=fluentd --log-opt tag="docker.log" python3:latest python3 /app/test.py

運行完畢後,可以到MongoDB中查看日誌。

參考文檔:
https://docs.treasuredata.com/articles/td-agent
https://docs.docker.com/engine/admin/logging/fluentd/
https://docs.fluentd.org/v1.0/articles/out_mongo

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.