在某些情况下,您可能希望保存mikrotik路由器或CISCO交换机日志(或Web代理日志),以便记录/跟踪有关Mikrotik活动的信息。在大多数国家/地区,法律还要求保留用户公共知识产权分配的记录,例如,当您申请许可证时,需要备有此类记录。从管理的角度来看,使用外部Linux基础日志服务器拦截mikrotik信息要好得多。
这篇文章演示了如何将Mikrotik日志发送到远程Ubuntu / Linux基本系统日志服务器。在这个例子中我们将使用SYSLOG-NG包。
SYSLOG Server = 192.168.100.1
[OS> Ubuntu 12.4 32 bit]
Mikrotik Server = 192.168.100.2
首先我们将配置Mikrotik部分
#MIKROTIK CONFIGURATION
在Mikrotik,Open Terminal并粘贴以下内容。
/system logging action
set 0 memory-lines=100
set 1 disk-file-count=30 disk-file-name=MT-log-zaib disk-lines-per-file=500
set 3 remote=192.168.100.1
#192.168.100.1是我们将在第二步中配置的远程syslogng服务器。
#现在,我们将添加一些要存储在syslog server.zaib中的主题
/system logging
add action=remote topics=critical
add action=remote topics=error
add action=remote topics=info
add action=remote topics=warning
[注意:192.168.100.1是Linux syslog服务器ip,更改此ip以匹配您的远程syslog服务器ip。您可以根据自己的要求修改主题,下面仅举例说明]
这就是Mikrotik
现在转移到Linux部分,在这个例子中我使用了Ubuntu 12.4你可以使用你选择的任何其他风格。
#UBUNTU 12.4配置
首先,我们必须安装syslog服务器。在此示例中,我们使用syslog-ng日志服务器。
安装syslog-ng 软件包
apt-get install syslog-ng
sudo apt-get install syslog-ng-mod-redis
sudo apt-get install libboost-system-dev libboost-thread-dev libboost-regex-dev
sudo apt-get install libmongo-client0
sudo apt-get install libesmtp6
安装完成后,编辑/etc/syslog-ng.conf中提供的配置文件
使用以下命令编辑配置文件。
nano /etc/syslog-ng/syslog-ng.conf
现在在SOURCES部分之前粘贴以下行。
#Accept connection on UDP
source s_net { udp (); };
# MIKROTIK ###########
# Add Filter to add our mikroti
filter f_mikrotik { host( "192.168.100.2" ); };
# Add destination file where logs will be stored
#destination df_mikrotik { file("/var/log/mikrotik.log"); };
log { source ( s_net ); filter( f_mikrotik ); destination ( df_mikrotik ); };
destination df_mikrotik {
file("/var/log/mikrotik/mikrotik.$.$.$.log"
template-escape(no));
};
如下所示 …
现在保存并退出。
重要:在/ var / log和file中创建' mikrotik '文件夹,以便将mikrotik日志保存在单独的文件中。
mkdir /var/log/mikrotik
重新启动syslog-ng服务以应用更改
service syslog-ng restart
监控LOGS
现在检查/ var / log / mikrotik中的文件名并通过tail命令监视它
tail -f /var/log/mikrotik/mikrotik.log
在mikrotik,执行任何操作,例如打开“ 新终端 ”或尝试添加任何新规则,您将在尾部输出中看到其日志。
例如。
完成!
LOG ROTATE!
由于我们已成功设法将新日志文件添加到系统中,因此必须配置日志轮换以移动/删除旧日志,否则如果其使用频繁的生产系统,则可能会快速填满磁盘。
要添加日志轮换,请编辑syslog-ng配置文件。
nano /etc/logrotate.d/syslog-ng
并在开始或结束前添加以下内容。。。。
[这将每天轮换日志文件,它将压缩最后一天的日志文件。如果您从设备收到一些重型日志,则非常有用。
/var/log//mikrotik/*.log {
daily
rotate 90
missingok
compress
notifempty
missingok
sharedscripts
/etc/init.d/syslog-ng restart
endscript
# invoke-rc.d syslog-ng reload > /dev/null
}
保存并退出。并重新加载syslog-ng服务
service syslog-ng restart
上述代码的说明。
每天 mikrotik的logrotation登录 /var/log/mikrotik/mikrotik.log文件将每天进行。该值描述旋转间隔
旋转90 表示syslog将保留90个日志文件。[档案数量]
压缩日志文件将使用gzip格式进行压缩
missingok避免停止任何错误
如果日志文件为空,则notifempty不会轮换日志文件
如果要控制重型生产服务器的日志大小,' size '参数也是非常重要的设置。
大约50 MB的配置设置如下所示:
大小50M
请注意,如果同时设置了大小和旋转间隔,则size将覆盖旋转参数
提示:日期文件名与年份日期
如果我们希望syslog在日常日期格式文件中存储mikrotik文件,那么使用
示例配置
# MIKROTIK ###########
# 添加过滤器以添加我们的mikrotik
filter f_mikrotik { host( "192.168.100.2" ); };
# 添加将存储日志的目标文件
#目的地 df_mikrotik { file("/var/log/mikrotik.log"); };
log { source ( s_net ); filter( f_mikrotik ); destination ( df_mikrotik ); };
destination df_mikrotik {
file("/var/log/mikrotik/mikrotik.$.$.$.log"
#模版("$:$:$ $ $ $\n")
template-escape(no));
};
更改SYSLOG日志轮换时间
默认情况下,log.rotate在早上6:47开始。要将其更改为在午夜运行,请编辑文件
/ etc / crontab中
并将cron.daily行更改为以下内容
0 0 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
这将在深夜运行。
删除零大小的日志文件
你可能需要这个; )
find /var/log/mikrotik/ -name 'mikrotik*' -size 0 -print0 | xargs -0 rm
删除日志文件90天
这个也是; )
find /var/log/mikrotik/* -daystart -mtime +90-type f -exec rm {} \;
或者更好地使用此处定义的完整脚本。
集中日志服务器,用于存储多个设备日志
更新:9-NOV-2017
如果您希望集中式日志服务器使用单独的文件记录多个设备日志,则可以使用以下内容。
# MIKROTIK ###########
# 接受连接 UDP
source s_net { udp (); };
# 添加过滤器以添加我们的mikroti
filter f_mikrotik { host( "101.11.11.1" ); };
filter f_mikrotik2 { host( "101.11.11.2" ); };
filter f_ciscoswnoc { host( "101.11.11.3" ); };
filter f_ciscosw2 { host( "101.11.11.4" ); };
# 为每个主机添加要存储日志的目标文件
destination d_mikrotik { file("/var/log/mikrotik/$HOST.mikrotik.$.$.$.log"); };
destination d_mikrotik2 { file("/var/log/mikrotik/$HOST.mikrotik.$.$.$.log"); };
destination d_ciscoswnoc { file("/var/log/mikrotik/$HOST.ciscosw.$.$.$.log"); };
destination d_ciscosw2 { file("/var/log/mikrotik/$HOST.ciscosw.$.$.$.log"); };
log { source(s_net); filter(f_mikrotik); destination(d_mikrotik); };
log { source(s_net); filter(f_mikrotik2); destination(d_mikrotik2); };
log { source(s_net); filter(f_ciscoswnoc); destination(d_ciscoswnoc); };
log { source(s_net); filter(f_ciscosw2); destination(d_ciscosw2); };
确保重新启动syslog-ng服务器
service syslog-ng restart