日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个trouble?日志记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。
经常查看的日志文件为/var/log/message, 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为root以及用户自定义安装的软件(apache)的日志也会在这里列出。通常,/var/log/messages是在做故障诊断时首先要查看的文件。那你肯定会说了,这么多日志都记录到这个文件中,那如果服务器上有很多服务岂不是这个文件很快就会写的很大,没错,但是系统有一个日志轮询的机制,每星期切换一个日志,变成message.xxxxxxxx, message.xxxxxxxx, … messages.xxxxxxxx 连同messages一共有5个这样的日志文件。这里的xxxxxxxx就是按照日期的格式生成的文件,在CentOS5里,这个后缀并不是日期而是数字1,2,3,4. 这是通过logrotate工具的控制来实现的,它的配置文件是/etc/logrotate.conf如果没有特殊需求请不要修改这个配置文件。
[root@localhost ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
/var/log/messages是由syslogd这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages,所以这个服务不要停。Syslogd服务的配置文件为/etc/syslog.conf这个文件定义了日志的级别,具体详细的东西不再阐述,因为若没有特殊需求是不需要修改这个配置文件的,请使用 man syslog.conf
获得更多关于它的信息。
除了关注/var/log/messages外,你还应该多关注一下 dmesg
这个命令,它可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的。
[root@localhost ~]# dmesg |less
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-220.el6.x86_64 (mockbuild@c6b18n3.bsys.dev.centos.org)
(gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Dec 6
19:48:22 GMT 2011
Command line: ro root=UUID=7912412b-3e66-401d-9ef5-3c2aba8dc737 rd_NO_LUKS
KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD quiet rhgb crashkernel=auto
LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
Centaur CentaurHauls
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009a400 (usable)
BIOS-e820: 000000000009a400 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000d2000 - 00000000000d4000 (reserved)
BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cff60000 (usable)
BIOS-e820: 00000000cff60000 - 00000000cff69000 (ACPI data)
关于安全方面的日志,简单介绍几个命令或者日志。
命令 : last
[root@localhost ~]# last |head
root pts/0 192.168.0.207 Wed Jun 12 20:28 still logged in
root pts/1 192.168.0.207 Wed Jun 12 20:27 still logged in
root pts/0 192.168.0.161 Wed Jun 12 14:36 - 20:27 (05:50)
root pts/0 192.168.0.161 Wed Jun 12 14:36 - 14:36 (00:00)
root pts/0 192.168.0.207 Wed Jun 12 11:42 - 14:36 (02:54)
root pts/0 192.168.0.207 Mon Jun 10 12:23 - 14:23 (02:00)
root pts/0 192.168.0.70 Sat Jun 8 16:43 - 17:53 (01:09)
root pts/0 192.168.0.70 Fri Jun 7 16:43 - 17:27 (00:44)
root pts/0 192.168.0.70 Fri Jun 7 09:57 - 16:09 (06:11)
root pts/0 192.168.0.70 Thu Jun 6 13:40 - 17:50 (04:09)
last命令用来查看登录Linux历史信息,从左至右依次为账户名称、登录终端、登录客户端ip、登录日期及时长。last命令输出的信息实际上是读取了二进制日志文件/var/log/wtmp, 只是这个文件不能直接使用cat, vim, head, tail等工具查看。
另外一个和登陆信息有关的日志文件为/var/log/secure, 该日志文件记录验证和授权等方面的信息,比如ssh登陆系统成功或者失败,都会把相关信息记录在这个日志里。
这一小节就介绍这么多,在结束之前,给你一个小小的建议。以后在你日常的管理工总中要养成多看日志的习惯,尤其是一些应用软件的日志,比如apache, mysql, php等常用的软件,看它们的日志(错误日志)可以帮助你排查问题以及监控它们的运行状况是否良好。
暂无评论内容