经过比较Winsyslog和Kiwisyslog等工具,最终选定Kiwisyslog(http://www.kiwisyslog.com/),它不仅功能齐全,而且提供免费的版本。
Kiwisyslog遵循标准的日志协议(RFC 3164),并支持UDP/TCP/SNMP几种方式的日志输入。它默认是个免费的功能受限版(但功能基本够用了,只是没有找到汉化),自带发送模拟器﹑日志浏览器等实用工具。
我还测试了一下把ACE日志写到syslog的功能。过程记录如下:
1)使用klog工具
这个主要用到kiwisyslog的klog实用工具(这个工具同时提供dll库的调用方式,真是好东西,我决定以后在我的应用里都用它!),它支持直接或用重定向的方法输出日志到kiwisyslog。
klog –m "It's almost lunchtime"
DIR *.* | klog -h 192.168.1.2 -i
但我试图使用ACE应用日志输出到kiwisyslog时(ace_app.exe | klog -h 192.168.1.2 -i的形式),发现日志内容里前后有乱码出现,即ACE的日志输出直接重定向到klog再转到kiwisyslog有问题;并且不能按时间一行一行的输出,而是等应用程序执行结束时一股脑输出到kiwisyslog(按回车换行切开成一条一条日志)。如果程序非正常结束,还不能将输出日志内容传到 kiwisyslog。
还有一个方法是在Windows通过设置可以把ACE日志输出到系统日志里面。
ACE_LOG_MSG->set_flags(ACE_Log_Msg::SYSLOG)
然后按下面2)的方法转到kiwisyslog。
2)还可以把Windows下的事件日志转到Linux下的syslog
我们需要第三方的软件来将windows的日志转换成syslog类型的日志后,转发给syslog服务器。
介绍第三方软件evtsys (全称是evntlog to syslog)
文件才几十K大小,非常小巧,解压后是两个文件evtsys.dll和evtsys.exe
把这两个文件拷贝到 c:/windows/system32目录下。
打开Windows命令提示符(开始->运行输入CMD)
C:/>evtsys –i –h 192.168.10.100
-i 表示安装成系统服务
-h 指定log服务器的IP地址
如果要卸载evtsys,则:
net stop evtsys
evtsys -u
启动该服务:
C:/>net start evtsys
打开windows组策略编辑器 (开始->运行输入 gpedit.msc)
在windows设置->安全设置->本地策略->审核策略中,打开你需要记录的windows日志。evtsys会实时的判断是否有新的windows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。
将Cisco设备的日志发往syslog服务器,如下操作:device#conf t
device(config)#logging on
device(config)#logging 172.16.86.102
device(config)#logging trap errors //日志记录级别,可用"?"查看详细内容
device(config)#logging source-interface loopback0 //日志发出用的源IP地址
device(config)#service timestamps log datetime localtime //日志记录的时间戳设置,可根据需要具体配置检验
device#sh logging
设置完成后,最好设置一下当前交换机或路由器的时钟。这样在日志服务器上就可以看到何时产生的日志。
switch#clock 9:48:00 21 Feb 2011
logging trap level //指定日志消息的级别
(0:紧急(Emergencies)
#每日三件事,第990天#
《中华人民共和国网络安全法》第二十一条第一款第三项规定网络运营者应采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月。在GB/T22239《网络安全等级保护基本要求》的安全计算环境中,对安全审计也有明确的要求。
在落实法律义务和责任,开展网络安全等级保护工作的过程中,日志服务器成了必不可少的一项。商用的日志审计系统固然好,但利用CentOS7也可以做一个简单的日志服务器,收集网络中其他设备的日志信息。
日志服务器端的配置:
yum install syslog,其实CentOS7默认就已经安装了rsyslog服务。系统会自动检测,并不会重新安装一遍syslog服务。
vim /etc/rsyslog.conf,找到#Providers TCP syslog reception这一行,把下面两行前面的#去掉即可:
#Providers TCP syslog reception
$ModLoad imtcp
$InputTCCPServerRun 514
======分割线 ======
在/etc/rsyslog.d/创建一个名为client_ip.conf的文件,每个日志发送客户端创建一个文件。我的实验环境中有一个ip为192.168.1.1的客户端,因此创建一个192.168.1.1.conf的文件。
vim /etc/rsyslog.d/192.168.1.1.conf
:fromhost-ip,isequal, "192.168.1.1" /var/log/client/192.168.1.1.log
systemctl restart rsyslog
重启之后一定要检查一下,使用命令:systemctl status rsyslog,并且保证rsyslog服务能够在开机时自动启动。
客户端的配置如下:
vim /etc/rsyslog.conf,去掉#Providers TCP syslog reception下面两行的注释:
#Providers TCP syslog reception
$ModLoad imtcp
$InputTCCPServerRun 514
在最后一行添加:
*.*. @@192.168.1.10:514
其中192.168.1.10是日志服务器的IP地址。
systemctl restart rsyslog,并查看rsyslog的状态,保证服务在开机时自动启动。
此时在日志服务器上就可以接收到客户端发来的日志信息了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)