日志分类
Linux的日志文件一般位于 /var/log 文件夹,一般有以下几个:
cron: crontab例行事务的日志
dmesg: 内核启动时的检测信息,输出同 dmesg 命令
lastlog: 所有帐号最后一次登录的相关信息,输出同 lastlog 命令
maillog: 邮件来往信息
messages : 系统错误信息
secure : 涉及到“输入口令”的操作,都会记录于此
wtmp与faillog: 登录成功的用户信息(wtmp)和登录失败的用户信息(faillog)
httpd, samba等 : 不同的网络服务用自己的定制的日志文件
日志管理服务
日志一般由进程syslogd管理
syslogd提供以下日志服务
服务类别 | 说明 |
auth (authpriv) | 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/口令的咚咚; |
cron | 就是例行性工作排程 cron/at 等产生信息记录的地方; |
daemon | 与各个 daemon 有关的信息; |
kern | 就是核心 (kernel) 产生信息的地方; |
lpr | 亦即是列印相关的信息啊! |
只要与邮件收发有关的信息纪录都属於这个; | |
news | 与新闻群组服务器有关的东西; |
syslog | 就是 syslogd 这支程序本身产生的资讯啊! |
user, uucp, local0 ~ local7 | 与 Unix like 机器本身有关的一些信息。 |
/etc/syslog.conf 是 syslogd的配置文件,它的语法如下
服务 连接符 错误等级 日志文件路径
news.notice /var/log/news/news.notice
以上为例,news是他的服务名称, "." 这个符号是连接符, notice是错误等级, 后面的路径是日志文件路径
其中,连接符有以下几种
- . :代表『比后面还要高的等级 (含该等级) 都被记录下来』的意思,例如: mail.info 代表只要是 mail 的资讯,而且该资讯等级高於 info (含 info 本身)时,就会被记录下来的意思。
- .=:代表所需要的等级就是后面接的等级而已, 其他的不要!
- .!:代表不等於, 亦即是除了该等级外的其他等级都记录。
错误等级有以下几种
等级 | 等级名称 | 说明 |
1 | info | 仅是一些基本的信息说明而已; |
2 | notice | 比 info 还需要被注意到的一些资讯内容; |
3 | warning (warn) |
警示的信息,可能有问题,但是还不至於影响到某个 daemon 运行的资讯;基本上, info, notice, warn 这三个信息都是在告知一些基本资讯而已,应该还不至於造成一些系统运行困扰; |
4 | err (error) |
一些重大的错误信息,例如配置档的某些配置值造成该服务服法启动的资讯说明, 通常藉由 err 的错误告知,应该可以了解到该服务无法启动的问题呢! |
5 | crit | 比 error 还要严重的错误资讯,这个 crit 是临界点 (critical) 的缩写,这个错误已经很严重了喔! |
6 | alert | 警告警告,已经很有问题的等级,比 crit 还要严重! |
7 | emerg (panic) |
疼痛等级,意指系统已经几乎要死机的状态! 很严重的错误资讯了。通常大概只有硬件出问题,导致整个核心无法顺利运行,就会出现这样的等级的信息吧! |
另外,有的日志文件路径前会有一个 “-” 号,例如
mail.* -/var/log/maillo
他的作用表示先将日志内容写入缓存,最后再一起写入日志文件
日志服务器配置
工作服务器配置
# 1. Server 端:修改 syslogd 的启动配置档,通常在 /etc/sysconfig 内! [root@www ~]# vim /etc/sysconfig/syslog # 找到底下这一行: SYSLOGD_OPTIONS="-m 0" # 改成底下这样子! SYSLOGD_OPTIONS="-m 0 -r" # 2. 重新启动与观察 syslogd 喔! [root@www ~]# /etc/init.d/syslog restart [root@www ~]# netstat -lunp | grep syslog Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 13981/syslogd
日志服务器配置
[root@www ~]# vim /etc/syslog.conf *.* @192.168.1.100
最后重启syslogd即可