今天修复内网邮件报警只显示部分名字的错误。
原因:外网有主机名,在通过日志筛选信息时,awk指令使用‘.'为分隔符,但是内网暂时没有主机名,只能使用ip地址,因此在使用‘.'为分隔符时就会出错,只保留部分IP地址,因此,需要修改shell命令。
过程:首先将原本有的指令提出,修改部分,执行观察结果,慢慢看懂一个一个小的部分,最后连在一起。想着方便,便在原基础上改部分内容,但是效果不佳,导致一问题较为复杂,像
172.20.200.245:1:
172.20.200.245:1:
172.20.200.245:1:
172.20.200.245:8:11
172.20.200.245:8:11
172.20.200.245:8:11
172.20.200.198:8:
首先删除最后的冒号,然后再每行末尾添加分号,混在一起操作,因个人刚接触,较难完成
[Mon Aug 3 16:14:07 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_day;CRITICAL;SOFT;1;Critical - The error type id is:1:
[Mon Aug 3 16:15:07 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_day;CRITICAL;SOFT;2;Critical - The error type id is:1:
[Mon Aug 3 16:16:07 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_day;CRITICAL;HARD;3;Critical - The error type id is:1:
[Mon Aug 3 16:24:57 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_szday;CRITICAL;SOFT;1;Critical - The error type id is:8:11:
[Mon Aug 3 16:25:57 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_szday;CRITICAL;SOFT;2;Critical - The error type id is:8:11:
[Mon Aug 3 16:26:57 2015] SERVICE ALERT: 172.20.200.245;nrpe_check_szday;CRITICAL;HARD;3;Critical - The error type id is:8:11:
[Mon Aug 3 16:27:47 2015] SERVICE ALERT: 172.20.200.198;nrpe_check_szday;CRITICAL;SOFT;1;Critical - The error type id is:8:
[Mon Aug 3 16:28:47 2015] SERVICE ALERT: 172.20.200.198;nrpe_check_szday;CRITICAL;SOFT;2;Critical - The error type id is:8:
[Mon Aug 3 16:29:47 2015] SERVICE ALERT: 172.20.200.198;nrpe_check_szday;CRITICAL;HARD;3;Critical - The error type id is:8:
[Mon Aug 3 16:30:37 2015] SERVICE ALERT: 172.20.0.193;nrpe_check_szday;CRITICAL;SOFT;1;Critical - The error type id is:8:11:
[Mon Aug 3 16:31:37 2015] SERVICE ALERT: 172.20.0.193;nrpe_check_szday;CRITICAL;SOFT;2;Critical - The error type id is:8:11:
[Mon Aug 3 16:32:37 2015] SERVICE ALERT: 172.20.0.193;nrpe_check_szday;CRITICAL;HARD;3;Critical - The error type id is:8:11:
而重新完整自己写的话,可以直接先删除末尾的冒号,就不会产生上面的情况,简单方便
指令:cat nagios.log.bk | grep "error type" | grep -v "CURRENT SERVICE STATE" |sed 's/.$//'| awk '{print $(NF-6)";"$NF;}'|tr ";" ":"| cut -d ":" -f 1,8,9|awk '{print $0";"}'
还有就是将NAGIOS 写成NAGLOS导致执行脚本时,因找不到文件而停止,最开始还怀疑是自己指令出了问题 ,查了很久。导致浪费了大量时间,应该再仔细认真一点,不该在这种小问题上出错。总体而言,今天效率较为低下。