syslog日志记录



syslog两个规范:

RFC3164(被RFC5424替代了):UDP
RFC3195                 :TCP

syslog两个重要的文件:

/etc/syslogd(守护进程)
/etc/syslog.conf配置文件,有些系统没有该文件

syslog三个重要函数

void openlog(const char *ident, int option, int facility);

void syslog(int priority, const char *format, ...);

void closelog(void);

openlog option取值说明

option参 数 说 明
LOG_CONS 如果将信息发送给syslogd守护进程时发生错误,直接将相关信息输出到终端
LOG_NDELAY 立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接)
LOG_NOWAIT 在记录日志信息时,不等待可能的子进程的创建
LOG_ODELAY 类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建
LOG_PERROR 在将信息写入日志的同时,将信息发送到标准错误输出(POSIX.1-2001不支持该参数)
LOG_PID 每条日志信息中都包括进程号

openlog facility取值说明

facility参数 syslog.conf中对应的facility取值
LOG_KERN kern
LOG_USER user
LOG_MAIL mail
LOG_DAEMON daemon
LOG_AUTH auth
LOG_SYSLOG syslog
LOG_LPR lpr
LOG_NEWS news
LOG_UUCP uucp
LOG_CRON cron
LOG_AUTHPRIV authpriv
LOG_FTP ftp
LOG_LOCAL0~LOG_LOCAL7 local0~local7
syslog priority取值说明
priority参数 syslog.conf中对应的level取值
LOG_EMERG emerg
LOG_ALERT alert
LOG_CRIT crit
LOG_ERR err
LOG_WARNING warning
LOG_NOTICE notice
LOG_INFO info
LOG_DEBUG debug



syslogd的几个命令
	Usage: syslogd [OPTIONS]

	System logging utility

			-n              Run in foreground
			-R HOST[:PORT]  Log to HOST:PORT (default PORT:514)
			-L              Log locally and via network (default is network only if -R)
			-C[size_kb]     Log to shared mem buffer (use logread to read it)
			-K              Log to kernel printk buffer (use dmesg to read it)
			-O FILE         Log to FILE (default:/var/log/messages, stdout if -)
			-s SIZE         Max size (KB) before rotation (default:200KB, 0=off)
			-b N            N rotated logs to keep (default:1, max=99, 0=purge)
			-l N            Log only messages more urgent than prio N (1-8)
			-S              Smaller output
			-D              Drop duplicates
			-f FILE         Use FILE as config (default:/etc/syslog.conf)

a.启动syslog日志守护进程的命令

#/sbin/syslogd 

b.传log日志to server

#/sbin/syslogd -R HOST:PORT

c.关闭所有日志文件,重读/etc/syslog.conf配置文件后重新开始记录日志

#killall  -HUP  syslogd 

d.syslog启动脚本例子
	#/etc/init.d/rcS
	/bin/mkdir /home/log
	killall syslogd
	#上传给syslogserver,只上传给server,本地不存储
	/sbin/syslogd -O /home/log/xxxxx.log -s 2560 -R 192.168.65.100:514
	#/sbin/syslogd -O /home/log/xxxxx.log -s 2560 -L -R 192.168.65.100:514 #server+本地
	cp /var/log/messages /home/log/messages

工具使用

a.syslogwather:
参考文章:http://blog.csdn.net/lsh6688/article/details/38324447
官网下载: https://syslogwatcher.com/syslog-watcher/
和谐下载:

b.另一个工具      :Kiwi SyslogServer


c.nxlog http://nxlog.org/products/nxlog-community-edition/download



参考

http://book.51cto.com/art/201406/442921.htm
http://blog.chinaunix.net/uid-26583794-id-3166083.html

syslogd以及syslog.conf文件解读说明:http://www.cnblogs.com/doctorqbw/archive/2012/07/31/2616322.html

关于syslog报文的RFC规范:http://blog.csdn.net/fishmai/article/details/51838681

http://nxlog.org/products/nxlog-community-edition/download

你可能感兴趣的:(LINUX)