`
hongliangpan
  • 浏览: 312984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Syslog在网络管理中的应用

阅读更多
Syslog在网络管理中的应用
 信息来源于:上海电信信息网络部 王晓文
摘要
Syslog 是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有 关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与 设备和网络有关的状况。
关键词:Syslog,Syslogd,Priority(PRI),Facility,Severity,Header,Message(MSG),Timestamp。
1.引言
    电信运营商的网络庞大而复杂,其上运行着多种网络设备、主机系统以及业务应用。而且随着电信业的不断发展,各种新业务的推出,不同的系统纷纷建立,网络的 复杂性不断增长,使得被管理的对象在系统中不是集中的而是分散的。分布式的管理必然要求网络管理员在网络的协议层次结构上对系统管理做出重新的认识,通过 适当的策略实现集中式管理,实现事件的实时监控和快速响应的网络管理。传统的网络管理员关心的问题不单是安装配置、备份恢复、系统安全、性能优化等,还必 须从OSI模型不同的层次重新考虑系统管理的内容和形式,再加上承载业务的特点,侧重于事件监控和响应的建设是当今网络管理的主要方向。
2.网络管理的原则和要求
     从技术的角度来说,网络管理有两条原则:1、由于管理信息而带来的通行量不应明显的增加网络的通信量。2、被管理设备上的协议代理不应明显得增加系统处理 的额外开销,以致于该设备的主要功能都被削弱。网络管理的对象主要是构成网络的硬件和软件应用所组成。这一类包括工作站、服务器、网卡、路由器、网桥和集 线器等等。通常情况下这些设备都分散在不同的地方,另外由于设备众多,要做到实时实地管理需要大量的人力和物力。有什么办法可以对网络设备进行远程管理和 状态进行预警呢?
3.集中式网络管理的实现
    实际工作中,由于管理员不可能7×24小时监视着网络设备,网络运行中可能会发生很多突发情况。因此,使用日志记录设备的报警信息十分重要,管理员可以借 此对安全事件进行原因追查和故障排除等工作。以路由器为例,一般都会设定内存保留Syslog。但路由器的内存(Buffer)容量有限,大量事件发生 时,会覆盖之前的记录,不利于实时预警和报告。而对UNIX系统来说,由于管理设备的多样性和数量的缘故,一台台登录访问日志效率低下也不现实。所以有必 要建立专门的日志服务器,通过Syslog服务,接收设备发送出的报警信息。
4.Syslog在网络管理中的应用
4.1. Syslog Protocol简介
    Syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。在UNIX系统里,被syslog协议接受的事件可以被记录 到不同的文件,还可以通过网络实现运行syslog协议的机器之间的信息传递。
Syslog已被许多日志函数采纳,它用在许多保护措施中——任何 行为都可以通过syslog 记录事件。通过System Call,记录用户自行开发的应用程序的运行状况。日志系统的重点之一便是要研究及开发一些系统程序,例如logger等,将网络应用程序重要的行为向 syslog接口呼叫并记录为日志,大部分内部系统工具如邮件和打印系统都是如此生成信息的,许多新增的程序如Tcpwrappers和SSH也是如此工 作的。通过syslogd(负责大部分系统事件的daemon),系统事件可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络 记录远端设备上的事件。
 
图1   Syslogd运作图
4.2. Syslog在网络管理方面应用
    Syslog协议提供了一个传递方式,允许一个设备通过网络把事件信息传递给事件信息接受者(也称之为日志服务器)。由于每个进程、应用程序和操作系统都 或多或少地被独立完成,在syslog信息内容会有一些不一致的地方。因此,协议中并没有任何关于信息的格式或内容的假设。这个协议就是简单地被设计用来 传送事件信息,但是事件已经被接受到不会被通知。Syslog协议和进程最基本原则就是简单,在协议的发送者和接受者之间不要求有严格的相互协调。事实 上, syslog信息的传递可以在接受器没有被配置甚至没有接受器的情况下开始。反过来,在没有被清晰配置或者定义的情况下,接收器也可以接收到信息。
    几 乎所有的网络设备都可以通过syslog protocol将日志信息以UDP方式传送到远端服务器,远端接收日志服务器必须通过syslogd来监听UDP Port 514,并且根据syslog.conf中的配置来处理本机和接收访问系统的日志信息,把指定的事件写入特定档案中,供后台数据库管理和响应之用。也就是 说可以让任何所产生的事件都登录到一台或多台服务器上,以便后台数据库可以相对远端设备以Off-line的方法分析事件。

                            图2日志分析系统架构图
4.3. Syslog的格式说明
    设备必须通过一些规则来配置,以便显示或者传递事件信息。不管管理员决定怎样配置对事件信息的处理,把这些信息发送到syslog接受者的过程一般都由下面部分构成:决定哪个帮助信息要被发送,要被发送的级别,定义远程的接受者。
    被 传输的syslog信息的格式主要有3个容易识别出来的部分,分别是PRI、HEADER、MSG。数据包的长度小于1024个字节。PRI部分必须有 3、4、5个字符,以“<”开头,然后是一个数字,并以“>”结尾。在方括号内的数字被称为优先级 (Priority),由facility和severity两个值构成。信息中的facilities和severities通过十进制值进行数字的编 码。一些操作系统的后台监控程序和进程被分配一个facility值,那些没有分配一个facility值的进程和daemons将会使用“local use”的facilities值或者“用户级别”的facilities值。下面的表格表示被指定的Facilities值和对应的数字代码。
Numerical Code            Facility
0                    kernel messages                            
1                  user-level messages
2                  mail system      
3                  system daemons                             
4                  security/authorization messages            
5                  messages generated internally by syslogd   
6                  line printer subsystem                     
7                  network news subsystem                     
8                  UUCP subsystem                             
9                  clock daemon                               
10                  security/authorization messages            
11                  FTP daemon                                 
12                  NTP subsystem                              
13                  log audit                                  
14                  log alert                                  
15                  clock daemon                               
16                  local use 0  (local0)                   
17                   local use 1  (local1)                      
18                   local use 2  (local2)                      
19                   local use 3  (local3)                      
20                   local use 4  (local4)                      
21                   local use 5  (local5)                      
22                   local use 6  (local6)                      
23                   local use 7  (local7)                      
                      表1    Syslog Message Facilities
每个信息优先级也有一个表示十进制Severity登记的参数, 下面的表格描述出他们和对应数值。
Numerical Code                 Severity
        
0                   Emergency
1                   Alert
2                   Critical
3                   Error
4                   Warning
5                   Notice
6                   Informational
7                         Debug
                          
表 2   Syslog Message Severities
    Priority(优先级) = facility * 8 + severity值。比如说,一个核心信息(facility=0)和一个Emergency的severity将会产生优先级为0。同样, 一个“local use 4”信息(facility=20)和一个Notice的severity(severity=5)将会产生165的优先级。
    标 题(HEADER)部分由称为TIMESTAMP和HOSTNAME的两个域组成,PRI结尾的“>”会马上跟着一个TIMESTAMP,任何一个 TIMESTAMP或者HOSTNAME域后面都必须跟着一个空格字符。HOSTNAME包含主机的名称,若无主机名或无法识别则显示IP地址。如果一个 主机有多个IP地址,它通常会使用它传送信息的那个IP地址。TIMESTAMP是本机时间,采用的格式是“Mmm dd hh:mm:ss”表示月日时分秒。HOSTNAME域仅仅能够包括主机名称,Ipv4地址或者是信息产生者的Ipv6地址。
    MSG部分是Syslog数据包剩下的部分。这通常包含了产生信息进程的额外信息,以及信息的文本部分。MSG部分有两个域,分别为TAG域和 CONTENT域,TAG域的值是产生信息的程序或者进程的名称,CONTENT包含了这个信息的详细内容。传统上来说,这个域的格式较为自由,并且给出 一些时间的具体信息。TAG是一个不许超过32个字符的字母数字字符串,任何一个非字母数字字符都将会终止TAG域,并且被假设是CONTENT域的开 始。在大多数情况下,表示TAG结束的CONTENT域的第一个字符用左大括号( [ ],分号( : )或者是空格来表示。
4.3. Syslog的发送和接收
    接受端服务器收到发送给它的syslog数据包,它将检查它的有效PRI。如果第一次字符不是一个“<”,或者第三、第四或者第五不是一个 “>”,接收端将认为数据包没有包含有效的PRI。接着检查在标题部分的有效TIMESTAMP,从这些规则中,信息的接收一般有三个情况,下面给 出了这三个情况的通常属性,并列举了随后在这篇中什么地方会描写这些情况。
    有效的PRI and TIMESTAMP:在数据包中发现一个有效的PRI和TIMESTAMP,那么会接着检查数据包的内部配置,接收端必须根据数据包的优先级来还原,或者 在不对数据包做任何变化的情况下将它转发出去。这里要注意到的是接受端没有必要确认TIMSTIMP里面的时间,同时接收端也没有必要确认 HOSTANME的值和发送信息设备的主机名或者IP地址一致。
    有效的 PRI,但没有TIMESTAMP 或者TIMESTAMP无效:要是在数据包中发现一个有效的TIMESTAMP,那么必须马上添加一个TIMESTAMP和一个空格字符在PRI部分的结 尾的方括号内,它还必须添加一个HOSTNAME和空格字符在TIMESTAMP后面,接收到的信息包剩下的部分必须被当曾MSG的CONTENT域并附 加上,由于无法识别产生信息的设备所发出的进程,TAG的值无法被识别出来, 所以不会包含再里面。TIMESTAMP将会是接收端的本地时间,HOSTNAME是设备的名称,它被中继器所识别。如果名字如能被决定, 设备的IP地址将被使用到。要是中继器添加一个TIMESTAMP(或者同时添加TIMESTAMP和HOSTNAME)在PRI后面, 然后检 查是否数据包的总体长度仍然小于或等于1024个字节。如果数据包被扩展超过1024个比特, 中继器必须截去一部分数据包数据使它到达到1024比特。这将会导致原始数据包结尾部分重要信息的丢失. 所以,这就是产生的syslog数据包的PRI和HEADER部分包含在4.3节所记录的值和域之中的缘故。
    没 有 PRI or 或者 PRI无法识别:如果收不到PRI或者PRI不可识别,除了必须插入一个优先级为13的PRI和我们在上面描述的TIMESTAMP,还必须插入一个 HOSTNAME。被接收到的数据包的全部内容将被认为是被传递的MSG的CONTENT并被添加在后面。一个不可识别的PRI的例子就是“< 00>”,这也许是一个信息的前4个字符。如果接收到这样的syslog信息,那么它的优先级将被中继器或收集者改为13,并且加入 TIMESTAMP。具体如下:
      原来接收到的信息
<00>...
被传递或识别的信息
<13>TIMESTAMP HOSTNAME <00>...
    如果中继器添加一个TIMESTAMP(或者同时添加一个TIMESTAMP和HOSTNAME)在PRI后面, 那么它将检查这个数据包的总体长度是否等于或者小于1024个比特。
    在UNIX文件系统里头,syslog设备依据两个重要的文件:syslogd(守护进程)和syslog.conf配置文件。习惯上,多数syslog 信息被写到/var/adm或/var/log目录下的信息文件中(syslog或messages.*)。一个典型的syslog纪录包括生成程序的名 字和一个文本信息。它还包括一个设备和一个优先级范围(但不在日志中出现)。Syslog.conf的格式比较复杂,大家可以参考一下有关书籍(或者在主 机上man syslog.conf),主要是如下语句形式: facility、level、action。Facility代表各种服务,level代表syslog的认证级别,action代表的是针对前面信息 的处理动作。Action字段如果是@loghos(主机名或具体IP),则把信息发送到loghost,而不是本地的 /var/adm/messages。
4.4. 配置实例
4.4.1 UNIX à UNIX服务器
接收端设置:
我们采用一台Sun服务器作为日志接收服务器(Hostname:nmtest1-yd,IP为192.168.3.71)。 一般情况下,UNIX系统的本地系统日志都存放在/var卷下(Solaris系统默认存放在/var/adm/messages),当然我们也可以更改 存放路径。根据需求,配置syslogd.conf文件,重启syslogd应用。监控应用多的话,message可能会增大很多,可以做一些简单的分类 即可。
# vi   /etc/syslogd.conf
kern.crit  /dev/console       *把kern.crit、kern.alert及kern.emerg相关信息送到系统consle
authpriv.* /var/log/securelog  
mail.info;mail.!err /var/log/maillog   *把mail信息priority大于等于info,但priority为error除外的信息记录
发送端设置:(一台Sun服务器,IP为192.168.3.72)
指定好loghost,让后编辑/etc/syslog.conf,将原先的设定
*.info;mail.none;authpriv.none;cron.none[Tab]/var/log/messages
改成:
*.err;kern.debug;daemon.notice;mail.crit[Tab]/var/log/syslog@192.168.3.71
    保存后退出,在两台服务器上重启syslogd进程。在接收端和发送端上通过snoop监听514端口状况。可以发现有包进出。在nmtest1-yd上查看/var/log/syslog,可以发现:
Nov 23 18:17:25 [192.168.3.72.159.195] sendmail[17259]: unable to qualify my own domain name (nmtest2-yd) -- using short name
Nov 23 18:17:25 [192.168.3.72.159.195] sendmail[17895]: My unqualified host name (nmtest2-yd) unknown; sleeping for retry
Nov 23 18:17:25 [192.168.3.72.159.195] last message repeated 1 time
4.4.2 路由器à UNIX服务器
接收端设置:
我们采用一台Sun服务器作为日志接收服务器(Hostname:nmtest1-yd,IP为192.168.3.71),配置syslog.conf文件。
local0.info[Tab]/var/log/hw.log
保存退出,并生成hw.log空文件,touch /var/log/hw.log。
发送端设置:
router1# conf
router1(config)# logging on
router1(config)#loggin 192.168.3.71
router1(config)#logging facility local0
router1(config)#logging trap info
router1(config)#logging timestamps log datetime localtime 
在nmtest1-yd上查看/var/log/hw.log,可以发现:
Nov 18:17:25: %LINK-3-UPDOWN: Interface POS2/0/0, changed state to up
Nov 18:17:25: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0, changed state to up
Nov 18:17:25: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/1, changed state to up
Nov 18:17:25: %LINEPROTO-5-UPDOWN: Line protocol on Interface POS2/0/0, changed state to up   
5. 结束语
    结合syslog进行集中式网络管理,应先了解系统日志运作原理,并且能够依照本身需求,灵活运用日志系统,打造一个适合自身的记录环境。这种方法也存在 不足之处,由于syslog是以UDP方式传送,个别的日志消息可能会遗失;在网络设备崩溃的情况下,可能不会将最有用的信息发送到syslog服务器 上,这对于排除崩溃故障不是很有用;而且syslog日志服务器容易成为攻击者的目标,对于防范系统方面的攻击比较脆弱,需要特别注意。

参考文献:
RFC 3164-----The BSD Syslog Protocol

syslogd(请参阅syslogd(1M) 和 )是 UNIX 系统的一个常见组件,用于执行系统日志记录活动。syslogd 从一组日志源(如 /dev/log 和 /dev/klog )中读取数据,并按照 /etc/syslog.conf 中的说明处理这些日志消息。通过 syslog() 调用(请参阅 syslog(3C)),可将应用程序日志消息记录到 syslog 中。
syslog 消息格式


syslog 消息采用一种包含可选优先级和设备的标准格式。优先级指示消息的紧急程度。设备指示发布消息的子系统。表 3-1 列出了 /usr/include/syslog.h 中定义的优先级和设备资源。
表 3-1 syslog 优先级
消息 说明
LOG_ALERT 立即采取措施。
LOG_CRIT 发生了紧急状况。
LOG_DEBUG 调试级别的消息。
LOG_EMERG 系统不可用。
LOG_ERR 出现错误。
LOG_INFO 信息性消息。
LOG_NOTICE 正常,但需要引起注意的重要状态。
LOG_WARNING 处于警告状态。

表 3-2 介绍了 syslog 设备资源消息。
表 3-2 syslog 设备资源消息
消息 说明
LOG_AUTH 安全/授权消息(已废弃;现改用 LOG_AUTHPRIV)。
LOG_AUTHPRIV 安全/授权消息(专用)。
LOG_CRON 时钟守护程序(cron 和 at)。
LOG_DAEMON 无单独设备值的系统守护程序。
LOG_FTP ftp 守护程序。
LOG_KERN 内核消息。
从 LOG_LOCAL0 到 LOC_LOCAL7 保留供本地使用。
LOG_LPR 行式打印机子系统。
LOG_MAIL 电子邮件子系统。
LOG_NEWS USENET 新闻子系统。
LOG_SYSLOG 由 syslogd 内部生成的消息。
LOG_USER(缺省) 普通用户级别的消息。
LOG_UUCP UUCP 子系统。

消息过滤


使用 /etc/syslog.conf,可以根据优先级和设备过滤消息。可以将消息定向到:
• 特定日志文件
• 控制台
• 指定用户。如果用户已登录,则会将消息发送到用户终端。
• 所有登录用户
• 转发到远程系统。有关详细信息,请参阅“日志整合概述”。
有关配置消息过滤器的其他信息,请参阅 syslogd(8) 联机帮助页。

分享到:
评论

相关推荐

    SYSLOG日志数据采集实现

    syslog 使用UDP 作为传输协议,通过目的端口514(也可以是其他定义的端口 号),将所有安全设备的日志管理配置发送到安装了syslog 软件系统的日志服务器,syslog 日志服务器自动接收日志数据并写到日志文件中。

    syslog工具

    常见的应用场景是网络管理工具、安全管理系统、日志审计系统。 完整的syslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或 Level)、时间、主机名或IP、进程名、进程ID和正文。在Unix类操作系统上...

    SysLog:抓取Android系统和内核日志的工具

    系统日志 这是一个简单的应用程序,它记录各种日志类型,并将其压缩为zip文件。...此命令告诉电话的程序包管理器向SysLog授予READ_LOGS权限。 我怎样才能使adb正常工作? 提供了详细的指南,以提供有关什么是ADB以

    remote_syslog2:要安装,请参见“发布”选项卡。 自包含的守护程序,用于读取本地文件并发出远程syslog(不使用本地syslogd)

    聚合守护程序未生成的文件(例如,程序包管理器日志) 此代码已通过托管的日志管理服务进行了测试,应可以传输到任何syslog服务器。 从remote_syslog 1迁移 remote_syslog2是ruby 包的重写。 不支持ruby版本的所有...

    remote_syslog:已弃用,支持 https

    已弃用。 使用而不是这个 repo remote_syslog Ruby守护程序和发送器 在Go中, 已被重写为 。 作为独立的二进制文件... 聚合不是由守护进程生成的文件(例如,包管理器日志) 该库还可用于从 Ruby 代码生成一次性日志消

    syslog4net:一组log4net扩展,可与Syslog(RFC5424)集成

    syslog4net扩展桥接了log4net和Syslog之间缺少的链接,从而使您的.NET应用程序可以将应用程序级遥测发送到集中管理的运营智能解决方案(例如Splunk)中。 通过监视和分析从客户点击流和交易到网络活动和呼叫记录的...

    RFC3164.txt

    syslog广泛应用于系统日志。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的...常见的应用场景是网络管理工具、安全管理系统、日志审计系统。

    西门子SCALANCE W网络管理使用指南.zip

    西门子SCALANCE W网络管理使用指南zip,西门子SCALANCE W网络管理使用指南:本文描述了SCALANCE W模块在工业应用中的网络管理应用,例如Load&Save;,Syslog,E-mail,SNMP和SNTP协议。并阐述了这些网络管理协议的基本...

    Linux系统管理技术手册(第二版)

    深入讨论了网络的两大基本应用——域名系统和路由技术,然后逐章讲解Linux上的各种Internet关键应用,如电子邮件、NFS、文件共享、Web托管和Intemet服务,在这部分里还有专门的章节介绍网络硬件、网络管理与调试以及...

    RFC3164中文文档.txt

    syslog广泛应用于系统日志。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的...常见的应用场景是网络管理工具、安全管理系统、日志审计系统。

    EventLog_Analyzer.zip

     通过定义日志筛选规则和策略,帮助IT管理员从海量日志数据中精确查找关键有用的事件数据,准确定位网络故障并提前识别安全威胁,从而降低系统宕机时间、提升网络性能、保障企业网络安全。 一、日志管理 保障网络...

    日志管理Log4j学习笔记

    送的目的地是控制台、文件、 GUI 组件、甚至是套接口服务器、 NT 的事件记录器、 X Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日 信息的级别,我们能够更加细致地控制日志的生成过程。...

    RadwareDefensePro日常维护手册

    1 日常维护内容: 3 1.1 设备连通性检查 3 1.2 设备可管理性检查 3 1.2.1 SNMP管理检查 3 1.2.2 Web管理检查(可选:设备启用了Web管理) 4 ...3.2 网络延迟增大或关键应用受到影响 10 3.3 配置保存 10

    unix大全(涵盖了UNIX学习的方方面面)

    61.工作站在网络中的深入应用:将SOLARIS设置成PPP拨入服务器 62. SPARC工作站与其他类型计算机之间的远程互连 63.N机器上设置DNS客户端 64.aris中配置单网卡的Unix路由器 65.NIX文件系统的iso文件 66.安装过程...

    艾泰路由器的详细设置说明.txt

    策略库 QQ白名单 通告 网络尖兵 +网络安全 攻击防御 IP/MAC绑定 防火墙 域名过滤 连接限制 地址组配置 服务组配置 时间段配置 +系统管理 管理员配置 时钟管理 软件升级 配置管理 远程管理 设备管理 重启设备 快速...

    资源管理系统架构设计及开发-L1(入库).xlsx

    2051040 多选 syslog日志信息中一般包含哪几项? 2051041 多选 下列哪几项能够缓解系统瓶颈问题? 2051042 单选 下列哪个进程用于将修改过的数据从内存保存到磁盘数据文件中? 2051043 单选 尽快停止数据库进程的...

    SolarWinds简单应用手册

    一个专业的网络管理软件,可以监控,发现网络设备。 SolarWinds Engineer’s Edition 工程师版 包括以下工具: 1. 网络性能监控(Network Performance Monitoring):带宽测量(Bandwidth Gauges )、路由CPU负荷...

    Shift8:Shift8 在 AJAM 星号界面上提供了一种简单的机制。 除了提供一种与远程 asterisk 服务器通信的简单方法的明显原因之外,在软件和 Asterisk 服务器之间拥有一个中间库的主要好处主要是您可以隔离远程 Asterisk,保护凭据和整个交换机

    使用 Shift8 可以创建一个由两部分组成的应用程序,它不是直接向远程星号执行命令,而是通过队列处理器将命令排队,另一个应用程序将运行,在特定时间间隔内执行队列中的命令,并存储结果进入相同的队列以供“前端...

    WLAN智能网管系统设计方案.doc

    3.3 wlan 智能监控系统功能及应用 该系统可应用于网络优化测试、网络资产管理、设备巡检、维护资源管理、设备告警、 故障排查等工作中,全方位地提升现场维护、网络资源优化、网络管理的效率和质量。 系统功能及...

Global site tag (gtag.js) - Google Analytics