syslog服务说明
Syslog 是 Linux 环境中记录系统和程序消息的通用标准。
该服务构成了系统日志守护进程,其中任何程序都可以通过 Linux 内核消息进行日志记录(调试、安全、正常操作)。
原则上,syslog处理的日志在Linux系统的/var/log/目录下:
# ls /var/log boot.log cloud-init-output.log firewalld maillog rhsm tallylog anaconda btmp cron gdm maillog-20151219 samba tuned audit btmp-20151219 cron-20151219 grubby messages secure wpa_supplicant.log auth.log choose_repo.log dmesg grubby_prune_debug messages-20151219 secure-20151219 wtmp yum.log chrony dmesg.old lastlog pm-powersave.log spooler xrdp.log
其中一些日志被转储到像cups、samba、httpd这样的子目录下。
在 /var/log 下的日志中,/var/log/messages 是最常见的,因为内核/核心系统日志保存在那里。
内核模块通常也会在那里转储。
因此,对于问题诊断/监控,/var/log/messages 是要检查的主要日志文件。
日志每周轮换一次(将现有日志重命名为 filename.number 顺序):
# ls -l /var/log/messages* -rw------- 1 root root 1973 Jun 10 15:07 /var/log/messages -rw------- 1 root root 10866 Jun 6 04:02 /var/log/messages.1 -rw------- 1 root root 19931 Jan 30 04:02 /var/log/messages.2 -rw------- 1 root root 238772 Jan 23 04:02 /var/log/messages.3 -rw------- 1 root root 171450 Jan 14 18:29 /var/log/messages.4
每周轮换的日志文件在 4 周后被删除(总日志跨度为 5 周)。
这种轮换机制由 crond 和 logrotate 提供。
rsyslog 包还提供了 rsyslogd,它是 syslogd 的更可靠和扩展版本。
有关更多信息,请安装 rsyslog 包并查看 rsyslogd 的手册页。
服务控制
要启动 syslog 服务,请使用以下任一命令:
# service syslog start # /etc/init.d/syslog start
要停止 syslog 服务,请使用以下任一命令:
# service syslog stop # /etc/init.d/syslog stop
要查看运行级别和服务可用性,请运行:
# chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果该服务被禁用,我们可以通过以下方式启用该服务:
# chkconfig --list syslog syslog 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig syslog on # chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
配置syslog
syslogd 服务的配置文件是 /etc/sysconfig/syslog 。
默认文件如下:
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r # See syslogd(8) for more details SYSLOGD_OPTIONS="-m 0" # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-x" # SYSLOG_UMASK=077 # set this to a umask value to use for all log files as in umask(1). # By default, all permissions are removed for "group" and "other".
在那里你会看到两组不同的选项:
klogd 内核日志守护进程:这是从 Linux 内核捕获消息并将它们记录到文件中的守护进程。
syslogd 系统日志守护进程:其他消息拦截和日志记录。
默认配置文件列出了一些我们可以进一步描述的选项:
系统日志选项:
- -m interval :每间隔分钟放置一行带有“MARK”的行。 "-m 0" 完全禁用 "MARK"'ing
- -r :用于使该工具能够使用带有 syslog 服务的 Internet 域套接字从网络接收消息。
- -x :当日志从网络到达时(通过 -r 选项),源地址将在创建的日志中提供。这些地址将在 DNS 中查找。如果发生过于频繁的远程日志记录(通常是远程站点出现问题时的情况),则最好不要花时间进行 DNS 查找。此选项可用于禁用 DNS 查找。
- -S : 详细日志记录
- -d : syslogd 的调试模式
klogd 选项:
- -2 : 用原始文本打印一次行,再用转换为符号的地址打印一次。这将需要 ksymoops 对原始数据进行处理。
- -x :不做 EIP 转换(用于 OOPS)不读取 System.map 文件(提高转储速度)
- -d : klogd 的调试模式
- -c n :控制台消息的默认日志级别
umask : SYSLOG_UMASK 控制生成的日志文件的默认访问权限/权限。