如何将Mikrotik/Cisco日志保存到远程SYSLOG服务器

在某些情况下,您可能希望保存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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180705G1HKHB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券