背景
用户反馈有一批 yarn 机器上的进程访问了他们的服务,让我帮忙查查是哪个作业在访问。只要能确定是哪个进程,就能找到对应作业。刚开始使用 netstat 找不到,后面通过 auditctl 找到了进程。因为学到了新命令,在这里简单记录一下过程。
过程
使用 netstat
登陆 yarn 机器,执行 netstat 命令,发现连接都是处于 TIME_WAIT 状态,意味着无法找到 pid
netstat -pantu | grep $ip | grep $port
使用 auditctl
auditctl -a exit,always -F arch=b64 -S connect -k $ip:$port
执行一段时间后,关闭 auditctl
auditctl -d exit,always -F arch=b64 -S connect -k $ip:$port
通过以下命令找到 pid
ausearch -hn $ip | grep -i SYSCALL | grep -i "$ip:$port" | awk '{print $12}' | sort | uniq -c | sort -k1n