Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > syslog-系统日志应用,syslog日志格式

syslog-系统日志应用,syslog日志格式

收藏

本作品内容为syslog-系统日志应用,格式为 docx ,大小 3864733 KB ,页数为 8页

syslog-系统日志应用


('syslog-系统日志应用syslog系统日志应用1)概述syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向syslog接口呼叫生成该信息。几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线)方法分析远端设备的事件。通常,syslog接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf文件通知syslogd如何根据设备和信息重要级别来报告信息。2)etc/syslog.conf/etc/syslog.conf文件使用下面的格式:facility.levelactionfacility.level为选择条件本身分为两个字段,之间用一个小数点(.)分隔。action和facility.level之间使用TAB隔开。前一字段是一项服务,后一字段是一个优先级。选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使syslogd生成后处理信息。要素分析:facility指定syslog功能,主要包括以下这些:kern内核信息,首先通过klogd传递;user用户进程;mail邮件;daemon后台进程;authpriv授权信息;syslog系统日志;lpr打印信息;news新闻组信息;//将mail设备中的任何级别的信息记录到/var/log/maillog文件中,这主要是和电子邮件相关的信息。mail.-/var/log/maillog//将cron设备中的任何级别的信息记录到/var/log/cron文件中,这主要是和系统中定期执行的任务相关的信息。cron./var/log/cron//将任何设备的emerg级别的信息发送给所有正在系统上的用户。.emerg//将uucp和news设备的crit级别的信息记录到/var/log/spooler文件中。uucp,news.crit/var/log/spooler//将和系统启动相关的信息记录到/var/log/boot.log文件中。local7./var/log/boot.log“mail.”将发送所有的消息,“mail.!info”把info优先级的消息排除在外。mail.;mail.!info/var/log/mail下面的规则指定Facility为mail,Severity为err以上级别的日志写入/var/log/mail.err文件,而err以下级别的日志则被忽略:mail.err/var/log/mail.errfacility和level可以使用通配符,也可以指定多个,用逗号隔开:auth,authpriv./var/log/auth.logFacility和level的组合可以有多个,用分号隔开,文件前面加一个减号表示日志不立即写入文件,而是在缓冲中积攒到一定的条件再写,这样可以提高性能,但是当机可能会丢失数据:.;auth,authpriv.none-/var/log/syslog可以把syslog消息通过UDP发送到syslog服务器的514端口:.err@192.168.0.1发生错误时,在控制台打屏:.err/dev/consolelinux日志管理:内核信息->klogd->syslogd->/var/log/messages等文件其他信息->syslogd->/var/log/messages等文件syslog配置文件->/etc/syslog.conf3)调用syslogd守护程序syslog守护程序是由/etc/rc.d/init.d/syslog脚本在运行级2下被调用的,缺省不使用选项。但有两个选项-r和-h很有用。如果将要使用一个日志服务器,必须调用syslogd-r。缺省情况下syslog不接受来自远程系统的信息。当指定-r选项,syslogd将会监听从514端口上进来的UDP包。如果还希望日志服务器能传送日志信息,可以使用-h标志。缺省时,syslogd将忽略使其从一个远程系统传送日志信息到另一个系统的/etc/syslog.conf输入项。4)klogd守护进程klogd守护进程获得并记录Linux内核信息。通常,syslogd会记录klogd传来的所有信息,然而,如果调用带有-ffilename变量的klogd时,klogd就在filename中记录所有信息,而不是传给syslogd。当指定另外一个文件进行日志记录时,klogd就向该文件中写入所有级别或优先权。Klogd中没有和/etc/syslog.conf类似的配置文件。使用klogd而避免使用syslogd的好处在于可以查找大量错误。如果有人入侵了内核,使用klogd可以修改错误。5)配置一个中央日志服务器1.编辑/etc/sysconfig/syslog文件。在“SYSLOGD_OPTIONS”行上加“-r”选项以允许接受外来日志消息。如果因为关于其他机器的DNS记录项不够齐全或其他原因不想让中央日志服务器解析其他机器的FQDN,还可以加上“-x”选项。此外,你或许还想把默认的时间戳标记消息(--MARK--)出现频率改成比较有实际意义的数值,比如240,表示每隔240分钟(每天6次)在日志文件里增加一行时间戳消息。日志文件里的“--MARK--”消息可以让你知道中央日志服务器上的syslog守护进程没有停工偷懒。按照上面这些解释写出来的配置行应该是如下所示的样子:SYSLOGD_OPTIONS="-r-x-m240"2.重新启动syslog守护进程。修改只有在syslog守护进程重新启动后才会生效。如果你只想重新启动syslog守护进程而不是整个系统,执行以下两条命令之一:/etc/rc.d/init.d/syslogstop;/etc/rc.d/init.d/syslogstart/etc/rc.d/init.d/syslogrestart3.如果这台机器上运行着iptables防火墙或TCPWrappers,请确保它们允许514号端口上的连接通过。syslog守护进程要用到514号端口。4.为中央日志服务器配置各客户机器让客户机把日志消息发往一个中央日志服务器并不困难。编辑客户机上的/etc/syslog.conf文件,在有关配置行的操作动作部分用一个“@”字符指向中央日志服务器,如下所示:authpriv.@192.168.1.40另一种办法是在DNS里定义一个名为“loghost”的机器,然后对客户机的syslog配置文件做如下修改(这个办法的好处是:当你把中央日志服务器换成另一台机器时,不用再修改每一个客户机上的syslog配置文件)authpriv.@loghost接下来,重新启动客户机上的syslog守护进程让修改生效。让客户机在往中央日志服务器发送日志消息的同时继续在本地进行日志工作仍有必要,起码在调试客户机的时候不必到中央日志服务器查日志,在中央日志服务器出问题的时候还可以帮助调试。6)与系统日志相关的函数:openlog,syslog,closelog是一套系统日志写入接口。程序的用法示例代码如下:syslog.c[c-sharp]viewplaincopyprint?1.//syslog.c2.#include3.intmain(intargc,charargv)4.{5.openlog("MyMsgMARK",LOG_CONSLOG_PID,0);6.syslog(LOG_EMERG,7."Thisisasyslogtestmessagegeneratedbyprogram\'%s\'/n",8.argv[0]);9.closelog();10.return0;11.}12.编译运行:[root@localhostliuxltest]#gcc-osyslogsyslog.c[root@localhostliuxltest]#./syslog[root@localhostliuxltest]#Messagefromsyslogd@atTueFeb2413:24:342009...localhostMyMsgMARK[16467]:Thisisasyslogtestmessagegeneratedbyprogram\'./syslog\'同时,你也可以在/var/log/messages中看到信息如下:Feb2413:24:34localhostMyMsgMARK[16467]:Thisisasyslogtestmessagegeneratedbyprogram\'./syslog\'函数说明:openlog函数原型如下:voidopenlog(constcharident,intoption,intfacility);此函数用来打开一个到系统日志记录程序的连接,打开之后就可以用syslog或vsyslog函数向系统日志里添加信息了。参数说明:ident:是一个标记,ident所表示的字符串将固定地加在每行日志的前面以标识这个日志,通常就写成当前程序的名称以作标记。option:是下列值取与运算的结果:LOG_CONS,LOG_NDELAY,LOG_NOWAIT,LOG_ODELAY,LOG_PERROR,LOG_PID,各值意义请参考manopenlog手册:LOG_CONSWritedirectlytosystemconsoleifthereisanerrorwhilesendingtosystemlogger.LOG_NDELAYOpentheconnectionimmediately(normally,theconnectionisopenedwhenthefirstmessageislogged).LOG_PERROR(NotinSUSv3.)Printtostderraswell.LOG_PIDIncludePIDwitheachmessage.facility:指明记录日志的程序的类型。closelog函数原型如下:voidcloselog(void)此函数就是用来关闭openlog打开的连接的。syslog函数原型如下:voidsyslog(intpriority,constcharformat,...);此函数用于把日志消息发给系统程序syslogd去记录。参数说明:priority:是消息的紧急级别;format:是消息的格式,之后是格式对应的参数。就是printf函数一样使用。应用:如果我们的程序要使用系统日志功能,只需要在程序启动时使用openlog函数来连接syslogd程序,后面随时用syslog函数写日志就行了。另外,作为syslog的替代程序的新一代工具是syslog-ng,syslog-ng具有很强的网络功能,可以方便地把多台机器上的日志保存到一台中心日志服务器上。',)


  • 编号:1700774254
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:8页
  • 格式:docx
  • 风格:商务
  • PPT页数:3864733 KB
  • 标签:

广告位推荐

相关其他文档更多>