`
85977328
  • 浏览: 1898558 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

日志架构(六)服务端设计

 
阅读更多
方案图


模块
前端http日志接口
分为single log,array logs;
修改nginx配置,支持超长URL的提交;
日志采用logrotate切割,结合crontab实现分钟切割;

收集器
主要采用flume
与nginx同机器部署agent,收集到collector,最终保存到hadoop1中;
主要采用rsync
在前端nginx服务器上开通rsync服务器端,具体开通办法可以参考:系统技术文档0005:部署rsync服务器,然后在hadoop的集群机器上将日志收集到本地,收集完成后删除前端日志服务器上相应的文件。Rsync收集命令如下:
rsync -azu --remove-sent-files $IP::NGINXLOG/logcenter.$THISHOUR*.log $MYPATH
收集之后把日志上传到hadoop集群。收集器每小时的第5分钟运行,收集上个小时生成的日志。日志上传到hadoop集群后调用解析器,解析日志。
收集器脚本:lcrsync.sh

解析器
均实现map/reduce接口
格式解析器:从hadoop1读取消息,结合配置数据库,将消息解析(csv)并保存到hadoop1;负责拷贝解析后的日志从hadoop1到hadoop2
拷贝有3中方案:
Hadoop distcp <srcurl> <desturl> copy file or directories recursively
flume收取
rsync
Hadoop2的目录/logcenter/dest
内容解析器:将解析后的日志格式(csv),插入到hive中

配置数据库
主要保存日志格式相关信息

集群管理器(待定)
使用zookeeper实现
监控收解析器的工作状态
解析器集群锁

日志中心管理系统
提供配置数据库的UI
结合日志配置提供日志开发文档
监控相关UI

配置数据库设计
具体字段及含义,请直接参照日志中心数据库SQL脚本


log_system:系统表
log_info:日志表
log_parameter:参数表
log_format:格式表
log_record:记录表
具体SQL脚本,请见附件

E-R图,如下所示:


接口设计
single log


array logs


Transfer logs


关于准实时收集方案
Hadoop1为存放原始日志和CSV日志的集群
Hadoop2是用于hive分析的集群(运行hive会启动很多task和job)
对于准实时收集日志的方案。目前经过考虑有以下几种办法:
Flume collector中开发插件,边收集边解析,直接将结果存入到hadoop2中
开发tomcat,直接受理http请求,生成CSV文件,flume agent来收集并放入hadoop2中
开发nginx插件,解析请求生成CSV放入日志文件中,flume agent来收集并放入hadoop2
  • 大小: 258.7 KB
  • 大小: 36.6 KB
  • 大小: 66.1 KB
  • 大小: 71.2 KB
  • 大小: 66.8 KB
分享到:
评论

相关推荐

    毕业设计选题系统的服务端设计.zip

    【标题】"毕业设计选题系统的服务端设计.zip"揭示了这个压缩包包含的是一个用于毕业设计选题的系统的后端部分源代码。这通常涉及到服务器端编程,数据管理,以及与前端交互的功能。 【描述】提到这个系统适用于毕业...

    notepad服务端设计文档1

    《notepad服务端设计文档1》详述了notepad应用的服务器端设计,该设计文档涵盖了从整体架构到模块详细设计等多个方面,旨在为用户提供笔记管理、公共资源管理和用户行为分析等功能。以下是文档的关键知识点: 1. **...

    Socket服务端架构设想

    下面我们将详细探讨Socket服务端架构的设计与实现。 首先,理解Socket的基本概念至关重要。Socket可以看作是两台计算机之间的通信通道,它定义了通信规则,包括数据格式、传输协议等。在服务端,通常会创建一个监听...

    游戏服务端框架设计方案

    文件`ServerModel.xls`可能包含了服务端架构的详细设计图,`Communicator.zip`可能是一个负责客户端和服务端通信的组件或工具的源代码或配置文件。 在实际开发过程中,还会涉及到性能优化、安全性、容错机制等方面...

    异构语言高可用性服务端的设计与实现

    综上所述,设计和实现异构语言高可用性服务端需要综合运用各种技术和工具,包括Spring Core作为基础架构,通信模块实现服务间的高效交互,业务层确保功能实现和错误处理,通用工具包提升开发效率,同时结合微服务...

    千年服务端

    7. **错误处理与日志记录**:服务端需要记录详细的运行日志,以便于开发者追踪和诊断可能出现的问题。 8. **负载和性能监控**:通过监控工具持续跟踪服务器的资源使用情况,如CPU、内存和网络带宽,以便在出现问题...

    本科毕业设计“砾风小投票”的服务端.zip

    【砾风小投票的服务端...综上所述,“砾风小投票”的服务端设计涵盖了多个IT领域的知识,包括但不限于架构设计、编程语言选择、数据库管理、网络通信、安全性、并发处理等,是一个全面展示本科毕业生技术实力的项目。

    android客户端+服务端

    在Android应用开发中,"客户端+服务端"的架构模式是常见的设计方式,它涉及到Android客户端与远程服务器之间的数据通信和交互。这种模式允许应用程序在本地执行用户界面操作,同时利用服务器的计算能力和存储资源来...

    C# KTV服务端程序

    综上所述,【C# KTV服务端程序】涵盖了C#编程、数据库设计、网络通信、系统架构等多个方面的知识点,是一个综合性的IT项目。通过深入学习和实践,开发者不仅可以掌握KTV业务流程的信息化管理,还能提升在C#开发中的...

    奇迹世界服务端源码

    总的来说,"奇迹世界服务端源码"是一份宝贵的教育资源,它能帮助开发者深入理解大型网络游戏的架构设计,提升在服务器开发领域的专业技能。无论是对于初学者还是有经验的开发者,都能从中受益匪浅。然而,需要注意的...

    高并发服务端分布式系统设计概要

    总的来说,设计高并发服务端分布式系统需要考虑多个层面,包括系统架构、数据存储、计算模型、服务治理、容错机制以及安全性。理解这些核心概念,并结合具体业务场景进行优化,才能构建出高效、稳定、可扩展的分布式...

    热血江湖12.0服务端

    1. **服务端架构**:热血江湖12.0服务端可能采用了分布式架构,通过多个服务器节点协同工作,提高游戏的稳定性和并发处理能力。这涉及到负载均衡、数据库集群等技术,确保玩家在游戏中不会因服务器压力过大而出现...

    完整神武新章服务端源码

    10. **游戏服务器架构**:服务端可能采用分布式或集中式架构,了解服务器架构设计原则,如模块化、分层结构、微服务等,有助于理解源码的整体结构和工作原理。 以上是对《完整神武新章服务端源码》中涉及的主要知识...

    dhsa_server_石器服务端_石器_

    8. **故障排查与日志分析**:学习如何通过日志文件诊断服务端的问题,优化性能,确保服务稳定运行。 9. **服务器硬件与架构**:根据游戏规模,选择合适的服务器配置,了解负载均衡和集群技术。 通过下载和研究这个...

    神 皇 MirServer 服务端

    MirServer 的设计和架构通常包括以下几个主要部分: 1. **连接管理**:服务端需要处理来自客户端的连接请求,进行身份验证,并管理玩家的在线状态。这涉及到网络编程,常用协议如TCP/IP,以及负载均衡技术,以应对...

    Red5+Android 直播系统的架构服务端的直播流工程.rar

    6. **服务端架构设计**:直播系统的服务端需要考虑高可用性和可扩展性。可能采用负载均衡技术,如Nginx反向代理,将请求分发到多台Red5服务器,保证服务的稳定性。同时,数据库设计也需要考虑数据的一致性和安全性,...

    android服务端

    1. **服务端架构** - 服务端通常采用RESTful API的设计模式,提供HTTP/HTTPS接口,允许客户端通过HTTP方法(GET, POST, PUT, DELETE等)进行数据操作。 - 在这个案例中,服务端可能使用Java或Kotlin编写,与...

    Manning.Microservices.Patterns.2018.10.pdf 微服务架构设计模式(英文版)-有详细的书签目录

    《微服务架构设计模式》是由Chris Richardson所著的一本关于微服务架构的书籍,它深入探讨了在Java环境中应用微服务架构时遇到的各种设计模式,以及如何实现它们。本书不仅涵盖了微服务架构的基本理念,还提供了丰富...

    网页版游戏服务端

    11. **日志与监控**:通过ELK(Elasticsearch、Logstash、Kibana)或Prometheus+Grafana,收集并分析服务端的日志和性能指标,及时发现并解决问题。 12. **测试**:包括单元测试、集成测试和压力测试,确保游戏...

Global site tag (gtag.js) - Google Analytics