最近在尝试使用Splunk对SAP系统进行监控,以Dump监控为例,总结了一点相关信息,记录在这里。

本文链接:https://www.cnblogs.com/hhelibeb/p/13260385.html

转载请注明

Dump

定义

运行期错误(Runtime error):SAP ABAP程序在运行过程中会因为一些不同的原因而终止。(比如内部内核错误、ABAP编程错误、资源瓶颈等)。

如果在执行ABAP程序时发生运行时错误,则会创建一个错误日志(Short Dump)。错误日志包含很多结构化和非结构化的信息,可以帮助开发者分析原因、寻找解决方案。

存储在系统中的错误日志在一段时间后(最长28天)被删除。

也就是说,我们通常所说的Dump,准确地说是一种日志,它是由运行期错误产生的。

表现

在不同的环境,Dump可能有不同的表现,我们最熟悉的大概是SAP GUI的红色消息:

此外还有WEB UI的HTTP 500等,

问题案例

Dump的直接影响是让程序中断,这无疑会给用户带来麻烦。下面用一个故事来介绍它可能带来的危害。

有一个主数据批处理更新程序,它可以基于用户上传的数据在后台执行更新。 该程序会通过电子邮件将更新状态发送给用户。
某一天,用户上传了一些数据,该程序在后台运行时Dump。 因此该程序被终止,没有电子邮件发送给用户。 用户没有注意到他没有收到电子邮件,并认为数据已正确更新。
一周后,在后续业务流程中,用户发现数据不是最新的,导致自己的业务流程被迫中断。 他提了工单,并表示不满:“我可以接受该程序偶尔会失败,但是我需要及时获得反馈,以便让我知道结果是什么。”
然后,客服人员将问题转发给开发人员,开发人员开始进行调查程序问题。而中断的业务流程也必须等待数据更新后才能重启。

这个故事体现了一个常见的道理:在事故中,问题被发现的越晚,产生的后果就越严重。
 
它也体现了信息价值会随时间而衰减的现象:当dump出现时,用户和IT支持人员都没有及时得知事件的发生。随着时间的推进,dump对业务的影响已经产生,此时,开发人员才得知这个事件,实际上已经太晚了。

解决方案

1,手工查看ST22报表

开发者可以定期查看SAP提供的标准报表,事务ST22来识别问题,界面如下图。

ST22的优点是,

  • 信息十分全面

缺点,

  • 需要手工查看。
  • 需要定期查看。生产系统一般有登录时间限制,长时间不操作的话会自动退出,这意味着可能要经常登陆系统,很麻烦。
  • 日志会定期删除。很多系统只保留1~2天的记录,这会导致开发者无法追踪一些过去的问题。

2,通过Splunk监控

将数据定期发送至Splunk系统,配置相应告警,这样一旦指定的dump发生,开发者就可以第一时间收到邮件/工单,了解到事件的发生并进行跟踪分析。

优点是,

  • 可以自定义各种触发条件
  • 可以自定义触发后行为(发邮件,创建工单,运行脚本,记录日志等)
  • 数据是持久化的
  • 支持全文搜索
  • 支持使用SPL(Search Processing Language)进行分析

缺点,

  • 需要流量付费,因此可能不会把太多详细信息发送到Splunk

解决方案对比

下图是3中dump发现方式的对比,

被动发现:这是上面案例中提到的情况,开发者在整个处理链条的末端,得知消息最晚,在工作上十分被动。

主动检查报表:即手工查看ST22报表,需要一定的手工处理量,且如上所述,存在一些缺点。

使用Splunk:全自动的告警,且能提供一些SAP较难提供的高级功能。

()

结论

意义

使用Splunk对Dump信息进行监控,相对于旧有的工作模式,可以减少开发者的劳动量,帮助开发者更快地发现生产系统中的问题,从而减小问题带来的负面影响。此外,它也提供了持久化数据和强大的分析能力,为ABAP开发者持续地分析和改善系统中的不健康程序提供了基础。

存在的问题

尽管我们对Splunk的应用取得了一定的成果,但同时也遇到了一些问题,正在分析和解决,包括,
  • 数据不一致问题:从Splunk中搜索到的结果有时会缺少某些条目,这可能是因为搜索在某个节点失败引起的,也可能是数据同步过程存在问题。如果存在统计类型的告警,那这种问题可能会带来误报、漏报现象。
  • 并发搜索数量问题:为了保证性能,Splunk会限制并发搜索的数量。如果某段时间的搜索数量达到了限制的最大值,那么告警的搜索可能会被取消,导致告警无法正常运行。
 
 
 

使用Splunk监控SAP Dump的更多相关文章

  1. Splunk监控软件操作

    一.  Splunk公司与产品 美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣.总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心,上海 ...

  2. 有用的SAP System Administration T-CODE

    一,SAP系统管理常用到的事务代码1.  SM51 SAP Servers System Monitoring2.  SM21 SAP系统日志3.  SRZL  SAP计算机中心管理系统(CCMS) ...

  3. [转]监控常用TCODE

    1  系统监视 1.1 进程监视 SM66/SM50 进程查看 管理员需全天监看系统的进程.长时间运行的后台工作,有缺陷的报表程序,若不进行控制都将消耗掉大量的系统资源.管理员用这个事务码检查他们的环 ...

  4. SAP SLT (Landscape Transformation) 企业定制培训

    No. Item Remark 1 SAP SLT概述 SAP Landscape Transformation Overview 2 SAP SLT 安装与配置<1> for abap ...

  5. SAP 系统管理内容

    SAP 系统管理内容包含非常广泛,从底层硬件起到各种操作系统及各种系统软件及SAP软件组件等都会涉及到.SAP系统支持主流的IBM AIX.HP UNIX.Windows.Linux平台及Oracle ...

  6. 日志分析与splunk浅谈

    难易程度:★★★ 阅读点:linux;python;web安全;日志分析; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux下的日志分析对企业来说非常重要,对我们分析p ...

  7. linux memery dump

    一.free 1.安装绘图工具sudo apt-get install python-matplotlib 2.开启dump采集系统监控数据./dump.sh & 3.数据导入图形界面pyth ...

  8. Netty_UDP丢包解决

    程序背景 程序是Java编写,基于Netty框架写的客户端及服务端. 现象 客户端大数据量持续发UDP数据,作为UDP服务器出现了部分数据频繁丢失触发程序自身重传逻辑. 通过GC日志对比发现丢包的时间 ...

  9. Java性能监控工具:VisualVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

随机推荐

  1. 第一章02-异常情况下Activity的生命周期

    异常情况下的生命周期分析 1. 资源相关的系统配置发生改变导致Activity被杀死并重新创建 比如,屏幕旋转,默认情况下Activity会被销毁并且重新创建,不过我们也可以阻止系统重新创建我们的Ac ...

  2. EIGRP-9-弥散更新算法-拓扑表

    弥散更新算法(DUAL)是一个收敛算法.它代替了其他距离矢量协议使用的Bellman-Ford 算法.路由环路.甚至是在协议完全收敛前出现的瞬时环路.都会对网络性能造成不良影响.为了防止环路的形成.D ...

  3. Win10下Tensorflow的安装

    Win10下Tensorflow的安装 1. Tensorflow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张 ...

  4. Tournament Chart【模拟+vector+map+string】

    Tournament Chart 传送门:链接  来源:UPC10889 题目描述 In 21XX, an annual programming contest, Japan Algorithmist ...

  5. 完美解决PYQT5登录界面跳转主界面方法

    该问题,有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法.记录一下: Login.py(登录窗口)文件 import sys from PyQt5 import ...

  6. ado.net Web前端:关于JavaScript知识点的简单梳理

    学习js:1.htmml2.cssjs+html+css == html5 js的组成:1).ecamscript ES是js的标准,js 是es 的实现2)文档对象模型(Document Objec ...

  7. 『图论』LCA 最近公共祖先

    概述篇 LCA (Least Common Ancestors) ,即最近公共祖先,是指这样的一个问题:在一棵有根树中,找出某两个节点 u 和 v 最近的公共祖先. LCA 可分为在线算法与离线算法 ...

  8. cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if

    cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...

  9. docker配置国内镜像地址,解决无法pull镜像问题docker: Error response from daemon

    问题: 执行命令 $ docker run -it --rm -p 8888:8080 tomcat:8.5.32 报错 Unable to find image 'tomcat:8.5.32' lo ...

  10. 在运行时生成C# .NET类

    ​本文译自​:​Generating C# .NET Classes at Runtime 作者:WedPort 在我的C#职业生涯中,有几次我不得不在运行时生成新的类型.希望把它写下来能帮助有相同应 ...