大家好,今天给各位分享如何优化日志系统的一些知识,其中也会对应用系统日志解决办法进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
本文目录
如何优化日志系统
答:此题邀请xinghua来解答,他总结了实际项目中对elk系统的一些调优的经验,与你分享百亿级elk日志系统优化纪实。
导语:elk是搭建实时日志分析系统的通用解决方案,通过elk可以方便地收集、搜索日志。但随着日志量的增加,根据实际应用场景的优化调整能够更充分的利用系统资源。本文主要记录我们项目中对elk系统的一些调优。随着王者人生相关业务的快速发展,我们每天日志量很快超过了20亿条,存储超过2TB,elk日志系统的压力逐渐增加,日志系统的调整优化已经迫在眉睫。
1、日志系统架构(elk日志系统架构)
FileBeat是一个轻量级的日志收集处理工具(Agent)。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。
Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。
2、优化日志系统以下主要介绍filebeat、logstash、elasticsearch的一些优化调整
2.1filebeat优化
(1)负载均衡
问题:当日志量非常大(单机超过每天超100GB)的模块上报日志时,日志落地延时大,要等一段时间才能在es里查出来。
原因:
当filebeat.yml配置文件里hosts配置了多个Logstash主机,并且loadbalance设置为true,则输出插件会将已发布的事件负载平衡到所有Logstash主机上。如果设置为false,则输出插件仅将所有事件发送到一个主机(随机确定),如果所选主机无响应,则会切换到另一个主机。默认值为false。
方案:配置多个hosts,配置loadbalance为true
(修改配置前只有一个连接)
(负载均衡优化后多个连接)
效果
单机filebeat吞吐量变大
(多连接优化后单机出流量变大)
(es创建索引的速度变大)
(2)上报采集源服务器ip
问题:不是所有日志都会打印本机IP,比如异常错误日志往往无法打印服务器IP。这部分日志收集之后无法区分来源,难以定位问题。
原因:filebeat目前不支持上报本机ip
方案:添加字段client_ip,重启脚本动态修改client_ip为本机IP
filebeat.yml部分配置
restart_filebeat.sh示例
效果
异常日志也能定位服务器IP
2.2logstash优化
(1)日志清洗、格式化
问题:采集的原始日志不规范,需要过滤,格式化
方案:利用logstash进行清理
logstash.conf示例
效果
以删掉message字段为例看效果
(删掉message前冗余一份完整原始日志)
效果
平均每条日志存储空间从1.2KB下降到0.84KB,减少了近30%的存储
(每天日志统计)
2.3elasticsearch优化
(1)优化模板_template配置
问题:随着王者荣耀wifi特权上线,日志量激增,默认配置下磁盘达到瓶颈。
原因:默认配置满足不了项目需要
number_of_shards是数据分片数,默认为5
当es集群节点超过分片数时,不能充分利用所有节点
number_of_replicas是数据备份数,默认是1
方案:调整模板配置
number_of_shards改为72
number_of_replicas改为0
效果
每天日志的72个分片均匀分部在36个节点
(每个节点分配了2个分片)
备份从1改成了0,减少了一半的写入
(io使用率降低)
3.总结通过以上调整,目前elk日志系统可以支持每天超过20亿条,2.2TB的日志,峰值创建索引超6万QPS
后续优化:不同配置(磁盘空间)机器按权重分配,充分利用资源
蘑菇盒子下游戏提示错误日志记录
在蘑菇盒子下游戏中,错误日志记录是一种重要的技术手段,用于追踪和记录游戏运行时的错误和异常情况。以下是一些常见的错误日志记录方法和技术:
1.异常捕获:在游戏代码中使用异常处理机制,捕获可能发生的异常,并将相关信息记录到日志中。可以使用try-catch语句块来捕获异常,并在catch块中将异常信息写入日志文件。
2.日志框架:使用专门的日志框架,如Log4j、Logback等,来记录错误日志。这些框架提供了丰富的日志记录功能,并可以配置不同级别的日志信息,方便开发人员进行调试和故障排查。
3.自定义日志记录:开发人员可以自行编写日志记录函数或类,用于记录游戏中的错误信息。可以定义不同的日志级别,如错误、警告、调试等,根据实际需求选择记录的详细程度。
4.栈追踪:在错误日志中记录异常的栈追踪信息,可以帮助开发人员定位错误发生的位置和原因。栈追踪信息可以显示函数调用的层次和顺序,有助于快速定位和解决问题。
5.错误码和错误描述:在记录错误日志时,可以同时记录错误码和错误描述。错误码可以作为唯一标识,方便快速定位和分类错误。错误描述可以提供更详细的错误信息,帮助开发人员理解和解决问题。
通过记录错误日志,开发人员可以及时发现和解决游戏中的问题,提高游戏的稳定性和用户体验。同时,错误日志也可以用于后续的故障分析和优化工作。
事件查看器中的系统日志出现多处错误信息应该怎么办
错误日志是给微软的程序员看的因为里边主要是二进制流数据
电脑经常蓝屏的话你要注意一下
打开机箱清理一下内存条、主板、CPU、显卡和散热片上的灰尘
使用windows自带的文件碎片管理工具处理一下系统盘上的文件碎片
有优化大师的话再好好配置一下就可以了
如果还是不行的话就只能重装系统了
怎么停止系统日志的记录
1、win10系统,鼠标右键点击此电脑,然后选择管理。
2、进入计算机管理,点击服务和应用程序。
3、点击服务和应用程序后,点击服务。
4、点击服务后,找到windowseventlog,点击鼠标右键,然后选择停止就可以了。
关于如何优化日志系统和应用系统日志解决办法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。