【Centos7系统报错abrt-hook-ccpp导致生产中断】
MaxCrashReportsSize也是ABRT(Automated Bug Reporting Tool)的一个配置选项,在/etc/abrt/abrt-action-save-package-data.conf或者各模块的配置文件(例如/etc/abrt/plugins/プラグイン名称.conf)中可以设置。3、这条日志记录的主要内容是: '/var/spool/abrt/ccpp-2023
生产服务器中分析流程突然中断了,看了下messages日志,发现报错:
一共4条信息,先用GPT分析了下:
abrt-hook-ccpp: Process 243912 (msisensor2) of user 1000 killed by SIGABRT - dumping core
1、这条日志记录的主要内容是: 进程msisensor2收到了一个SIGABRT信号,从而被kill掉,然后该进程的核心转储文件被写入。
abrt-server: Executable '/data/ngs/softs/msisensor2/msisensor2' doesn't belong to any package and ProcessUnpackaged is set to 'no'
2、这条日志记录的主要内容是: 一个不属于任何软件包的可执行文件'/datas/softs/msisensor2/msisensor2'被检测到了,而且也没有通过设置中的ProcessUnpackaged来解决。
abrt-server: 'post-create' on '/var/spool/abrt/ccpp-2023-04-27-02:16:29-243912' exited with 1
3、这条日志记录的主要内容是: '/var/spool/abrt/ccpp-2023-04-27-02:16:29-243912'上的'post-create'操作已退出,状态码为1。
abrt-server: Deleting problem directory '/var/spool/abrt/ccpp-2023-04-27-02:16:29-243912'
4、这条日志记录的主要内容是: 删除'/var/spool/abrt/ccpp-2023-04-27-02:16:29-243912'问题目录。
按关键词收了下类似情况,参考了3条内容:
CentOS7中abrt服务引起dotnet core进程挂掉
abrt-hook-ccpp: Saved core dump of pid 12224导致dn挂掉问题
基本就是负载超过了系统abrt监控默认的阈值,被强制 kill 掉了,需要放宽阈值。
解决:
方案一:
vim /etc/abrt/abrt-action-save-package-data.conf
ProcessUnpackaged = yes # 将no改为yes
systemctl status abrtd.service
方案二:
vim /etc/abrt/abrt.conf
MaxCrashReportsSize = 0 # 将默认的1000或5000 改为 0
systemctl status abrtd.service
方案三:
systemctl stop abrt-ccpp.service # 关闭并禁用abrt-ccpp
systemctl disable abrt-ccpp.service
再用GPT复核一下:
1、ProcessUnpackaged:
ProcessUnpackaged是ABRT(Automated Bug Reporting Tool)的一个配置选项,在配置文件/etc/abrt/abrt.conf和/etc/abrt/plugins/プラグイン名称.conf中均可配置该选项。如果在配置文件中将ProcessUnpackaged设置为yes,表示ABRT将非rpm安装程序(如源代码包等)识别为未打包程序,会生成相关的警告和错误日志,因而会更好地抓住一些程序的 bug。如果为no,表示ABRT将不会跟踪和报告那些在未打包的应用程序中发生的崩溃信息,而只针对现有的软件包进行跟踪。因此,使用yes选项能够扩展 ABRT 的范围,提高异常程序的捕捉数量,但同时可能也会导致一些误报。
2、MaxCrashReportsSize
MaxCrashReportsSize也是ABRT(Automated Bug Reporting Tool)的一个配置选项,在/etc/abrt/abrt-action-save-package-data.conf或者各模块的配置文件(例如/etc/abrt/plugins/プラグイン名称.conf)中可以设置。该选项是用来控制核心转储文件的最大大小,如果将其设置为0,则表示核心转储文件的大小不作限制,即不限制转储文件的大小。因为核心转储文件通常很大,如果设定一个很小的值,容易导致文件无法保存完整情况的发生。不过需要注意的是,将MaxCrashReportsSize设为0还是有一定风险的,因为大容量的核心转储文件会使磁盘空间占满,就会影响其他程序的运行。因此,如果需要设置一个比较大的值,建议限制在磁盘空间的可用空间范围内,并按照其文件大小自动清理历史文件,以防止磁盘空间溢出。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)