前言
上篇文章中实现的端口扫描方案,在机器上跑时发下计划任务没有执行结果,也未收到监控告警。但是通过直接命令行模式是的确可以的,遂排查下问题到底出在了哪里。
问题确认
首先,文件是肯定存在的,但是的确是没有扫描结果,所以也无法收到监控告警。
查看计划任务日志,看是否执行了计划任务。
的确是执行了,但是为啥没结果呢?告警是依赖扫描结果告警的,所以还是扫描没结果的原因。
排查分析
之前做的DNSlog监控是没问题的,通过与ceye_moitor.py
文件对比发现,端口扫描脚本没有执行权限,添加执行权限
|
|
再次执行计划任务发现还是没有结果。
通过搜索发现可以利用mail日志排查,打开mail日志发现一堆错误。
通过搜索,了解是需要配置的,修改下配置。
将inet_interfaces = localhost
修改为inet_interfaces = all
即可。
重启服务
|
|
再次执行计划任务,查看mail日志。
终于找到原因了,计划任务执行时不识别脚本中的相对路径!
好的吧~ 修改所有脚本为绝对路径。
修改完毕,再次运行,正常告警。问题解决~
问题总结
- crontab服务未正常运行(查看
/var/log/cron
或/var/log/messages
日志 ); - 脚本权限问题(查看脚本是否有执行权限);
- 环境变量问题( 手动设置PATH );
- 路径问题( 使用绝对路径 );