Enviar pesquisa
Carregar
开源应用日志收集系统
•
2 gostaram
•
853 visualizações
K
klandor
Seguir
开源应用日志收集系统
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
terryice
阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路
mysqlops
开源应用日志收集系统
开源应用日志收集系统
reinhardx
分布式系统日志处理调研
分布式系统日志处理调研
klandor
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
vanadies10
数据库性能诊断的七种武器
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
vanadies10
Java@taobao
Java@taobao
vanadies10
Mais conteúdo relacionado
Mais procurados
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
vanadies10
imobile-beta技术沙龙
imobile-beta技术沙龙
posestudio
3, OCP - instance management
3, OCP - instance management
ted-xu
Single-Page App Development
Single-Page App Development
genify
MySQL数据库生产环境维护
MySQL数据库生产环境维护
mysqlops
数据访问层开发实践
数据访问层开发实践
xcq
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
liu sheng
手机之家新系统介绍及架构分享
手机之家新系统介绍及架构分享
Dahui Feng
淘宝双11双12案例分享
淘宝双11双12案例分享
vanadies10
SQL Server效能調校
SQL Server效能調校
國昭 張
美团数据库运维平台介绍
美团数据库运维平台介绍
Leo Zhou
DNN
DNN
guestfafcda
Altibase管理培训 管理篇
Altibase管理培训 管理篇
小新 制造
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
james tong
Xietingbao-Qcon2011
Xietingbao-Qcon2011
Yiwei Ma
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
ted-xu
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
ted-xu
12, OCP - performance tuning
12, OCP - performance tuning
ted-xu
Mais procurados
(18)
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
imobile-beta技术沙龙
imobile-beta技术沙龙
3, OCP - instance management
3, OCP - instance management
Single-Page App Development
Single-Page App Development
MySQL数据库生产环境维护
MySQL数据库生产环境维护
数据访问层开发实践
数据访问层开发实践
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
手机之家新系统介绍及架构分享
手机之家新系统介绍及架构分享
淘宝双11双12案例分享
淘宝双11双12案例分享
SQL Server效能調校
SQL Server效能調校
美团数据库运维平台介绍
美团数据库运维平台介绍
DNN
DNN
Altibase管理培训 管理篇
Altibase管理培训 管理篇
Oracle数据库体系结构简介.ppt
Oracle数据库体系结构简介.ppt
Xietingbao-Qcon2011
Xietingbao-Qcon2011
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
12, OCP - performance tuning
12, OCP - performance tuning
Semelhante a 开源应用日志收集系统
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
N-layer design & development
N-layer design & development
Xuefeng Zhang
美团前端架构简介
美团前端架构简介
pan weizeng
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
liu sheng
百度数据库中间层
百度数据库中间层
yp_fangdong
網站設計100步
網站設計100步
evercislide
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 Greenplum
Omni-Alex Chen
Beyond rails server
Beyond rails server
Michael Chen
改善Programmer生活的sql技能
改善Programmer生活的sql技能
Rack Lin
Spark tutorial
Spark tutorial
Lin JiaMing
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
mysqlops
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
liu sheng
Struts快速学习指南
Struts快速学习指南
yiditushe
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
Sky Jian
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统
melity78
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
boxu42
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
Semelhante a 开源应用日志收集系统
(20)
Hacking Nginx at Taobao
Hacking Nginx at Taobao
N-layer design & development
N-layer design & development
美团前端架构简介
美团前端架构简介
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
百度数据库中间层
百度数据库中间层
網站設計100步
網站設計100步
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 Greenplum
Beyond rails server
Beyond rails server
改善Programmer生活的sql技能
改善Programmer生活的sql技能
Spark tutorial
Spark tutorial
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
Struts快速学习指南
Struts快速学习指南
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
开源应用日志收集系统
1.
开源应用日志收集系统
产品数据采集系统 [Sina 应用开发]项目组 2009年9月15
2.
自我介绍
王春生 就职于SINA ,LAMP 平台高级架构师 喜欢mysql、storage、web service等系统架 构的设计和优化,目前比较关注分布式架构及 OPENAPI相关 联系方式: msn: vanilla_cn@hotmail.com Mail: chunshengster@gmail.com
3.
文档介绍
介绍本人今年的一个小项目 从项目的需求出发,经历需求分析、技术 方向选择、开源软件选型、性能测试、应 用层协议封装以及最后的系统可靠性跟踪 验证等过程
4.
需求陈述
应用项目存在大量接口使用情况,无法深 入监控 将服务器上分散存在的各种日志数据(访 问日志、错误日志、程序跟踪日志、用户 行为日志等混杂的数据)集中收集汇聚 …………………… 需要有一套能够深入到应用程序的系统快 速收集各种日志
5.
目标
本系统目标为对上述各种日志进行采集, 传输,汇集 支持灵活的策略对日志进行过滤、分离 针对日志内容进行存储、通知、警报等响 应
6.
项目范围:
重点对数据传输层进行服务器选型、功能 尝试、构想、架构设计、实现 对数据采集层需求、策略、实现等进行分 析、尝试,实现简单demo 对数据存储做简单的策略,方便查询
7.
项目进展 • 选型和架构设计任务
• 日志采集器分析及方案设计 • 日志存储分析及方案设计
8.
项目进展—选型任务
重点关注三款日志服务器 Syslog-ng Rsyslog Scribe server
9.
项目进展—选型任务
选型标准 对系统日志的支持(不改变原始系统日志的记 录方式) 对PHP及其他应用语言的接口 对syslog标准的支持(对扩展要求提供保证) 功能及其扩展性 性能及其可靠性 灵活架构
10.
项目进展—SYSLOG-NG
重点对syslog-ng进行评测 功能: 数据接口支持: unix-stream TCP SSL-TLS (OSE支持TLS) Fifo-buffer 对过滤器,格式化数据,和数据重写的支持 Filter Parse Rewrite
11.
项目进展—SYSLOG-NG
性能 日志采集层 日志转发层 日志存储层 可靠性
12.
项目进展—SYSLOG-NG
扩展性(对分布式架构的支持) FC 3164中的定义
13.
项目进展—SYSLOG-NG
扩展性(对分布式架构的支持) SYSLOG-NG的扩展性支持
14.
项目进展—SYSLOG-NG
扩展性(对分布式架构的支持) SYSLOG-NG的扩展性支持
15.
项目进展—SYSLOG-NG
扩展性(对分布式架构的支持) SYSLOG-NG的扩展性支持
16.
项目进展—SYSLOG-NG
至此,结论: Syslog-ng基本上能够满足我们对日志记录、 汇总、过滤、触发等需求
17.
项目进展—其他
RSYSLOG SCRIBE SERVER
18.
选型任务总结及架构设计
Syslog-ng是一个我们可以更加深入尝试 的日志服务器,因为: Rfc Linux系统特性 过滤器 触发器 存储
19.
选型任务总结及架构设计
结合syslog-ng自身特性及sina网络部署 的状况,设计了如下结构-平面结构:
20.
选型任务总结及架构设计
立体部署结构
21.
选型任务总结及架构设计
该架构的优点 数据采集层 层层控制 角色 数据转发层 清晰 中心存储节点 响应策略 日志格式统一 任务明确 稳定 快速 过滤器快速触发
22.
选型及架构设计存在的问题:
当前问题 转发层及中心存储节点数据收敛汇聚,解决重 复数据大量发送的问题 触发策略的进一步分析和明确 跨网段可靠性保证 (TLS) 严重依赖syslog-ng服务,其稳定性和监控措 施 其他问题 ……
23.
项目进展—采集器分析及方案 • 需求分析-日志归类
• 消息体格式定义 • 采集器策略设计 • 采集器DEMO
24.
• PV日志
• 调试日志 • 登录日志 • 队列日志 采集器分析及方案 • 激活日志 • 删squid日志 • 上传插件日志 • 成功日志 统计 需求分析—日志分类程序跟踪 日志 日志 用户行为 错误 日志 日志 • 也可算作 • 数据库(包括 memecache服务器 统计日志 )错误 • HTTP接口错误 一种 • 应用程序错误
25.
采集器分析及方案
针对上面各种日志,提取其关键属性: 级别 时间 产品[模块] 类别 细节描述 结合RFC3164及RFC5424,我们定义 出如下日志格式,以满足记录需求: PRI TIMESTAMP HOSTNAME PRODUC PROCID T Header部份 MODULE SUMMAR DETAIL FILENAME LINENO Y Body部分
26.
采集器分析及方案-策略草案
结合前面设计的系统架构,设计了如下策 略草案: 以级别来命名(七种级别和策略) define("LOG_INFO_STORE",1); // 信息日志,并转发到中心机 define("LOG_WARNGING_STORE",2); // 警告日志,会发送邮件给相应工程师并转发到中心机 define("LOG_ERROR_STORE",3); //错误日志 ,发送邮件,短信给相应工程师并转发到中心机
27.
采集器分析及方案-策略草案
define("LOG_CRITICAL_STORE",4); // 严重错误日志,发送邮件,短信给相应工程师,还会 抄送邮件,发送短信给相应的领导,同时转发到中心 机 define("LOG_INFO_TEMP",5); // 信息日志,只在中转机上存储一段时间 define("LOG_WARNGING_TEMP",6); // 警告日志,发送邮件给相应工程师,在中转机上存储 一段时间 define("LOG_ERROR_TEMP",7); // 错误日志,发送邮件,短信给相应工程师,在中转机 上存储一段时间
28.
采集器分析及方案-How To
29.
采集器分析及方案-How To
日志服务工作时序图
30.
采集器分析及方案-DEMO
目前实现了两个php的lib库 Php4 实现 Php5-class实现 如何使用? 日志记录接口函数: Int SinaLog::log(int $level , array $data)
31.
How To—配置
SinaLog.php文件放入某个产品项目下面 的固定位置 <?php //必须!产品名称,每个项目使用日志接口文件时必须定义PRODUCT的值 define("PRODUCT", "blog"); //可选!当前日志记录是那个模块 define("MODULE", "default_module"); //可选!如果日志记录出错,发邮件通知给谁(相关运维人员) define("MAIL_TO", "dexin@staff.sina.com.cn"); ?>
32.
How To—代码模板 //step1:包含 require_once ("../SinaLog.php"); .... //step2:准备数据 $data
= array ( 'module' => 'test_module', 'summary' => 'add data', 'detail' => 'add some data: $msgstr : to database', 'filename'=>__FILE__, 'linenum'=>__LINE__ ) //step3:设置日志记录级别 $level = REALY; //step4:调用 SinaLog::log($level,$data)
33.
How To—其他样例 1
只发送到中转机 $level = RELAY; //或$level = LOG_INFO_TEMP $data = array( 'module'=>'search', 'summary'=>'user_serarch', 'detail'=>'$username at time $time process a search using keyword:$kerword', ); $result = SinaLog::log($level, $data);
34.
How To—其他样例 2
社区搜索产品,记录一些用户的行为日志, 需要发送到中心服务器: $level = LOG_INFO_STORE; //或$level = RELAY $data = array('module'=>'search', 'summary'=>'user_serarch', 'detail'=>'$username at time $time process a search using keyword:$kerword', ); $result = SinaLog::log($level, $data);
35.
How To—其他样例 3
发送到中心机,并发送邮件,手机短信 $level = CENTER_MAIL_SMS;//或$level = LOG_ERROR_STORE; $data = array('module'=>'comment', 'summary'=>'add_comment', 'detail'=>'$username add_commnet to article:$articlename failed, could not connect to database', 'filename'=>__FILE__, 'linenum'=>__LINE__ ); $result = SinaLog::log($level, $data);
36.
存储方案的简单设计
目前对存储的设计相对简单,只考虑文本 的存储 数据转发层 中心存储节点 目录规则: PROJMODULEDATELEVEL DATEPROJMODULELEVEL 转储策略 数据转发层服务器日志暂存7天,无特殊说明情况下删 掉 中心存储节点日志暂存30天,无特殊说明情况下删掉
37.
其他展示-记录后的消息和协议对应
log消息片段: Mar 31 13:59:01 hanyh-laptop blog[15029]: postmodule|this is sumarry| this is content :It's uid gid bid tid loveid|/home/hanyh/workspace/SuperMar io/src/t.php|9
38.
其他展示-性能问题
目前根据压力测试—1w/s 可靠性监控问题(丢数据):
39.
其他展示-日志统计
40.
回顾&总结:
对syslog协议的分析寻找技术方向,扩展 标准协议 通过对syslog-ng、rsyslog的了解和测试 选定开源产品 对扩展后的协议进行应用层封装,便于开 发工程师使用 通过适当的系统调试和跟踪记录手段对技 术的有效性进行验证
41.
Q&A
?
42.
谢谢
Baixar agora