美文网首页数客联盟
找出进程消失的“案发现场”

找出进程消失的“案发现场”

作者: WestC | 来源:发表于2019-01-28 11:36 被阅读20次
    • 问题来源:

      Kafka服务出现访问异常

    • 问题分析:

      查看Broker日志,JVM进程在没有任何异常的情况下,直接被调用shutdownhook,退出应用。
      从Kafka服务来看,无法确诊问题。

      通常此类状态是由于OS中运行的监控管理进程或者其他服务发送kill信号将进程杀掉。如果能够找出发送信号的进程,就可以进 一步分析原因。那么如何查找出“罪魁祸首”?

    • 查找“罪魁祸首”

      The Linux Audit Subsystem is a system to Collect information regarding events occurring on the system(s) 。借助OS审计日志可以找出是否有其他进程,什么进程,什么时候对Kafka的Broker进程发送什么信号导致Kafka的Broker进程退出。那么该如何操作呢?

      1. 首先确保审计服务正常

        使用 service auditd status 查看审计服务的运行情况
        如果运行异常,可使用service auditd restart 重启服务

      2. 在审计服务中添加审计kill操作的审计规则
        auditctl -a exit,always -F arch=b64 -S kill -S tkill -S tgkill -F a1!=0 -k my_temporary_kill_audit
        添加完毕后,可以使用auditctl -l命令查看是否添加成功

         [root@yj01 ~]# auditctl -l
         No rules
         [root@yj01 ~]# auditctl -a exit,always -F arch=b64 -S kill -S tkill -S tgkill -F a1!=0 -k my_temporary_kill_audit
         [root@yj01 ~]# auditctl -l
         -a always,exit -F arch=b64 -S kill,tkill,tgkill -F a1!=0x0 -F key=my_temporary_kill_audit
        
      3. 使用脚本kill掉进程以便测试

         [root@yj01 ~]# cat kill_test.sh 
         #!/bin/bash
         p=`ps -ef | grep kafka.Kafka | grep -v grep | awk '{print $2}'`
         echo "kill ing kafka process $p"
         kill -9  $p
         echo $$
         echo "killed"
        
      4. 测试审计日志信息

        1. 在kafka的broker进程所在节点运行test.sh,打印如下:

           [root@yj01 ~]# date
           Mon Jan 28 10:55:46 CST 2019
           [root@yj01 ~]# sh kill_test.sh 
           kill ing kafka process 687802
           688289
           killed
           [root@yj01 ~]# date
           Mon Jan 28 10:55:50 CST 2019
          
        2. 查看审计日志记录的kill信息

          使用命令ausearch -k my_temporary_kill_audit

          audit_kill

          查看审计日志,如下可以看出,被kill的进程为687802,与上述日志打印的kafka进程号一致。起16进制为a7eba,与SYSCALl中中的a0一致,起a1表示接收到的为-9,即表示使用“kill -9”命令杀掉的kafka,Broker进程。而执行kill命令的进程为pid为688289,与上述脚本中打印的命令一致。如上信息可以说明是执行的kill_test.sh脚本杀掉了Kafka的broker进程。

    相关文章

      网友评论

        本文标题:找出进程消失的“案发现场”

        本文链接:https://www.haomeiwen.com/subject/xsqajqtx.html