简体   繁体   English

如何在 docker-compose 中设置和调用“awslogs”?

[英]How to set up and call 'awslogs' in docker-compose?

I have AWS EC2 with CloudWatch set up as described here .我按照此处所述设置了带有 CloudWatch 的 AWS EC2。

My web server is docker-compose based one.我的网络服务器是基于 docker-compose 的。 How to it configure CloudWatch and call logging?如何配置 CloudWatch 和通话记录? Note: I did not set up ECS in AWS.注意:我没有在 AWS 中设置 ECS。

So i found that it's easy enough to use python's watchtower and configure my docker-compose.yml as follows:所以我发现使用 python 的 watchtower 并配置我的 docker-compose.yml 很容易,如下所示:

web:
    
...
    logging:
      driver: "awslogs"
      options:
        awslogs-region: <region>
        awslogs-group: <CloudWatch group>
        awslogs-stream: <CloudWatch group stream> 

Then in you py file, add these lines:然后在你的 py 文件中,添加以下几行:

logging.basicConfig(level=logging.INFO)

app = Flask(__name__)

try:
        session = boto3.Session(
            aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
            aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
            region_name=os.environ['AWS_REGION']
        )
        handler = watchtower.CloudWatchLogHandler(
            boto3_session=session,
            log_group=os.environ.get('AWS_CLOUDWATCH_LOG_GROUP', "my-group"),
            stream_name=os.environ.get('AWS_CLOUDWATCH_LOG_STREAM', "my-group-stream"),
            create_log_group=False
        )
        app.logger.addHandler(handler)
except Exception as cerr:
    app.logger.error("CloudWatch logging setup failed: %s", cerr)

Then you can simply add a line like this:然后你可以简单地添加这样一行:

app.logger.info("In root Page")

And you can see all your logs in your console's CloudWatch/LogGroups/my-group/my-group-stream您可以在控制台的 CloudWatch/LogGroups/my-group/my-group-stream 中查看所有日志

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM