Syslog日志服务器设计
- 格式:doc
- 大小:409.34 KB
- 文档页数:26
Syslog监控功能概要设计说明1.总体设计系统日志(Syslog)协议是在一个IP网络中转发系统日志信息的标准,它是在美国加州大学伯克利软件分布研究中心(BSD)的TCP/IP系统实施中开发的,目前已成为工业标准协议,可用它记录设备的日志。
Syslog记录着系统中的任何事件,管理者可以通过查看系统记录随时掌握系统状况。
系统日志通过Syslog 进程记录系统的有关事件,也可以记录应用程序运作事件。
通过适当配置,还可以实现运行Syslog协议的机器之间的通信。
通过分析这些网络行为日志,可追踪和掌握与设备和网络有关的情况。
通过在云平台节点和被监控设备上配置Syslog服务,可以实现对被监控设备的监控。
云平台Syslog监控功能示意如下:网络设备安全设备服务器(1)Syslog服务器端监听随云平台(节点)启动时而启动。
(2)在被监控端配置Syslog服务,被监控端包括服务器、网络设备、安全设备、存储设备等。
(3)被监控端向云平台发送Syslog日志,云平台根据用户定义的规则进行处理。
(告警,保存到数据库)2.接口设计2.1.用户接口2.1.1.增/删/改Syslog监控节点输入项:Syslog服务端IP地址。
端口,默认514。
协议,默认udp。
界面:参考本系统监控器相关界面。
2.1.2.查看Syslog日志类似告警信息查看界面,提供集中查看和按被监控对象进行分对象查看。
2.1.3.设置告警规则在被监控端设置告警规则,告警规则主要由正则表达式组成,系统通过对Syslog日志和规则进行比对触发告警事件。
2.2.内部接口2.2.1.调度接口根据系统设置,在调度任务启动时,将Syslog服务端监听进程同时启动。
2.2.2.告警接口根据告警规则设置,系统接收到Syslog日志时和告警规则进行比对,如果与告警规则匹配则调用相应的告警功能。
2.2.3.保存接口系统在接收到Syslog日志,并进行告警处理后,将调用保存接口将Syslog 日志保存到数据库。
搭建rsyslog⽇志服务器环境配置centos7系统 client1:192.168.91.17centos7系统 master:192.168.91.18rsyslog客户端配置1、rsyslog安装yum install rsyslog2、启⽤UDP进⾏传输vim /etc/rsyslog.conf# Provides UDP syslog reception #若启⽤UDP进⾏传输,则取消下⾯两⾏的注释$ModLoad imudp$UDPServerRun 514# Provides TCP syslog reception #若启⽤TCP进⾏传输,则取消下⾯两⾏的注释#$ModLoad imtcp#$InputTCPServerRun 514*.* @192.168.28.149:514 #若启⽤TCP传输则使⽤@@,若是UDP则使⽤@3、重启rsyslog服务systemctl restart rsyslogrsyslog服务端配置1、启⽤UDP/TCP进⾏传输vim /etc/rsyslog.conf# Provides UDP syslog reception #若启⽤UDP进⾏传输,则取消下⾯两⾏的注释$ModLoad imudp$UDPServerRun 514# Provides TCP syslog reception #若启⽤TCP进⾏传输,则取消下⾯两⾏的注释#$ModLoad imtcp#$InputTCPServerRun 5142、重启rsyslog服务systemctl restart rsyslog测试服务是否能够将客户端的系统⽇志传回服务端1、在服务端不间断输出系统⽇志⽂件tailf /var/log/messages第⼆:在客户端使⽤logger⽣成测试⽇志信息(并查看服务器端输出,判断是否通过⽹络将⽇志收集到了)logger "rsyslog test"Rsyslog搭建中⼼⽇志服务器默认配置下,接收到的⽇志写⼊服务端对应的⽇志⽂件⾥,如:如果涉及到了secure⽇志的记录,就会写到服务器端的/var/log/secure⾥⾯,也就是客户端⾃⼰写⼀份然后再往服务器端写⼀份。
Syslog架设windows日志服务器-qzt1023-51CTO技术博客Syslog架设windows日志服务器1 winodws服务器的配置因为windows服务器不支持日志服务器,因此需要安装一个转换软件:下载地址为:根据系统的版本下载32位和64位的程序。
解压后是两个文件evtsys.dll和evtsys.exe把这两个文件拷贝到 c:\windows\system32目录下。
evtsys命令U sage: evtsys.exe -i|-u|-d [-h host] [-p port] [-q char]-i Install service (安装服务)-u Uninstall service (卸载服务)-d Debug: run as console program (以debug模式运行)-h host Name of log host (日志服务器IP地址)-p port Port number of syslogd (日志服务器端口,默认是514) -q char Quote messages with character打开Windows命令提示符(开始->运行输入CMD)C:\>evtsys –i –h 192.168.28.4 #(日志服务器的IP地址)-i 表示安装成系统服务-h 指定log服务器的IP地址启动该服务:C:\>net start evtsys打开windows组策略编辑器 (开始->运行输入 gpedit.msc)在windows 设置-> 安全设置-> 本地策略->审核策略中,打开你需要记录的windows日志。
evtsys会实时的判断是否有新的win dows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。
OK,所有的配置windo ws端配置完成.如果要卸载evtsys,则:net stop evtsysevtsys -u2 优先级优先级是选择条件的第二个字段,它代表消息的紧急程度。
Syslog服务器的设置
首先在一个PC上安装syslog软件。
目前syslog软件可以运行在Windows、Linux和Unix 上,请随便做一个syslog服务器。
我们推荐一个运行在Windows平台上的syslog服务器软件,kiwi-syslog。
请到下面的站点下载:
然后在防火墙上作如下设置:
Kiwi_SysLog服务器日志设置
使用Kiwi_SysLog软件可以把日志进行分类存储,如按照日志的时间进行存储。
具体的设置方法如下:
日期:yyyy-mm-dd 时间:hour
具体的设置请看“Insert AutoSplit value”
●如上图的设置,日志的记录将会是这样的:
其中D:\Logs\2004-03-14\表示每天的日志,在每天的日志中,LOG_15表示下午三点的记录,LOG_16表示下午四点的记录,依此类推。
这样就可以分别记录。
●如果要对日志进行查询、排序等工作,需要用到微软的Access数据库进行处理。
具体的操作是“文件”→“新建”→“空数据库”→“文件”→“获取外部数据”→“导入”→然后选择日志文件→选择“带分隔符”→选择“分号”→“完成”。
背景:因为项目需要,现使用syslog-ng搭建一台日志服务器,简单来说就是利用我们现有的虚拟机中的syslog-ng服务,搭建一台用于专名存放其他虚拟机(也包括自己)所产生的日志。
由于一些用户以后将没有权限直接访问我们的ebackup 服务器,但又需要查看日志。
便可以用过这台日志服务器来查看。
日志服务器中的日志目录按照一定的规则设定,如“日期+主机名”等自行设定。
Syslog-ng介绍:规则,实现更好的过滤功能。
本次日志服务器的搭建是用的syslog-ng,关于syslog的具体描述可以参考下面的链接。
/subview/1614723/1614723.htm1、syslog-ng的配置说明syslog-ng的主配置文件存放在:/etc/syslog-ng/syslog-ng.conf中。
首先需要简单介绍一下syslog-ng的架构。
yslog-ng.conf中所有配置都是基于syslog-ng 的这样一种架构:LOG STATEMENTS『SOURCES - FILTERS -DESTINATIONS』即:消息路径『消息源-过滤器-目的站』也就是说,通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个消息路径。
(1)、消息源source格式为:source { sourcedriver params; sourcedriver params; ... };一个消息源的标识sourcedriver:消息源驱动器,可以支持若干参数,并使用分号“;”隔离多个消息源驱动器消息源有以下几种:file (filename) :从指定的文件读取日志信息unix-dgram (filename) :打开指定的SOCK_DGRAM模式的unix套接字,接收日志消息unix-stream (filename) :打开指定的SOCK_STREAM模式的unix套接字,接收日志消息udp ( (ip),(port) ) :在指定的UDP端口接收日志消息tcp ( (ip),(port) ) :在指定的TCP端口接收日志消息sun-streams (filename) :在solaris系统中,打开一个(多个)指定的STREAM设备,从其中读取日志消息internal() : syslog-ng内部产生的消息pipe(filename),fifo(filename) :从指定的管道或者FIFO设备,读取日志信息例如:source s_sys {file ("/proc/kmsg" log_prefix("kernel:"));unix-stream ("/dev/log");internal();); };参数需要使用括号括住。
业务聚合平台SYSLOG部署方案一、方案部署背景该项目涉及设备数量包括服务器75台、网络交换机4台、光纤交换机2台、存储1台。
设备的日志信息是查看设备运营情况的最重要渠道。
若每台的去监控及查看,将带来巨大的工作量。
搭建一台syslog能有效缓解该问题。
二、实施目的1.服务器日志集中存放到日志服务器和MySQL数据库中;2.每天发送一封E-MAIL, 报告异常日志条目;3.实时报告异常系统事件;4.WEB界面查询日志;三、硬件环境:CPU:4*4内存:16G磁盘:100G四、系统环境:操作系统:RHEL5.5 64bitIP:192.168.146.30五、实施步骤1、安装所属包:syslog20111106.tar.gzsyslog20111106.tar.gz2、配置yum服务器(省略)3、搭建LAMP环境(省略)4、安装syslog-ng#rpm -ivh libdb*#rpm -ivh libevtlog0-0.2.8-1.i386.rpm#rpm -ivh syslog-ng-2.1.3-1.i386.rpm#rpm -ivh msttcorefonts-2.0-1.noarch.rpm# mkdir -p /usr/share/fonts/truetype/msttcorefonts/#cp /usr/share/fonts/msttcorefonts/verdana* /usr/share/fonts/truetype/msttcorefonts/.5、配置syslog.conf# vi /etc/syslog-ng/syslog-ng.confsyslog-ng.conf6、重启syslog-ng# /etc/rc.d/init.d/syslog-ng restart7、安装php-syslog-ng#yum install php-gd php-mysql php-pdo#tar zxvf php-syslog-ng-2.9.8.tgz –C /var/www/html/.#cd /var/www/html/ php-syslog-ng#chown –R apache:apache html#cd scripts替换脚本中的文件实际路径(方法:perl -i -pe 's/\/www\/php-syslog-ng/\<newpath>/g' *)#perl -i -pe 's/\/www\/php-syslog-ng/\/var\/www\/html/g' *期间的报错可以忽略8、创建数据库及用户,脚本如下(该步骤可不操作):vi syslog-ng.sqlCREATE DATABASE syslog;USE syslog;CREATE TABLE logs (host varchar(32) default NULL,facility varchar(10) default NULL,priority varchar(10) default NULL,level varchar(10) default NULL,tag varchar(10) default NULL,date date default NULL,time time default NULL,program varchar(15) default NULL,msg text,seq int(10) unsigned NOT NULL auto_increment,PRIMARY KEY (seq),KEY host (host),KEY seq (seq),KEY program (program),KEY time (time),KEY date (date),KEY priority (priority),KEY facility (facility)) TYPE=MyISAM;CREATE USER syslogadmin identified BY ;syslogadmin;GRANT ALL ON syslog.* TO 'syslogadmin'@'%';UPDATE user SET password=PASSWORD(‘root’) WHERE user=’root’;FLUSH PRIVILEGES;9、编辑/etc/syslog-ng/syslog-ng.conf文件,添加以下内容destination d_mysql {program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog"template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg)VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n")template-escape(yes));};log {source(s_remote);destination(d_mysql);};10、修改/etc/pho.ini文件将display_errors = Off更改为display_errors = On ;将magic_quotes_gpc = Off更改为magic_quotes_gpc = On ;将memory_limit = 8M更改为memory_limit = 256M ;将max_execution_time = 30更改为max_execution_time = 9011、修改/etc/http/http.conf文件将DocumentRoot "/var/www/html"修改为DocumentRoot "/var/www/html/php-syslog-ng/html"将#ServerName :80修改为ServerName 192.168.146.30:8012、重启http服务13、配置php-syslog-ng在浏览器输入http://192.168.146.30/htmlScreen 1: 点击next开始安装;Screen 2: 选择接受协议后点击next继续;Screen 3: 输入数据库ROOT用户密码,其它可以保持默认(你可以不选择"install sample data" box) ,点击Next 继续;点击ok继续...Screen 4:输入站点名称后点击next继续;Screen 5: 输入email地址和admin的密码外,其它可以保持默认,点击next继续;Screen 6: 如果选择安装用于收集Cisco ERROR TABLE的数据,将会弹出如下安装对话框(可选)点击Install CEMDB继续... (如果点击install CEMDB不工作,请使用Firefox进行安装。
syslog-ng 日志服务器with php-syslog-ng 第一部分:LAMP平台的搭建、syslog-ng的安装1、所必要的tar包eventlog-0.2.5.tar.gzlibol-0.2.5.tar.gzsyslog-ng-2.0.6.tar.gz2、按上面包的顺序安装首先为三个包分别创建各自的安装目录mkdir /eventlogmkdir /libolmkdir /syslog-ng安装eventlogtar xzvf eventlog-0.2.5.tar.gzcd eventlog-0.2.5./configure --prefix=/eventlog && make && make install安装liboltar xzvf libol-0.2.5.tar.gzcd libol-0.2.5./configure --prefix=/libol && make && make install安装syslog-ngexport PKG_CONFIG_PA TH=/eventloglib/pkgconfig/tar xzvf syslog-ng-2.0.6.tar.gzcd syslog-ng-2.0.6./configure --prefix=/syslog-ng --with-libol=/libol && make && make install 至此syslog-ng的安装完成。
3、配置syslog-ng首先创建一个文件作为下面实验的日志存储文件touch /test.log进入syslog-ng的安装目录cd /syslog-ngmkdir etcvi syslog-ng.conf输入如下内容进行测试options {keep_hostname(yes);long_hostnames(off);sync(1);log_fifo_size(1024);create_dirs(yes); # if a dir does not exist create itowner(root); # owner of created filesgroup(root); # group of created filesperm(0600); # permissions of created filesdir_perm(0700); # permissions of created dirs};source sudp {udp();};destination test {file("/test.log");};log {source(sudp);destination(test);};配置文件的内容结束。
设置 Syslog 日志服务器用来获取交换机日志(Syslog 日志服务器用来获取交换机日志CISCO和H3C交换机的设置)注:配置日志服务器前先检查是否已安装了SYSLOG服务执行 ps -e |grep syslogd 查看进程是否存在没有安装 # apt-get install syslogd 安装,或下载用安装包H3C交换机的设置举例1. 组网需求将系统的日志信息发送到 linux 日志主机;日志主机的IP 地址为 1.2.0.1/16;信息级别高于等于 informational 的日志信息将会发送到日志主机上;日志信息的输出语言为英文,允许输出信息的模块为ARP 和 CMD。
2. 组网图3. 配置步骤(1) 设备上的配置。
# 开启信息中心。
<Sysname> system-view[Sysname] info-center enable# 指定向日志主机输出日志信息的通道为 loghost 通道。
[Sysname] info-center loghost 1.2.0.1 channel loghost# 关闭所有模块日志主机的 log、trap、debug 的状态。
[Sysname] info-center source default channel loghost debug state off log state off trap state off注意:由于系统对各通道允许输出的系统信息的缺省情况不一样,所以配置前必须将所有模块的需求通道(本例为loghost )上log、trap、debug 状态设为关闭,再根据当前的需求配置输出相应的系统信息。
可以用display channel 命令查看通道的状态。
# 将 IP 地址为 1.2.0.1/16 的主机作为日志主机,设置信息级别为informational,输出语言为英文,允许输出信息的模块为所有模块。
[Sysname] info-center loghost 1.2.0.1 facility local7 language english [Sysname] info-center source default channel loghost log level informational 2) 日志主机上的配置。
RHEL6 syslog日志服务器搭建[root@server ~] vi /etc/rsyslog.conf Save boot messages ao to boot.log local7.* /var/log/boot.log *.* @hostname 这里的hostname用服务器的IP地址替换。
然后重新启动服务/etc/init.d/rsyslog restart 服务器端配置: [root@server ~] vi /etc/rsyslog.conf 将下面两行的注释取消掉 Proves UDP syslog reception $ModLoad imudp.so $UDPServerRun 514 然后重新启动服务/etc/init.d/rsyslog restart 用法lsof -i:514 来查看rsyslog服务是不是正常侦听端口注重,防火墙配置的时候要开放UDP的514端口 RHEL5.4 1。
客户端客户端服务器上修改/etc/syslog.conf文件,在最后面加上下面的 *.* @hostname 这里的hostname用服务器的IP 地址替换。
重启启动服务/etc/init.d/syslog restart 2 服务器端在/etc/sysconfig/syslog文件中 Options to syslogd -m 0 disables 'MARK' messages. -r s logging from remote machines -x disables DNS ups on messages reciev with -r See syslogd(8) for details SYSLOGD_OPTIONS= -r -m 0 在这里添加一个-r 重启启动服务/etc/init.d/syslog restart 用法lsof -i:514 指令来查看rsyslog服务是不是正常侦听端口注重,防火墙配置的时候要开放UDP的514端口第1页共1页。
RHEL5 下使用syslog-ng构建集中型日志服务器在生产环境中,存在一台日志服务器,专门用来记录其他服务器的日志信息是个很好的主意,不过用红帽自带的syslog,配置虽然简单,但是日志却没有办法分离,默认都堆在/var/log/message文件里面,用来超不爽,下面来介绍下用syslog-ng来构建日志服务器,这个还支持将日志导入数据库和通过网页来发布日志,听起来功能相当的强大,接下来要好好的研究下咯……环境介绍日志服务器IP:192.168.90.20;客户端IP:192.168.90.10系统:RHEL5.4实现目标:将客户端的日志自动保存在服务器端的相应目录,并根据日期,IP地址和日志类型进行分开保存备注:由于在虚拟机环境下操作,服务器于客户端时间未同步,所以会存在记录日志时间不一致的现象;[root@server2 ~]# cd /usr/local/src/tarbag/[root@server2 tarbag]# wget /downloads/files/eventlog/0.2/eventlog_0.2.9.tar.gz[root@server2 tarbag]# tar -zxvf eventlog_0.2.9.tar.gz -C ../software/[root@server2 tarbag]# cd ../software/eventlog-0.2.9/[root@server2 eventlog-0.2.9]# ./configure --prefix=/usr/local/eventlog && make && make install[root@server2 eventlog-0.2.9]# ls /usr/local/eventlog/include lib[root@server2 syslog-ng-3.0.5]# cd -/usr/local/src/tarbag[root@server2 tarbag]# wget /downloads/files/libol/0.3/libol-0.3.9.tar.gz[root@server2 tarbag]# tar -zxvf libol-0.3.9.tar.gz -C ../software/[root@server2 tarbag]# cd ../software/libol-0.3.9/[root@server2 libol-0.3.9]# ./configure --prefix=/usr/local/libol && make && make install[root@server2 libol-0.3.9]# ls /usr/local/libol/bin include lib[root@server2 tarbag]# wget /downloads/files/syslog-ng/sources/3.0.5/source/syslog-ng_3.0.5.tar.gz[root@server2 tarbag]# tar -zxvf syslog-ng_3.0.5.tar.gz -C ../software/[root@server2 tarbag]# cd ../software/syslog-ng-3.0.5/[root@server2 syslog-ng-3.0.5]# export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig[root@server2 syslog-ng-3.0.5]# ./configure --prefix=/usr/local/syslog-ng --with-libol=/usr/local/libol && make && make installconfigure: error: Cannot find eventlog version >= 0.2: is pkg-config in path? (若出现这个错误,基本上是由于前面的PKG_CONFIG_PATH变量没指定好) [root@server2 syslog-ng-3.0.5]# ls /usr/local/syslog-ng/bin libexec sbin share[root@server2 syslog-ng-3.0.5]# mkdir /usr/local/syslog-ng/etc[root@server2 syslog-ng-3.0.5]# mkdir /usr/local/syslog-ng/var[root@server2 syslog-ng-3.0.5]# cp contrib/syslog-ng.conf.RedHat /usr/local/syslog-ng/etc/[root@server2 syslog-ng-3.0.5]# cp contrib/init.d.RedHat /etc/init.d/syslog-ng[root@server2 syslog-ng-3.0.5]# cd /usr/local/syslog-ng/etc/[root@server2 etc]# mv syslog-ng.conf.RedHat syslog-ng.conf[root@server2 etc]# cat syslog-ng.conf@version:3.0options {long_hostnames(off);log_msg_size(8192);flush_lines(1);log_fifo_size(20480);time_reopen(10);use_dns(yes);dns_cache(yes);use_fqdn(yes);keep_hostname(yes);chain_hostnames(no);perm(0644);stats_freq(43200);};source s_internal { internal(); };destination d_syslognglog { file("/var/log/syslog-ng.log"); };log { source(s_internal); destination(d_syslognglog); };source s_local {unix-dgram("/dev/log");file("/proc/kmsg" program_override("kernel:"));};filter f_messages { level(info..emerg); }; //定义7种日志类型filter f_secure { facility(authpriv); };filter f_mail { facility(mail); };filter f_cron { facility(cron); };filter f_emerg { level(emerg); };filter f_spooler { level(crit..emerg) and facility(uucp, news); };filter f_local7 { facility(local7); };destination d_messages { file("/var/log/messages"); }; //定义7种类型日志在客户端的位置destination d_secure { file("/var/log/secure"); };destination d_maillog { file("/var/log/maillog"); };destination d_cron { file("/var/log/cron"); };destination d_console { usertty("root"); };destination d_spooler { file("/var/log/spooler"); };destination d_bootlog { file("/var/log/dmesg"); };log { source(s_local); filter(f_emerg); destination(d_console); };log { source(s_local); filter(f_secure); destination(d_secure); flags(final); };log { source(s_local); filter(f_mail); destination(d_maillog); flags(final); };log { source(s_local); filter(f_cron); destination(d_cron); flags(final); };log { source(s_local); filter(f_spooler); destination(d_spooler); };log { source(s_local); filter(f_local7); destination(d_bootlog); };log { source(s_local); filter(f_messages); destination(d_messages); };# Remote logging //定义监听的端口source s_remote {tcp(ip(0.0.0.0) port(514));udp(ip(0.0.0.0) port(514));};//定义客户端日志在服务器上保存的格式,位置和权限等destination r_console {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/console" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; destination r_secure {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/secure" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; destination r_cron {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/cron" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; destination r_spooler {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/spooler" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; destination r_bootlog {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/bootlog" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; destination r_messages {file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));}; log { source(s_remote); filter(f_emerg); destination(r_console); };log { source(s_remote); filter(f_secure); destination(r_secure); flags(final); };log { source(s_remote); filter(f_cron); destination(r_cron); flags(final); };log { source(s_remote); filter(f_spooler); destination(r_spooler); };log { source(s_remote); filter(f_local7); destination(r_bootlog); };log { source(s_remote); filter(f_messages); destination(r_messages); };[root@server2 etc]# chmod +x /etc/init.d/syslog-ng[root@server2 etc]# chkconfig --add syslog-ngservice syslog-ng does not support chkconfig(若出现该错误,请修改该脚本前四行如下)[root@server2 etc]# head -4 /etc/init.d/syslog-ng //加services不是在usr下的etc#!/bin/bash#chkconifg: --add syslog-ng#chkconfig: 2345 12 88#Description: syslog-ng该脚本还需要修改下面的三个位置[root@server2 etc]# grep ‘PATH‘ /etc/init.d/syslog-ngPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/syslog-ng/bin:/usr/local/syslog-ng/sbin[root@server2 etc]# grep 'INIT' /etc/init.d/syslog-ng |head -2INIT_PROG="/usr/local/syslog-ng/sbin/syslog-ng" # Full path to daemonINIT_OPTS="-f /usr/local/syslog-ng/etc/syslog-ng.conf" # options passed to daemon[root@server2 etc]# service syslog-ng start // 注意cd /usr/local/syslog-ng/etc/Starting syslog-ng: /usr/local/syslog-ng/sbin/syslog-ng: error while loading shared libraries: libevtlog.so.0: cannot open shared object file: No such file or directoryStarting Kernel Logger: 出现此错误是因为共享库链接没做好[root@server2 etc]# ln -s /usr/local/eventlog/lib/* /lib/出现下面的问题是因为主配置文件中缺少:@version:3.0这行Starting syslog-ng: Configuration file has no version number, assuming syslog-ng 2.1 format. Please add @version: maj.min to the beginning of the file;[root@server2 ~]# service syslog-ng startStarting Kernel Logger: [ OK ][root@server2 etc]# cat /var/log/syslog-ng.logJan 28 03:59:07 syslog-ng[20225]: syslog-ng starting up; version='3.0.5'客户端配置:[root@client ~]# tail -1 /etc/syslog.conf*.* @192.168.90.20[root@client ~]# logger -i just one test[root@client ~]# tail -1 /var/log/messagesJan 27 22:12:02 client root[2861]: just one test[root@server2 ~]# cat /var/log/syslog-ng/20100128/192.168.90.10/messagesJan 28 04:24:32 192.168.90.10 root[2861]: just one test[root@server2 ~]# cat /var/log/syslog-ng/20100128/192.168.90.10/secureJan 28 04:01:04 192.168.90.10 sshd[2832]: Accepted publickey for root from 192.168.90.1 port 48834 ssh2 Jan 28 04:01:04 192.168.90.10 sshd[2832]: pam_unix(sshd:session): session opened for user root by (uid=0)参考网站:/s/blog_4a071ed80100cssu.html前面配置好了syslog-ng,下面简要的概述下如何将系统日志存入mysql1:将mysql的头文件和库文件链接到/usr/local下[root@server2 ~]# ln -s /usr/local/mysql/lib/mysql /usr/local/lib/mysql[root@server2 ~]# ln -s /usr/local/mysql/include/mysql/ /usr/local/include[root@server2 ~]# cd /usr/local/src/software/sqlsyslogd2:下载sqlsyslogd源码包,由于是整个目录下载,所以会下载index.html打头的索引文件[root@server2 software]# wget -d -r -np /sources/security/sqlsyslogd/[root@server2 software]# cd /sources/security/sqlsyslogd/[root@server2 sqlsyslogd]# rm -rf index.html*[root@server2 sqlsyslogd]# cd contrib/[root@server2 contrib]# rm -rf index.html*[root@server2 contrib]# cd[root@server2 ~]# mv /usr/local/src/software//sources/security/sqlsyslogd/ /usr/local/src/software/3:make,复制sqlsyslogd二进制程序到/usr/local/sbin目录下[root@server2 ~]# cd /usr/local/src/software/sqlsyslogd/[root@server2 sqlsyslogd]# makecc -O6 -Wall -pipe -I/usr/local/include -DCONF=\"/usr/local/etc/sqlsyslogd.conf\" -L/usr/local/lib/mysql -lmysqlclient sqlsyslogd.c -o sqlsyslogd [root@server2 sqlsyslogd]# cp sqlsyslogd /usr/local/sbin/4:执行下sqlsyslogd程序,出现下面的命令选项则说明安装成功[root@server2 sqlsyslogd]# sqlsyslogdusage: sqlsyslogd [-h hostname] <-u username> [-p] <-t table> [database]5:修改/etc/ld.so.conf文件,并使其生效,这个文件维护着编译的动态链接库位置[root@server2 sqlsyslogd]# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf/usr/local/lib/mysql[root@server2 sqlsyslogd]# ldconfig6:在数据库中创建相应的库和表[root@server2 sqlsyslogd]# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 158Server version: 5.1.36-log Source distributionType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database syslog;Query OK, 1 row affected (0.00 sec)mysql> use syslogDatabase changedmysql> create table logs (Id int(10) NOT NULL auto_increment,Timestamp varchar(16),Host varchar(50),Prog varchar(50),Mesg text,PRIMARY KEY (id)); Query OK, 0 rows affected (0.01 sec)mysql> exitBye7:该文件定义了连接数据库的密码[root@server2 sqlsyslogd]# cat /usr/local/etc/sqlsyslogd.conf1234568:在syslog-ng主配置文件中添加下列配置[root@server2 sqlsyslogd]# vi /usr/local/syslog-ng/etc/syslog-ng.confdestination sqlsyslogd{program("/usr/local/sbin/sqlsyslogd -u root -t logs syslog -p");};log {source(s_remote);destination(sqlsyslogd);};9:重启syslog-ng服务[root@server2 sqlsyslogd]# service syslog-ng restartStopping Kernel Logger: [ OK ]Starting Kernel Logger: [ OK ]10:客户端发消息测试[root@server2 sqlsyslogd]# tail -1 /var/log/syslog-ng/20100226/192.168.90.1/messagesFeb 26 14:25:47 192.168.90.1 root[6058]: just for fun。
安装过程1、运行Kiwi Syslog 安装包里的Kiwi_Syslog_Server_9.2.1.Eval.setup.exe,弹出安装界面,点击“I agree”2、选择安装模式为“Install Kiwi Syslog Server as a service”,两者的区别是,前者可以在关闭软件主界面后仍然能记录日志,后者只能瞬时记录日志3、选择安装的用户,本地系统账户还是一个管理员的账户4、勾选“Install Kiwi Syslog Web Access”(可以不勾选),因为他提示了此功能只限注册用户使用、5、选择安装的组件6、选择安装的路径7、若第四步中没有勾选安装Kiwi Syslog Web Access,则会提示安装成功,若勾选了,则会提示安装Kiwi Syslog Web Access必备组件的向导,安装过程会自动下载并安装这些组件、8、之后就会弹出Kiwi Syslog Web Access的安装向导过程,也比较简单。
9、在Kiwi Syslog的安装包里还有个工具SolarWinds_LogForwarder_1.1.15_Eval_Setup.exe,安装也比较简单,这里不详细介绍。
配置过程Kiwi Syslog Server的各种详细配置主要在file-setup里面。
我们主要介绍2个方面的配置1、log文件的存放路径,点击Rules-Actions-Log to file,这里我们就可以设置存放的位置以及存放的格式2、配置计划任务,点击Rules-Shedules-Add new scheduleSchedule字段添加日志计划频率(按小时算、每6个小时记录一次,一天记录4次)Source字段(设置临时存储日志的路径)Destination字段(设置最终日志存储目录)实例测试Windows环境(亲测)把这两个文件拷贝到c:\windows\system32目录下。
打开Windows命令提示符(开始->运行输入CMD)C:\>evtsys –i –h 192.168.10.100-i 表示安装成系统服务-h 指定log服务器的IP地址如果要卸载evtsys,则:net stop evtsysevtsys -u启动该服务:C:\>net start evtsys打开windows组策略编辑器(开始->运行输入gpedit.msc)在windows设置-> 安全设置-> 本地策略->审核策略中,打开你需要记录的windows日志。
我们需要测试一种集中日志系统,要在Windows上建立一个类Linux下的集中日志系统。
经过比较Winsyslog和Kiwisyslog等工具,最终选定Kiwisyslog(/),它不仅功能齐全,而且提供免费的版本。
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服务器。
利用inotify和syslogd架设分列的日志服务器众所周知Linux下的syslog服务可以架设为日志服务器,接受各个linux和一些网络设备的服务日志,甚至可以结合Eventlog to Syslog Utility接收windows服务器的日志但是syslog接收下来的日志全部归结在一起,很难查询是哪一台服务器的什么服务。
为此,可以结合inotify 工具写脚本,把接收到的日志按IP以资料夹方式分列,这样很容易查询对应服务器的日志。
实施:1.在日志服务器上安装inotify,网上搜说很多的,在此不做说明;2.配置syslog服务端:#ps -ef|grep syslogd查看参数中是否有-r,如我的结果是syslog 16247 1 0 Nov16 ? 00:02:36 /sbin/syslogd -r -u syslog如果没有,在syslogd的启动中加入参数,这里不详解3.配置syslog客服端:在/etc/syslog.conf 的前几行增加如下参数,重新启动syslog服务即可:*.* @x.x.x.x #x.x.x.x为日志服务器ip地址,现在服务器端就可以接收来自客服端的日志了。
4.实现日志按照ip地址分列:a).将以下脚本拷贝到/etc/init.d/logmonitor,并增加执行权限:chmod +x /etc/init.d/ logmonitor,注意红色字体部分要根据自己实际情况更改路径:#!/bin/bashPATH=/usr/bin:/usr/local/bin:/bininotifywait=/usr/local/bin/inotifywait #inotifywait 执行程序路径logpath=/var/log #本机的syslog所在路径splitlog=/opt/log #分列后按IP归结的日志路径,不要和上面一行在同一个路径echo "`date` logmoniter start">>/var/log/logmoniterlogsplit() {$inotifywait -mrq -e create,modify --format '%w %e %f' $logpath|while read w e f;doif [ "$e" = "IGNORED" ];thencontinuefiActionsplit(){last=`tail -n 1 $w/$f`ip=`echo $last|grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'| cut -d " " -f 4`echo $ip|grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >/dev/ null || ip=localsubsplitlog=$splitlog/$ipif [ ! -e $subsplitlog ];thenmkdir -p $subsplitlog#设置日志logrotatecat >>"/etc/logrotate.d/logserver"<<_EOF$subsplitlog/* {weeklymissingokrotate 2size 5Mcompress}_EOF$syslogserver restartfiecho "$last">>$subsplitlog/$fecho -e "$last \033[32m >>$subsplitlog/$f \033[0m">/dev/pts/1}[ $f != "wtmp" ] && [ $f != "lastlog" ] && Actionsplitdone}case "$1" instart)logsplit &echo "logmoniter start ok!";;stop)killall inotifywait;;restart)$0 stop$0 start;;*)echo $"Usage: logmoniter {start|stop|restart}";;esacexit 02).根据系统不同将服务安装到启动:#runlevel 查看系统启动的级别,然后将/etc/init.d/ logmonitor连接到对应的服务级别:如unbuntu一般是2: ln -s /etc/init.d/logmonitor /etc/ rc2.d/S88logmonitor ,这样下次系统开机的时候也会自动启动服务了3).启动服务:/etc/init.d/logmonitor restart, 现在去你定义的分列路径就可以看到对应IP下的日志了。
日志服务器搭建实战一、准备阶段1、硬件准备需要一台日志服务器,windows平台,建议采用windows 2003 操作系统。
确定其他需要记录日志的设备,包括windows平台服务器、linux服务器、小型机、路由设备以及交换设备等。
2、软件设备服务器端软件:3Csyslog日志记录软件。
Windows客户端软件:evtsys客户端软件,提供windows 下的syslog系统服务。
二、部署阶段1、服务器端在服务器端安装3Csyslog软件。
打开3Csyslog软件,点击File——Configure,弹出如下页面选择Log File Destnations选项,设置日志文件保存路径。
3、客户端1)windows客户端在需要记录日志的windows服务器上,运行evtsys软件,方法如下,将evtsys目录内的两个文件拷贝到c:/windows/system32目录下,运行evtsys.exe文件。
打开开始——运行,输入cmd,弹出的对话框内,输入evtsys –i –h 192.168.1.2类似的ip地址,指定服务器ip地址。
然后,输入service evtsys start 启动日志服务。
2)交换机设备对于交换机,只需要修改他的syslog保存地址,指定保存到日志服务器即可,用vi编辑器编辑syslog.conf 文件,指定远程地址即可。
3)防火墙设备对于类unix系统,均可采用启动syslog服务,修改syslog配置文件,指定远程日志服务器的方式达到相同效果。
三、系统运行点击开始——程序里的3Csyslog程序,即可查看当前活动的日志情况。
如下图:syslog文件,如下图:打开syslog文件,即可查看记录的日志信息,如下图:。
freebsd-syslog配置日志服务器FreeBSD Syslog配置日志服务器日志服务器对于系统管理和故障排除来说至关重要。
通过配置FreeBSD服务器的Syslog服务,您可以集中存储和管理所有系统和应用程序的日志信息。
本文将引导您配置FreeBSD服务器作为日志服务器的步骤,并确保其良好的可读性和安全性。
1. 安装Syslog守护程序Syslog守护程序是一种能够接收、存储和转发系统日志信息的服务。
在FreeBSD上,我们可以使用syslog-ng或rsyslog等工具来实现这一功能。
在本例中,我们将使用rsyslog作为示例。
在终端中执行以下命令,安装并启动rsyslog服务:```$ pkg install rsyslog$ sysrc rsyslogd_enable="YES"$ service rsyslog start```2. 配置rsyslog接下来,我们需要配置rsyslog以充分满足我们的要求。
编辑rsyslog的配置文件`/usr/local/etc/rsyslog.conf`,并根据您的需求进行相应的更改。
a. 定义默认模板在配置文件的顶部,我们将定义默认的模板,以便日志消息以可读的格式呈现:```$templatePerHostLog,"/var/log/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DA Y%.log"$template RemoteHostLog,"/var/log/remote/%FROMHOST-IP%/%$YEAR%/%$MONTH%/%$DAY%.log"$ActionFileDefaultTemplate PerHostLog$ActionFileDefaultTemplate RemoteHostLog```以上代码将日志消息按照主机名和日期存储在相应的目录中。
syslog与syslog服务器的配置服务器socketunix终端cronlinux1. 前言syslog是UNIX系统中提供的一种日志记录方法(RFC3164),syslog本身是一个服务器,程序中凡是使用syslog记录的信息都会发送到该服务器,服务器根据配置决定此信息是否记录,是记录到磁盘文件还是其他地方,这样使系统内所有应用程序都能以统一的方式记录日志,为系统日志的统一审计提供了方便。
2. 日志格式syslog记录的日志格式为:月日时:分:秒主机名标志日志内容3. syslog编程为记录日志,通常用到3个函数,openlog(3),syslog(3)和closelog(3),openlog(3)和closelog(3)不是必须的,没有openlog(3)的话将用系统缺省的方式记录日志。
#include <syslog.h>void openlog( char *ident, int option, int facility)void syslog( int priority, char *format, ...)void closelog( void )openlog(3)有三个参数,第一个参数是标志字符串,也就是日志中的第5个字段,不设的话缺省取程序名称;第二个参数是选项,是下面一些标志位的组合:LOG_CONS:日志信息在写给日志服务器的同时打印到终端LOG_NDELAY:立即记录日志LOG_PERROR:把日志信息也输出到标准错误流LOG_PID:在标志字段中记录进程的PID值第三个参数是说明日志类型的,定义了以下类型:syslog(3)函数主要的是第一个参数priority,后面那些参数就是和printf(3)函数用法一样了,priority值表示该条日志的级别,日志级别分8级,由高到低的顺序为:如果openlog(3)时没有指定facility,是可以把facility的值或到priority中的,如(LOG_AUTH | LOG_INFO),已经设置了就可以不用或了。
在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的日志进行记录分类并审核,默认情况下,每个系统会在本地硬盘上记录自己的日志,这样虽然也能有日志记录,但是有很多缺点:首先是管理不便,当服务器数量比较多的时候,登陆每台服务器去管理分析日志会十分不便,其次是安全问题,一旦有入侵者登陆系统,他可以轻松的删除所有日志,系统安全分析人员不能得到任何入侵信息。
因此,在网络中安排一台专用的日志服务器来记录系统日志是一个比较理想的方案。
本文以FreeBSD下的syslog为例,介绍如何利用freebsd的syslogd来记录来自UNIX和windows的log信息。
一,记录UNIX类主机的log信息:首先需要对Freebsd的syslog进行配置,使它允许接收来自其他服务器的log信息。
在/etc/rc.conf中加入:syslogd_flags="-4 -a 0/0:*"说明:freebsd的syslogd参数设置放在/etc/rc.conf文件的syslogd_flags变量中Freebsd对syslogd的默认设置参数是syslogd_flags="-s",(可以在/etc/defaults/rc.conf中看到)默认的参数-s表示打开UDP端口监听,但是只监听本机的UDP端口,拒绝接收来自其他主机的log信息。
如果是两个ss,即-ss,表示不打开任何UDP端口,只在本机用/dev/log设备来记录log.修改后的参数说明:-4 只监听IPv4端口,如果你的网络是IPv6协议,可以换成-6-a 0/0:* 接受来自所有网段所有端口发送过来的log信息。
如果只希望syslogd接收来自某特定网段的log信息可以这样写:-a 192.168.1.0/24:*-a 192.168.1.0/24:514或者-a 192.168.1.0/24表示仅接收来自该网段514端口的log信息,这也是freebsd的syslogd进程默认设置,也就是说freebsd 在接收来自其他主机的log信息的时候会判断对方发送信息的端口,如果对方不是用514端口发送的信息,那么freebsd的syslogd会拒绝接收信息。
自动化专业综合设计说明书课题名称:Syslog日志服务器设计学生学号:专业班级:学生姓名:学生成绩:指导教师:课题工作时间:至xxxx教务处制一、课程设计的任务的基本要求:该课程设计主要的任务是编写一种可以被记录到不同的文件,还可以通过网络实现运行syslog协议的机器之间的信息传递的叫做syslog协议的这么一个课题。
Syslog已被许多日志函数采纳,它用在许多保护措施中——任何行为都可以通过syslog 记录事件。
通过System Call,记录用户自行开发的应用程序的运行状况。
日志系统的重点之一便是要研究及开发一些系统程序,该课题的设计过程要求先做好课题设计的大纲包括该课题应包括那些模块,要实现哪些功能,代码要用什么语言来写以及要用什么编译工具来编译运行该课题和运行的结果是什么样的,要用流程图把各个模块的连接关系一一的列出来,设计者应该有敢于创新和勇于负责的精神,从投入施工的角度来严肃对待自己的设计,使自己的设计能最大限度满足生产实际需要,既经济,又可靠。
二、课题设计框图:syslog syslog syslog消息队列File文件Server函数save指导教师签字:教研室主任签字:年月日年月日二、进度安排:第一周:(1) 指导教师讲解设计要求、规程、部分相关国家标准及有关技术规范、参考资料等事项。
(2)采用计算机辅助软件绘制工艺流程图结合设计题目熟悉代码流程。
第二周:(3)在熟悉代码流程的基础上,针对典型流程图进行代码分析。
第三周:(4) 按代码功能模块的顺序画出代码流程图。
(5) 讲画好的代码框图与小组的其他成员讨论研究其缜密性和可行性,找出该流程的弊端和矛盾之处,最终确定更好的代码顺序方案。
第四周:(6) 按照流程图编写代码,并且在编写代码的过程中要每写一个模块就要编译一次避免不必要的错误。
(7) 最后撰写详细的设计文档并让指导老师审核。
三、应收集资料及主要参考文献:[1]中软国际·LINUX系统程序设计[2]谭浩强 C程序设计(第三版)[3]严蔚敏,吴伟民数据结构(C语言篇)[4]张宇河,董宁·计算机控制系统·北京:北京理工大学出版社,2002[5]谢希仁计算机网络(第五版)[6]刘兵,吴煜煌 LINUX实用教程四、课程设计摘要(中文):Syslog是一种工业标准的协议,可用来记录设备的日志。
在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。
管理者可以通过查看系统记录,随时掌握系统状况。
UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。
通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。
从目前的情况来看,Syslog(系统日志)这一历史悠久的日志系统仍旧占据着最主流的地位。
由于与类 UNIX平台之间的渊源,Syslog是在实际应用环境中最容易获得的日志系统。
同时,还有很多的基于Syslog的扩展产品存在,这其中也包括大量基于UNIX平台构建内核的网络硬件设备,这些设备往往都内置了Syslog功能支持,例如Cisco路由器就是如此。
六、成绩评定:指导教师评语:指导教师签字:年月日项目评价项目评价调查论证工作量、工作态度实践能力分析、解决问题能力质量创新得分六、答辩记录:该课题是基于LINUX环境下的设计,它实现的功能是任意的一个进程都能调用syslog函数,并且可以随意的将任何信息传送至文本文件中。
该功能的实现和设计报告所写完全一致。
当遇到编译错误是设计者是这样做的:首先分清每个模块的功能,然后将整个代码流程逐行检查,并且在每个模块上加上一系列的打印信息,再次编译并观察代码运行到哪一行,然后在有问题的代码出处进行改正。
设计者采用先做粗略的设计文档在进行代码编写,这样做的好处是保证了代码的缜密性和严谨性。
答辩意见及答辩成绩答辩小组教师(签字):年月日总评成绩:(教师评分×75%+答辩成绩×25%)目录摘要 0绪论 (1)1.引言 (1)2.网络管理的原则和要求 (1)3.集中式网络管理的实现 (1)第一章 Syslog协议 (2)1.1 Syslog简介 (2)1.2 Syslog协议 (2)1.3 Syslog体系结构 (3)1.4 Syslog包格式 (3)1.4.1 PRI (3)1.4.2 HEADER部分 (5)1.4.3 MSG部分 (5)第二章Syslog配置 (6)2.1 概览 (6)2.2选择符 (6)2.3动作 (7)2.4 C语言中的syslog (7)closelog (9)第三章功能模块的设计 (10)3.1 功能框架图 (10)3.2 程序流程图 (11)第四章代码介绍 (12)4.1 编码步骤 (12)4.2 代码解析 (12)4.2.1 main函数的设计 (12)4.2.2 syslog()函数的设计 (13)4.2.3 server()函数的设计 (16)4.2.4 save_to_file()函数的设计 (18)第五章课程总结 (20)参考文献 (20)摘要Syslog是一种工业标准的协议,可用来记录设备的日志。
在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。
管理者可以通过查看系统记录,随时掌握系统状况。
UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。
通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。
从目前的情况来看,Syslog(系统日志)这一历史悠久的日志系统仍旧占据着最主流的地位。
由于与类 UNIX平台之间的渊源,Syslog是在实际应用环境中最容易获得的日志系统。
同时,还有很多的基于Syslog的扩展产品存在,这其中也包括大量基于UNIX平台构建内核的网络硬件设备,这些设备往往都内置了Syslog功能支持,例如Cisco路由器就是如此。
关键词:Syslog,Syslogd,Priority(PRI),Facility,Severity,Header,Message(MSG),Timestamp绪论本文档规定了syslog项目各模块的详细设计,函数设计,数据结构。
用于在linux下进行syslog的开发标准。
1.引言电信运营商的网络庞大而复杂,其上运行着多种网络设备、主机系统以及业务应用。
而且随着电信业的不断发展,各种新业务的推出,不同的系统纷纷建立,网络的复杂性不断增长,使得被管理的对象在系统中不是集中的而是分散的。
分布式的管理必然要求网络管理员在网络的协议层次结构上对系统管理做出重新的认识,通过适当的策略实现集中式管理,实现事件的实时监控和快速响应的网络管理。
传统的网络管理员关心的问题不单是安装配置、备份恢复、系统安全、性能优化等,还必须从OSI模型不同的层次重新考虑系统管理的内容和形式,再加上承载业务的特点,侧重于事件监控和响应的建设是当今网络管理的主要方向。
2.网络管理的原则和要求从技术的角度来说,网络管理有两条原则:1、由于管理信息而带来的通行量不应明显的增加网络的通信量。
2、被管理设备上的协议代理不应明显得增加系统处理的额外开销,以致于该设备的主要功能都被削弱。
网络管理的对象主要是构成网络的硬件和软件应用所组成。
这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。
通常情况下这些设备都分散在不同的地方,另外由于设备众多,要做到实时实地管理需要大量的人力和物力。
有什么办法可以对网络设备进行远程管理和状态进行预警呢?3.集中式网络管理的实现实际工作中,由于管理员不可能7×24小时监视着网络设备,网络运行中可能会发生很多突发情况。
因此,使用日志记录设备的报警信息十分重要,管理员可以借此对安全事件进行原因追查和故障排除等工作。
以路由器为例,一般都会设定内存保留Syslog。
但路由器的内存(Buffer)容量有限,大量事件发生时,会覆盖之前的记录,不利于实时预警和报告。
而对UNIX系统来说,由于管理设备的多样性和数量的缘故,一台台登录访问日志效率低下也不现实。
所以有必要建立专门的日志服务器,通过Syslog服务,接收设备发送出的报警信息。
第一章 Syslog协议1.1 Syslog简介Syslog是一种工业标准的协议,可用来记录设备的日志。
在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。
管理者可以通过查看系统记录,随时掌握系统状况。
在UNIX系统里,被syslog协议接受的事件可以被记录到不同的文件,还可以通过网络实现运行syslog协议的机器之间的信息传递。
Syslog已被许多日志函数采纳,它用在许多保护措施中——任何行为都可以通过syslog 记录事件。
通过System Call,记录用户自行开发的应用程序的运行状况。
日志系统的重点之一便是要研究及开发一些系统程序,例如logger等,将网络应用程序重要的行为向 syslog接口呼叫并记录为日志,大部分内部系统工具如邮件和打印系统都是如此生成信息的,许多新增的程序如Tcpwrappers和SSH也是如此工作的。
通过syslogd(负责大部分系统事件的daemon),系统事件可以写到一个文件或设备中,或给用户发送一个信息。
它能记录本地事件或通过网络记录远端设备上的事件。
1.2 Syslog协议syslog使用UDP协议作为它的传输层协议,其默认使用UDP端口514。
Syslog协议提供了一个传递方式,允许一个设备通过网络把事件信息传递给事件信息接受者(也称之为日志服务器)。
由于每个进程、应用程序和操作系统都或多或少地被独立完成,在syslog信息内容会有一些不一致的地方。
因此,协议中并没有任何关于信息的格式或内容的假设。
这个协议就是简单地被设计用来传送事件信息,但是事件已经被接受到不会被通知。
Syslog协议和进程最基本原则就是简单,在协议的发送者和接受者之间不要求有严格的相互协调。
事实上, syslog信息的传递可以在接受器没有被配置甚至没有接受器的情况下开始。
反过来,在没有被清晰配置或者定义的情况下,接收器也可以接收到信息。
几乎所有的网络设备都可以通过syslog protocol将日志信息以UDP方式传送到远端服务器,远端接收日志服务器必须通过syslogd来监听UDP Port 514,并且据syslog.conf中的配置来处理本机和接收访问系统的日志信息,把指定的事件写入特定档案中,供后台数据库管理和响应之用。