小编Rom*_*man的帖子

是否可以为ElasticBeanstalk Docker应用程序进行集中日志记录?

我们在Elastic Beanstalk Docker容器环境中运行自定义Docker Web应用程序.想要在外面查看应用程序日志.无需通过实例或AWS控制台下载.

到目前为止,这两种解决方 也许有人为Elastic Benastalk Dockerized应用程序实现了集中式日志记录?

解决方案1:AWS Console日志下载

不可接受 - 需要下载日志,每次都提取.非实时.

解决方案2:S3 + Elasticsearch + Fluentd

fluentd没有从S3检索日志的插件有优秀的S3插件,但它仅用于日志输出到S3.不适用于S3的输入日志.

解决方案3:S3 + Elasticsearch + Logstash

缺点:只能从整个桶中提取所有日志或什么也不能.

问题在于Elastic Beanstalk S3 Log存储结构.您无法指定文件名模式.它可以是所有日志,也可以不是.ElasticBeanstalk在包含随机实例和环境ID的路径中将日志保存在S3上:

s3.bucket/resources/environments/logs/publish/e-<random environment id>/i-<random instance id>/my.log@
Run Code Online (Sandbox Code Playgroud)

Logstash s3插件只能指向resources/environments/logs/publish /.当您尝试将其指向environment/logs/publish/*/my.log时,它不起作用.这意味着你无法拉出特定的日志并标记/输入它以便能够在Elasticsearch中找到它.由于AWS将所有环境和实例中的日志保存在相同的文件夹结构中,因此您甚至无法选择实例.

解决方案4:AWS CloudWatch控制台日志查看器

可以将自定义日志转发到CloudWatch控制台.实现这一点,将配置文件放在应用程序包的.ebextensions路径中:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudwatchlogs.html

有一个名为cwl-webrequest-metrics.config的文件,它允许您指定日志文件以及警报等.太棒了!?除了配置文件格式既不是yaml,xml或json,也没有记录.该文件绝对没有提及,它的格式要么在AWS文档网站上,要么在网络上的任何地方.要在CloudWatch中显示一个日志文件,不仅仅是添加配置行.实现这项工作的唯一可行方法似乎是反复试验.大!?除了您需要重新部署环境的每次尝试.

关于如何使用自定义日志进行此操作只有一个参考:http://qiita.com/kozayupapa/items/2bb7a6b1f17f4e799a22我不知道该人如何逆向设计文件格式.

缺点:

  • Cloudwatch在显示时似乎无法将日志拆分为列,因此您无法轻松按优先级等进行过滤.
  • AWS Console日志查看器没有自动刷新以跟踪日志.
  • 梦魇没有文档配置文件格式,没办法测试.试验和错误需要重新部署整个实例.

amazon-cloudwatch logstash docker amazon-elastic-beanstalk

22
推荐指数
1
解决办法
4204
查看次数

如何使用JPA和Hibernate自动序列化和反序列化JSON字符串?

我有数据类/表"用户",其中包含"首选项"列

CREATE table "user"; 
ALTER TABLE "user" ADD COLUMN preferences TEXT;
Run Code Online (Sandbox Code Playgroud)

首选项类型是TEXT,我在那里存储JSON.

public class User extends AbstractEntity{
public String preferences;
}
Run Code Online (Sandbox Code Playgroud)

所以user.preferences价值是"{notifyByEmail:1, favouriteColor:"blue" }"

如何用一些注释包装它,以便我可以像访问它一样

user.preferences.notifyByEmail
Run Code Online (Sandbox Code Playgroud)

或者不需要包装成数据对象

user.preferences.get("notifByEmail");
user.preferences.set("notifByEmail",true);
Run Code Online (Sandbox Code Playgroud)

我想可能会有一些杰克逊注释,我可以添加到字段中

@JsonGenerate
public String preferences;
Run Code Online (Sandbox Code Playgroud)

我是JPA的新手,文档很陡.

我相信我的情况很常见.有谁可以提供任何例子?

orm json hibernate jpa jackson

6
推荐指数
2
解决办法
1万
查看次数

我们是否需要根据监控使用60 IOPS的RDS实例的预配置IOPS?

我们有PostgreSQL实例每秒服务数十个r/w查询.

  • 实例类型:db.m3.2xlarge
  • 实例预配置IOPS(SSD):1000
  • 实例存储大小:100GB,数据库大小约为5-10GB.

它为具有读写查询的100个并发客户端提供服务.然而,当我们查看Cloudwatch Monitoring时,它显示的IOPS范围为20-60.

并且读取iOPS大约为0!

在此输入图像描述

对于100个连接和客户端始终执行读/写查询,这是不对的?Postgres配置是标准配置,我们没有关闭fsync.

缓存是否如此有效以至于IOPS不是数据库大小为5GB的因素?或AWS监控控制台错误?

为此数据库实例支付1000 IOPS额外花费300美元.您可以购买的最低IOPS是1000.

我想知道我们能不做IOPS吗?

  • 或AWS监控不正确?
  • 或者,如果我们有非IOPS服务器,我们现在拥有的20 IOPS将会破坏服务器性能?
  • 或者使用5GB数据库,它主要适用于缓存和IOPS不是一个因素?

postgresql amazon-web-services amazon-rds provisioned-iops

5
推荐指数
2
解决办法
4246
查看次数