logagent是部署在每台服务器上的一个deamon进程,起着日志数据的传输通道。对外提供http服务拉取日志,结构如下:
其中,
- filter:请求过滤器,负责访问源解析统计,权限认证等
-
container:包含了正在访问的文件句柄集合,当日志滚动文件名变更发生时可以防止错误定位
- handler:获取日志数据的处理器,采用偏移量随机读取的方式
- storer:保存用户成功获取的文件位点信息
1.长链接 vs 短链接
http1.1默认支持长链接,避免重复建立连接带来的性能消耗。但长链接会占用系统资源,在大量请求时存在隐患,故选择短链接方式,即关闭http中的keep-alive
2.请求规范
http://127.0.0.1:8080/get?file=/home/admin/tomcat/logs/catalina.log&user=test&pwd=123456
其中,
get:指明是获取日志数据的请求
file:日志文件的全路径,支持通配符*指定某目录下所有的日志文件
user:请求用户
pwd:请求用户的授权密钥,md5加密
3.稳定性
logagent是业务部署在一起的,考虑稳定性做如下限制
-
一台线上实体机同时允许的单用户最大访问文件数100
-
一台线上实体机同时允许的最大链接数200
-
一台线上实体机允许单用户单次拉取日志的最大大小为20M
拉取日志的速度赶不上打日志速度时,须提高限制大小或并发度
如果logagent意外down掉,支持恢复后从上次位点继续获取数据
4.性能方案
因为agnt是java编写的,主要考虑满负荷运行下进程gc对宿主业务系统带来的各指标影响,具体以测试为准
5.安全策略
- 访问文件的权限
- 请求中验证用户和授权密码
- 连接agent的收集机器白名单授权
6.日志模块设计
普通的日志文件是一条条的纪录,以换行符进行分隔,在进行截取时应获取一条完整的日志,即
当前位点+ 单次最大支持传递量= 换行符,按正常截取
当前位点 + 单次最大支持传递量!= 换行符,往前找最近一个换行符截取
当前位点 + 单次最大支持传递量> 文件end,直接截取到文件end
扩展考虑支持用户指定分隔符进行切割
按用户存储文件的位点信息,一个文件可以支持多个用户同时拉取数据,即该文件会分别保留这些用户的位点信息,保留路径由logagent默认指定,采用拉取成功后异步更新的策略
支持当日志文件发生滚动时,可以定位到未拉取完的旧文件。保留文件的句柄(inode),在每次拉取数据时获取当前文件大小,直到该句柄文件内容被拉取完成
7.运维支持
- 权限:包括机器、文件、白名单
- 提供获取某应用的所有ip地址等基础服务
- 装机部署&远程控制
附件focus.zip为提供的logagent源码,供参考~
- 大小: 75.7 KB
分享到:
相关推荐
通过源系统端的Agent进程对数据库Log日志进行实时分析,获取交易指令,将交易指令 和交易数据经过格式转化生成数据格式;过滤转化为与生产应用相吻合的指令;再次实 时传输到目标端系统
经历过多方考验,对于大规模 Agent 日志采集的治理管控,采集任务与 Agent 的可观测性、健康度巡检、故障诊断已经沉淀出一套完善的解决方案。KnowAgent 以应用为采集粒度,满足了从业务层面创建采集任务的需求,并...
通过在系统间传递日志或是主动发起交互,来判断被监控系统状态与安全性,发现隐藏在背后异动与威胁,提供了一种开发性的系统建设思路,透视出构建大数据平台所用的基础技术解决方案。 目录 云WAF威胁防护 安全网关...
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种...
解决方案: 为了方便系统命令查看日志,不压缩,总共需要3.0T 的空间,刚好有一些2U 的服务器,每台共1T 的磁盘空间。 为了避免系统盘坏掉影响服务器使用,对系统盘做了raid1。 为了避免其他存放数据的盘坏掉导致...
Ballcone是一种快速,轻量级的服务器端Web分析解决方案。 您的网站上不需要JavaScript。 屏幕截图 设计目标 简单。 Ballcone几乎需要零设置,因为它更喜欢约定而不是配置 效率。 借助底层的柱状数据库,Balcone对...
3.1.1_备份解决方案实验介绍 3.2.1_备份软件安装 3.2.2_备份软件安装 3.2.3_备份软件安装 3.2.4_备份软件安装 3.3.1_VSA安装 3.3.2_VSA安装 3.4.1_备份介质以及备份策略配置 3.4.2_备份介质以及...
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。...
ELK是三个开源软件的缩写,分别为...根据GoogleTrend的信息显示,ElasticStack已经成为目前最流行的集中式日志解决方案。ElasticStack包含:Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
1.2 日志采集如何工作 我们以 Flume 为例子讲些日志采集 Agent 是怎么工作的。 Flume 由三个局部组成:Source,Channel 和 Sink,对应于采集,缓存和保存三个环节。 其中,Source 组件用来采集各种类型的数据源,如...
Cubic 的目标是一站式java应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断问题的效率和能力。...
Zabbix是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题...
Zabbix是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。...
【Agent】控制台日志支持定时清空,避免日志文件太大 【Server】在线升级状态判断修复 【Server】修复项目获取进程信息失败 【Server】项目文件管理中显示项目文件存放真实目录 【Server】项目文件管理中文件夹不存在...
Bistoury的目标是一站式Java应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志,内存,线程,类信息,调试,机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断问题的效率和能力。...
- Common Management Agent - ePolicy Orchestrator(R) - GroupShield(TM) - ProtectionPilot(TM) - 第三方软件 - 访问保护 - 增添文件类型扩展名 - AutoUpdate - 缓冲区溢出保护 - 日志文件...
最近学习Nginx+tomcat实现 负载...3. 利用memcached把多个tomcat的session集中管理,这是最直接的解决方案,但是操作起来也最为复杂。们的系统既要求性能,又要比较好的利用上负载均衡 关于memcached稍后会发表出来
这是一个技术问题,我相信一定有解决方案,但是我也没太多时间和精力去细究如何实现,自己的第一反应也无非是将前后端全部部署在Azure Web App中,然后打开后端的认证机制。但这样做又要花一些额外的工夫。好吧,...