日志需求
现在有这样一个需求:服务器集群中存有大量的日志,我需要解析出这些日志转换成特定的信息,想要将这些解析出的数据实时入库,在架构方面,大家有什么好的建议?修改写补充说明举报添加评论 分享 • 邀请回答按票数排序2 个回答赞同反对,不会显示你的姓名梁涛,运维主管@七牛云存储0
·
按票数排序
2 个回答
0. 不要假定外部采集软件的行为;
1. 输出固定格式(可以扩展,要有规则可循),纯文本,尽量输出行级数据;
2. 尽量使用有意义的短语来命名和区分Log出自哪台机器,便于扩展;
3. Log名称要带上时间。
1. 输出固定格式(可以扩展,要有规则可循),纯文本,尽量输出行级数据;
2. 尽量使用有意义的短语来命名和区分Log出自哪台机器,便于扩展;
3. Log名称要带上时间。
1. 存放日志的服务器不要直接参与解析工作。
应当有一个集中存放日志的服务器(集群)进行日志解析并入库。这样做的好处是,数据库入口可控;解析程序部署管理方便;减少日志分析对服务器带来的压力。如果有资源的话,集中存储和解析程序分开是更好的选择。大致步骤就是 web服务器 ----上传到集中存储 ---- 解析服务器从集中存储解析 ---- 入库到数据存储服务中
2. 日志解析程序必须支持重启,重复启动,断点
由于日志的丢失,延迟上传等等都是可能发生的。因此解析程序必须考虑这些极端情况。
3. 入库数据产品的选择
根据入库数据量的大小可以选择不同的数据产品。
OLTP数据库,容量有限,处理速度也有限。一个mysql实例能处理的每秒insert 一般在1w以内。且随着数据量的增大速度不断变慢。当然为了节省开发成本,可以考虑tokuDB(一个mysql fork)这个产品。
OLAP数据库,列式存储,查询速度快,入口并发小,容量扩展麻烦。Greenplum此类的小集群OLAP数据库查询效率高,适合中等数据量。又由于之前数据库的入口可控,因此可以控制插入速度和插入并发。不会造成入库的瓶颈。
分布式数据库,超大数据量的不二选择。HBASE除了需要一定的开发成本之外,可扩展和性能都是一流的。
应当有一个集中存放日志的服务器(集群)进行日志解析并入库。这样做的好处是,数据库入口可控;解析程序部署管理方便;减少日志分析对服务器带来的压力。如果有资源的话,集中存储和解析程序分开是更好的选择。大致步骤就是 web服务器 ----上传到集中存储 ---- 解析服务器从集中存储解析 ---- 入库到数据存储服务中
2. 日志解析程序必须支持重启,重复启动,断点
由于日志的丢失,延迟上传等等都是可能发生的。因此解析程序必须考虑这些极端情况。
3. 入库数据产品的选择
根据入库数据量的大小可以选择不同的数据产品。
OLTP数据库,容量有限,处理速度也有限。一个mysql实例能处理的每秒insert 一般在1w以内。且随着数据量的增大速度不断变慢。当然为了节省开发成本,可以考虑tokuDB(一个mysql fork)这个产品。
OLAP数据库,列式存储,查询速度快,入口并发小,容量扩展麻烦。Greenplum此类的小集群OLAP数据库查询效率高,适合中等数据量。又由于之前数据库的入口可控,因此可以控制插入速度和插入并发。不会造成入库的瓶颈。
分布式数据库,超大数据量的不二选择。HBASE除了需要一定的开发成本之外,可扩展和性能都是一流的。
更多推荐
已为社区贡献5条内容
所有评论(0)