LinuxForum.Fans
Тема

Nagios + syslog

Автор: enjoy1288 9 сообщений 3039 просмотров
#278404

И снова здравсвтуйте
Есть сислог со свитчей dlink вида :

text

........
Oct  2 08:20:48 192.168.0.22 %LINK-W-Down:  1:18                                                                                                                                                                
Oct  2 08:20:49 192.168.0.22 %LINK-I-Up:  1:18  
..........

Хотелось бы написать парсер для Nagios, который бы выводил предупреждение если статус порта будет Down
Но не могу придумать как правильно его распарсить, на скорую руку набросал скрипт :

text

#!/bin/bash                                                                                                                                                                                                     
#set -x                                                                                                                                                                                                         
exit_state=3                                                                                                                                                                                                    
STATE_OK=0                                                                                                                                                                                                      
STATE_CRITICAL=2                                                                                                                                                                                                
##################################                                                                                                                                                                              
                                                                                  
                ipdown=`/bin/cat /var/log/syslog/switches.log| grep "%LINK-W-Down" | awk '{print $4,$6,$5}'| sort|uniq`                                                                                     
                echo $ipdown| tr ' ' '\n'  

Скриптом я получаю в колонку :

text

192.168.0.22 
1:18
%LINK-W-Down:  

Проблема заключается в том, как мне выводить предупреждение только по << %LINK-W-Down: >> ?
Был вариант еще выводить результат парсинга в отдельный файл, например switch.tmp и его парсить на 3 переменные - IP, статус порта и номер порта, но тогда я потеряю связку между ними. Подскажите пжста в какую сторону думать

#278412

Не совсем понятно в чём всё-таки вопрос.

#278422

Вопрос в том, каким образом отправить статус CRITICAL при строке
192.168.0.22 %LINK-W-Down: 1:18
если данные 192,168,0,22 и 1:18 динамические, т.е. может быть
192.168.0.44 %LINK-W-Down: 2:21
192.168.0.66 %LINK-W-Down: 2:8 и так далее

#278425

Так?

text
ipdown=`/bin/cat /var/log/syslog/switches.log| grep "%LINK-W-Down" -с`
if [ "$ipdown" -ne "0" ]
then
    status="CRITICAL"
fi

Ну и дальше с этой переменной делаешь что тебе надо.

#278429

Да, работает, но не совсем то, хотелось бы, чтобы в нагиосе было оповещение типа
192,168,0,33 link down 1:18
192,168,0,44 link down 2:15 и т.д.

#278431

Ну тогда так:

text
ipdown=`/bin/cat /var/log/syslog/switches.log| grep "%LINK-W-Down" -с`
ipdown_full=`/bin/cat /var/log/syslog/switches.log| grep "%LINK-W-Down" | awk '{print $4,$6,$5}'| sort|uniq`
if [ "$ipdown" -ne "0" ]
then
    status="CRITICAL"
fi

И через sed в ipdown_full замени %LINK-W-Down на link down.

P.S. Это конечно всё на скорую руку, чтобы понятно было как и что делать.

#278432

sed разве сможет работать с переменными? или я не понял всей прелести sed ?

#278434

Конечно сможет, ведь sed работает со строками, а любую переменную можно превратить в строки командой echo "$переменная".

#278437

sed -i 's/oldstring/newstring/g' $ipdown_full ? или не туда?

Войдите или зарегистрируйтесь, чтобы ответить.