- 浏览: 314172 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
JQ_AK47:
...
Linux下直接发送以太包 -
winsen2009:
谢谢分享,如果能再来一个列子就更好了,刚接触看完还是不懂的用
UNPv1_r3读书笔记: SCTP编程
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn
参考文献:man syslog syslogd syslog.conf openlog, RFC3164
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn
参考文献:man syslog syslogd syslog.conf openlog, RFC3164
1. 前言 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值 第三个参数是说明日志类型的,定义了以下类型(各类型啥意思就自己看或猜吧,俺就不多说了): LOG_AUTH LOG_AUTHPRIV LOG_CRON LOG_DAEMON LOG_KERN LOG_LOCAL0 through LOG_LOCAL7 LOG_LPR LOG_MAIL LOG_NEWS LOG_SYSLOG LOG_USER(default) LOG_UUCP syslog(3)函数主要的是第一个参数priority,后面那些参数就是和printf(3)函数用法一样了,priority值表示该条日志的级别,日志级别分8级,由高到低的顺序为: LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG 如果openlog(3)时没有指定facility,是可以把facility的值或到priority中的,如(LOG_AUTH | LOG_INFO),已经设置了就可以不用或了。 closelog(3)这个没啥好说的了,关闭日志记录。 4. syslog服务器配置 syslog服务器的配置文件为/etc/syslog.conf,syslog(3)函数把想记录的日志信息都发送给日志服务器,但此日志最终是否记录到文件或发送给远程服务器,则是由此配置文件来决定的,该配置文件就是告诉日志服务器要记录那些类型和级别的日志,如何记录等信息。 配置文件是文本文件,每行配置分两个字段,第一字段是说明要记录哪类日志,第二字段是说明日志存放位置,可以是本地文件,也可以是远程服务器。 第一字段: 第一字段基本格式是“facility.priority”,可以同时定义多个,中间用逗号“,”或分号“;”分隔。 facility名称就是上面说的facility值的后半部的小写,如news, mail,kern, cron等,也可以用“*”表示所有facility类型; priority名称就是上面说的priority值的后半部的小写,如emerg, alert,err, info等,也可以用“*”表示所有priority类型,比此级别高的日志都会自动记录,用none表示不记录; 举例: kern.* : 所有级别的内核类型日志 mail.err: 错误及错误级别以上的mail类型日志 如果不记录某级别的日志,在级别前加“!”,如: auth.info;auth.!err :info及info级别以上但不包括err级别的auth类型日志 第二字段: 第二字段分两类,本地文件和远程服务器 本地文件:直接就是写本地文件的文件名,如 /var/log/messages。一般来说日志信息会立即写到文件中,但会降低系统效率,可以在文件名前加减号“-”表示先将信息缓存,到一定量后再一次性写入文件,这样可以提高效率; 远程服务器:格式是“@address”,“@”表示进行远程记录,将日志发送到远程的日志服务器,日志服务器的端口是UDP514,address可以是IP地址,也可以是域名 举例: # 将所有级别的内核日志发送到终端 kern.* /dev/console # 将所有类型所有级别的日志记录到/var/log/messages文件 *.* /var/log/messages # 所有info级别以上的信息,不包括mail类型所有级别和authpriv类型的err级别信息, # 记录到/var/log/messages文件,不立即写入 *.info;mail.none;authpriv.!err -/var/log/messages #将所有级别的内核日志发送到远程syslog服务器 kern.* @1.1.1.1 5. syslog服务器 在linux下提供了sysklogd的syslog服务器的实现,可以记录本机日志也可以接收(syslogd的-r选项)和转发(syslogd的-h选项)来自外部的日志。 sysklogd包括两个程序,klogd和syslogd,klogd用于接收内核日志,再发送到syslogd,syslogd则可以直接接收应用程序和远程的日志,syslogd是通过一个域socket(AF_UNIX)来接收数据的,syslog()函数记录的日志都发送到此域 socket,socket文件是/dev/log。 syslog(3)函数发送给syslogd服务器的日志信息前都加上了类型和级别信息,具体格式是“<x>”,“x”是一个 0~255的数,8位,低3位表示日志级别,所以共8级,高五位表示日志类型,最多32种,不过目前没用到那么多,可以看看/usr/include /sys/syslog.h中的定义就知道了。 要生成日志信息时,syslogd是先生成日志前部信息:月 日 时:分:秒 主机名 标志,再和日志内容信息拼接起来的,日期用ctime(3)函数获取,隐去了前4个表示星期的字节和后面年的信息,最终生成你所看到的日期格式,老实说那段代码及其丑陋。 6. 结论 syslog方便了程序信息的记录,由于使用了统一的格式记录使得审计也可以比较方便。要记录日志,除了在应用程序中用syslog(3)函数记录外,还要正确配置/etc/syslog.conf文件,使服务器能正确记录那些想记录的日志。
发表评论
-
Linux内核中流量控制(24)
2011-01-10 16:33 2203本文档的Copyleft归yfydz所 ... -
Linux内核中流量控制(23)
2011-01-10 16:30 1484本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(22)
2011-01-10 16:29 1929本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(21)
2011-01-10 16:28 1345本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(20)
2011-01-10 16:27 1515本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(19)
2011-01-10 16:27 1970本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(18)
2011-01-10 16:26 1564Linux内核中流量控制(18) ... -
Linux内核中流量控制(17)
2011-01-10 16:25 1940本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(16)
2011-01-10 16:25 1795本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(15)
2011-01-10 16:24 1880本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(14)
2011-01-10 16:23 1952本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(13)
2011-01-10 16:22 2627本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(12)
2011-01-10 16:21 2100本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(11)
2011-01-10 16:21 3227本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(10)
2011-01-10 16:20 2000本文档的Copyleft归yfydz所 ... -
Linux内核中流量控制(9)
2011-01-10 16:19 1826本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(8)
2011-01-10 16:18 1493本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(7)
2011-01-10 16:18 2918本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(6)
2011-01-10 16:17 1488本文档的Copyleft归yfydz所有,使用GPL发布,可以 ... -
Linux内核中流量控制(5)
2011-01-10 16:16 1723本文档的Copyleft归yfydz所有,使用GPL发布,可以 ...
相关推荐
ConOS7 系统配置syslog日志转发的详细配置、验证过程。
redhat syslog 配置 笔记 介绍syslog.conf的配置文件格式和配置实例
H3C_SYSLOG 华三系统日志使用讲解。
网上所有资料都没有详细的配置SNMP V3 和 syslog 的实例
syslog日志服务器配置在以下系统上实验成功: Linux 系统 (Redhat5.X、Cent OS 6、Fedora 6) Unix 系统 (SUN Solaris 10、AIX 6.1、HP-UNIX) Windows 系统 (Window XP/server) 网络设备 (Cisco...
syslog-ng配置说明,说明syslog-ng配置文件的使用及其含义
各设备syslog配置手册.docx
checkpoint的snmp及syslog配置
CISCO配置syslog的方法.doc
关于syslog的使用和配置和编译,在本地怎么配置syslog和调用syslog,或者在开发板客户端怎么配置syslog及怎么使用
log4j集成syslog配置说明
syslog在UNIX和Windows服务器端及客户端配置,及其是有方法。
这是我摸索1个月的成果,希望能帮大家,原创分享无价
syslog配置方法[整理].pdf
Linux的syslog服务器的基本配置[文].pdf
syslog日志服务器配置步骤文件.pdf
syslog体系结构,syslog模糊了发送方、接收方,设备、中继以及收集器的区别,一台设备可以同时是某种日志信息的中继、也可以是另外某种信息的收集器,同时可以作为发送者发送日志
cacti中syslog插件,是通过rsyslog或syslog-ng与mysql的交互,将...其次,配置cacti的syslog插件,通过该插件检索与查询mysql中的日志。可以收集来自linux、windows等服务器和交换机路由器的日志。做到集中和分类查看。
SANGFOR_NGAF_v6.9r1_SYSLOG服务器配置文档.pdf