FreeBSD

Настройка получение логов с свичей dlink посредством syslog-ng

Установка cd /usr/ports/sysutils/syslog-ng2

make install clean

Запуск /usr/local/etc/rc.d/syslog-ng start

Коммутаторы D-Link
Настройка syslog на свиче

create syslog host ipaddress {severity [emergency | alert | critical |

error | warning | notice | informational | debug | ] | facility [local0 | local1 | local2 |

local3 | local4 | local5 | local6 | local7] | udp_port | state [enable |

disable]}

Посмотреть syslog на свиче

show syslog host

настройка свича

enable syslog
config system_severity trap information
config system_severity log information
create syslog host 1 ipaddress 192.168.17.15 severity informational facility local0 udp_port 514 state enable
 
Добавляем на сервере вниз /usr/local/etc/syslog-ng.conf

# destinations

destination df_switch { file("/var/log/switch.log"); };

# log facility filters

filter f_switch { host("192.168.21.7"); };

log { source(src); filter(f_switch); destination(df_switch); };

Если нужно писать логи с нескольких свичей

 Syslog-ng.conf

# destinations

destination df_switch { file("/var/log/switch.log"); };
destination df_switch1 { file("/var/log/switch1.log"); };
destination df_switch2 { file("/var/log/switch2.log"); };
destination df_switch3 { file("/var/log/switch3.log"); };

# log facility filters

filter f_switch1 { host("10.250.0.1"); };
filter f_switch { host("10.250.0.15"); };
filter f_switch2 { host("10.250.0.2"); };
filter f_switch3 { host("10.250.1.3"); };
log { source(src); filter(f_switch); destination(df_switch); };
log { source(src); filter(f_switch1); destination(df_switch1); };
log { source(src); filter(f_switch2); destination(df_switch2); };
log { source(src); filter(f_switch3); destination(df_switch3); };

Логи не могут записываться в один файл, поэтому пишутся в отдельные.

перезапуск syslog-ng

 /usr/local/etc/rc.d/syslog-ng restart

Пример syslog для получения логов на сервер и почту.

destination df_192.168.20.3_CIOL34_CRIT { file("/var/log/switch/192.168.20.3_CIOL34_CRIT.log"); };

destination d_mailto_CRIT { program("/bin/syslog-mail_CRIT"); };

filter f_192.168.20.3_CIOL34_CRIT { host("192.168.20.3"); };

filter f1_192.168.20.3_CIOL34_CRIT { match("CRIT"); };

log { source(src); filter(f_192.168.20.3_CIOL34_CRIT); filter(f1_192.168.20.3_CIOL34_CRIT); destination(df_192.168.20.3_CIOL34_CRIT); };

log { source(src); filter(f_192.168.20.3_CIOL34_CRIT); filter(f1_192.168.20.3_CIOL34_CRIT); destination(d_mailto_CRIT); };

destination df_192.168.20.3_CIOL34_WARN { file("/var/log/switch/192.168.20.3_CIOL34_WARN.log"); };

destination d_mailto_WARN { program("/bin/syslog-mail_WARN"); };

filter f_192.168.20.3_CIOL34_WARN { host("192.168.20.3"); };

filter f1_192.168.20.3_CIOL34_WARN { match("WARN"); };

log { source(src); filter(f_192.168.20.3_CIOL34_WARN); filter(f1_192.168.20.3_CIOL34_WARN); destination(df_192.168.20.3_CIOL34_WARN); };

log { source(src); filter(f_192.168.20.3_CIOL34_WARN); filter(f1_192.168.20.3_CIOL34_WARN); destination(d_mailto_WARN); };

создаем скрипт /bin/syslog-mail_CRIT с наполнением

#!/usr/bin/perl

 

# file: syslog-mail_CRIT

 

# spec: reads a line of input and mails it, designed to be a destination for syslog-ng

 

use strict;

 

$0='syslog-mail_CRIT';

 

$|=1;

 

while (my $msg = )

 

{

 

my ($pri,$date,$host,$esrc,$evid,$emsg) = $msg =~ m/(\w{3} \d{1,2} \d{2}:\d{2}:\d{2}) ([\w\.\-]+) ([\w ]+)\[(\d+)\] (.+)/o;

 

open MAILER,'| mail Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. '">Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. ' ';

 

print MAILER "CRIT!!! \nInfo:\n$msg";

 

# print MAILER "Subject: syslog: $host $esrc $evid\n\n$emsg\n----\n$msg";

 

close MAILER;

 

}

 

и syslog-mail_WARN с наполнением

#!/usr/bin/perl

 

# file: syslog-mail_WARN

 

# spec: reads a line of input and mails it, designed to be a destination for syslog-ng

 

use strict;

 

$0='syslog-mail_WARN';

 

$|=1;

 

while (my $msg = )

 

{

 

my ($pri,$date,$host,$esrc,$evid,$emsg) = $msg =~ m/(\w{3} \d{1,2} \d{2}:\d{2}:\d{2}) ([\w\.\-]+) ([\w ]+)\[(\d+)\] (.+)/o;

 

open MAILER,'| mail Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. '">Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. ';

 

print MAILER "WARN!!! \nInfo:\n$msg";

 

# print MAILER "Subject: syslog: $host $esrc $evid\n\n$emsg\n----\n$msg";

 

close MAILER;

 

}

 

Даем права на выполнение скриптов

 chmod 755 syslog-mail_CRIT

 chmod 755 syslog-mail_WARN

 

 

 

Дополнительная информация