簡體   English   中英

如何將多個日志文件發送到亞馬遜 cloudwatch?

[英]how to send multiple log files to amazon cloudwatch?

我有一個單體應用,目前正在轉移到 aws(使用 ecs/fargate),稍后將分解為微服務。 它使用了一個亞馬遜 linux 1 映像,其中配置了 apache、php 以及我的所有生產網站數據。 目前,它將日志發送到 /etc/httpd/logs 和 /var/www/vhosts/logs 中的多個文件。

據說我可以在 ecs task Definitions 中使用日志配置和卷做一些事情,但我找不到任何解釋如何做到這一點的細節的東西。

如果是容器,我永遠不會建議將日志寫入文件,最好將日志容器 stdout 和 stderr 寫入。

另一個有趣的事情是,如果你搬到 Fargate,你將如何處理日志文件? 所以不要將日志寫入文件,也不要將容器視為實例機器。

AWS 日志驅動程序的美妙之處在於,它將日志推送到 Cloud watch 日志,並且從 Cloud watch 將這些日志推送到 ELK 也非常容易。

Go 用於 AWS 日志驅動程序,設計您的入口點,使其將日志寫入容器中的 stdout 和 stderr。 通常,當您在前台運行進程時,這非常容易,它會自動將日志寫入容器標准輸出。

只需在您的任務定義中添加此行並添加雲監視角色。

            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "awslogs-wordpress",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }
            }

或者在此處輸入圖像描述

配置完成后,您將看到日志

在此處輸入圖像描述

使用 awslogs 日志驅動程序

您可以在任務中配置容器以將日志信息發送到 CloudWatch Logs。 如果您對任務使用 Fargate 啟動類型,這允許您查看容器中的日志。 如果您使用 EC2 啟動類型,這使您可以在一個方便的位置查看來自容器的不同日志,並且可以防止容器日志占用容器實例上的磁盤空間。 本主題可幫助您開始在任務定義中使用 awslogs 日志驅動程序。

筆記

任務中容器記錄的信息類型主要取決於它們的ENTRYPOINT command 默認情況下,捕獲的日志顯示命令 output 如果您在本地運行容器,您通常會在交互式終端中看到該命令,即STDOUTSTDERR I/O streams awslogs 日志驅動程序只是將這些日志從 Docker 傳遞到 CloudWatch Logs。 有關如何處理 Docker 日志的更多信息,包括捕獲不同文件數據或流的替代方法,請參閱 Docker 文檔中的查看容器或服務的日志。

在此處輸入圖像描述 aws-ecs-日志驅動程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM