热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全面的Splunk应用日志分析介绍

2019独角兽企业重金招聘Python工程师标准Splunk是一款顶级的日志分析软件,如果你经常用grep、awk、sed、sort、uniq、tail、hea

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Splunk 是一款顶级的日志分析软件,如果你经常用 grep、awk、sed、sort、uniq、tail、head 来分析日志,那么你需要 Splunk。能处理常规的日志格式,比如 apache、squid、系统日志、mail.log 这些。对所有日志先进行 index,然后可以交叉查询,支持复杂的查询语句。然后通过直观的方式表现出来。日志可以通过文件方式传倒 Splunk 服务器,也可以通过网络实时传输过去。或者是分布式的日志收集。总之支持多种日志收集方法。

应用程序日志是系统运维人员以及开发人员特别关注的,应用日志可以全面记录应用程序的执行过程、状态以及结果,这些信息是帮助运维人员解决故障,开发人员改进程序的最有效信息。但是传统的日志管理工具往往对日志的格式有要求,很难快速适应非统一、规范的日志形式。而splunk超乎想象,除了可以处理交换机、防火墙、路由器以及操作系统的日志之外,应用程序日志处理起来也得心应手!

通常情况下,应用程序的日志信息存储在指定的目录下,采用任何文件共享的方式,比如挂载的或者网络共享的目录,只要Splunk服务器能够读取,它就能够远程采集这些日志信息。任何活动的应用程序,不管是J2EE、.Net应用程序、Web访问日志等等,只要有新的日志产生,Splunk会对其进行持续的索引。

也有朋友会担心,说如果我的应用程序产生的一个日志文件非常大,时间跨度很长,比如说一天才能产生一个日志文件,那么Splunk岂不是失去了实时性?其实不然,Splunk在监控大多数文件系统时,是即时读取日志信息的,只要检测到被监控目录有变更,Splunk就会读取新增加的数据信息,即使是日志文件正在被写入的时候,所以仍然能够保证实时性。

应用程序日志不同于一些专用设备的日志信息,比如网络设备的日志信息都有相对简短、固定和统一的格式,而应用程序则复杂的多。首先一条应用程序日志信息包含的信息量远远超出其他专用设备日志,往往有十几行,几十行,甚至几百行都很常见。其次,其格式并不是完全固定不变的,整体上结构统一,但是根据信息的类别可能有不同的字段。

所以对于应用程序日志进行监控时,Splunk提供了多条件的日志事件分割方法,以适应这种复杂结构。如果你在默认设置下监控应用程序日志时发现,Splunk把一个独立事件分割成了多个,或者把多行的日志事件按照每行一个事件给分割开了,此时不要担心,Splunk不可能自适应所有的应用程序日志格式,何况还有那么多自行定义的日志格式。

Splunk专门提供了一组参数对日志事件的分割进行控制。比如“SHOULD_LINEMERGE =”,这个参数选择“true”,则Splunk会把指定Source Type的日志事件按照多行事件来识别,也就是把多行信息识别成一个独立事件。同时配合这个参数的还有分割点的控制参数,比如“BREAK_ONLY_BEFORE_DATE =”,设置该参数把日志中发现的每个日期作为一个独立事件的分割点,我们知道每条日志事件一般都带有一个日期时间点。或者用“BREAK_ONLY_BEFORE = ”自己设置分割点的特征,特别是对于自有定义的日志格式,往往在分割时有明显的特征,这是个不错的方法。

应用程序日志事件的识别已经解决了,你可能还遇到这样的情况,你想要的字段Splunk没有自动识别出来。当然,应用程序日志格式千奇百怪,无论如何Splunk也无法保证自动完成一切。但没有关系,为此Splunk专门设计了一个字段提取功能,使用起来十分方便。在多条日志事件里面选择同一个字段的数值或者字符串,作为样本输入,Splunk会自动分析这些样本的特征,建立正则表达式界定这个字段在日志事件里的位置,并提供给你预览,确认后即可定义一个新的字段。

以上是几点在做应用程序日志监控时常常需要做的一些调试技巧,掌握这些基本就能够开始构建你自己的应用程序日志监控平台了。当然Splunk所提供的远不止这些,建立实时的应用程序关键信息统计Dashboard,建立事件查询界面,设置告警等等,一系列功能能够帮助你组建完善的管理系统,而Splunk自身的灵活性则能够快速适应新管理需求的增加和改进。

Splunk作为一款成熟的商业化日志处理分析产品无论在功能上还是用户体验上都是令人满意的,而开源方案ELK(Elasticsearch+Logstash+Kibana)相信也有很多朋友考虑或者正在使用,我在这里不想讨论孰优孰劣因为不同的业务场景出发点不同,共存也是不错的选择。


转:https://my.oschina.net/zhangjie830621/blog/1791830



推荐阅读
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Git核心命令全解析:掌握日常开发必备技能
    本文深入解析了 Git 的核心命令,帮助开发者掌握日常开发中的必备技能。从 `git init` 命令开始,介绍了如何将当前目录转变为 Git 可管理的仓库。接着详细讲解了 `git add` 命令的使用方法,包括如何将文件(如 `readme.txt`)添加到暂存区,以便在后续提交时进行版本控制。此外,还探讨了其他关键命令,如 `git commit` 和 `git push`,以确保代码变更能够安全地保存和同步到远程仓库。通过这些命令的综合应用,开发者可以更加高效地管理和协作项目。 ... [详细]
  • 本文深入解析了Elasticsearch写入与查询的底层机制。在数据写入过程中,首先会将数据暂存至内存缓冲区,在此阶段数据尚不可被搜索。同时,为了保证数据的持久性和可靠性,系统会将这些数据同步记录到事务日志(translog)中。当内存缓冲区接近满载时,系统会触发刷新操作,将缓冲区中的数据写入到磁盘上的段文件中,从而使其可被搜索。此外,文章还探讨了查询过程中涉及的索引分片、倒排索引等关键技术,为读者提供了全面的技术理解。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • PHP 各版本对比:标准版与最新顶级版的详细分析 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 掌握 esrally 三步骤:高效执行 Elasticsearch 性能测试任务
    自从上次发布 esrally 教程已近两个月,期间不断有用户咨询使用过程中遇到的各种问题,尤其是由于测试数据托管在海外 AWS 上,导致下载速度极慢。为此,本文将详细介绍如何通过三个关键步骤高效执行 Elasticsearch 性能测试任务,帮助用户解决常见问题并提升测试效率。 ... [详细]
  • grafana,9,1,1,发布,系统,指标, ... [详细]
  • zabbix 自定义监控
    配置自定义监控,我们需要配置监控项的key,和监控项返回的value添加自定义监控key的格式,在配置文件中添加UserParameter ... [详细]
author-avatar
荒原绿树fy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有