免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1146 | 回复: 0
打印 上一主题 下一主题

Linux 日志 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-07 15:42 |只看该作者 |倒序浏览

Linux 日志
磁针石
联系方式: gmail
and gtalk: xurongzhong#gmail.com

参考资料
*《鸟哥的 Linux 私房菜》之 “
分析登錄檔


*主要日志文件:

/var/log/secure:
记录登入系统存取数据的档案,例如 pop3, ssh, telnet, ftp 等都会记录在此档案中;
/var/log/wtmp:
记录登入者的讯息数据,由于本档案已经被编码过,所以必须使用 last 这个指令来取出档案的内容;
/var/log/messages:
这个档案相当的重要,几乎系统发生的错误讯息(或者是重要的信息)都会记录在这个档案中;
/var/log/boot.log:
记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息;

/var/log/maillog 或 /var/log/mail/*:
纪录邮件存取或往来(
sendmail 与 pop3 )的使用者记录;

/var/log/cron:
这个是用来记录 crontab
这个例行性服务的内容的!

/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba,
/var/log/procmail.log:
分别是几个不同的网络服务的记录文件啦!


*     针对 log 档案来设计的服务

syslogd:
进行系统或者是网络服务的登录文件记录工作;

logrotate:
将旧的数据更名,并且建立新的登录档, 以保持登录档的『新鲜』,并视设定将最旧的登录档删除。

*服务名称:
什么服务产生的讯息要被纪录的意思。syslog 认识的服务主要有底下这些:
       auth,
authpriv:主要与认证有关的机制,例如
telnet, login, ssh 等需要认证的服务都是使用此一机制;
       cron:就是例行性命令 cron/at 等产生讯息记录的地方;
       daemon:与各个 daemon 有关的讯息;
       kern:就是核心 (kernel) 产生讯息的地方;
       lpr:亦即是打印相关的讯息啊!
       mail:只要与邮件收发有关的讯息纪录都属于这个;
       news:与新闻群组服务器有关的东西;
       syslog:就是 syslogd 这支程序本身产生的信息啊!
       user,
uucp, local0 ~ local7:与 Unix like 机器本身有关的一些讯息。

*讯息等级
info:仅是一些基本的讯息说明而已;
notice:比 info 还需要被注意到的一些信息内容;
warning 或 warn:警示的讯息,可能有问题, 但是还不至于影响到某个 daemon 运作的信息;基本上, info, notice, warn 这三个讯息都是在告知一些基本信息而已,应该还不至于造成一些系统运作困扰;
err 或 error :一些重大的错误讯息, 例如设定文件的某些设定值造成该服务服法启动的信息说明,
通常藉由 err 的错误告知,应该可以了解到该服务无法启动的问题呢!
crit:比 error 还要严重的错误信息,这个 crit 是临界点 (critical) 的缩写,这个错误已经很严重了喔!
alert:警告警告,已经很有问题的等级,比 crit 还要严重!
emerg 或 panic:疼痛等级,意指系统已经几乎要当机的状态! 很严重的错误信息了。
通常大概只有硬件出问题,导致整个核心无法顺利运作,就会出现这样的等级的讯息吧!

       除了这些有等级的讯息外,还有两个特殊的等级,那就是 debug(错误侦测等级) 与 none (不需登录等级) 两个,当我们想要作一些错误侦测,或者是忽略掉某些服务的信息时,就用这两个吧!


       .
:代表『比后面还要高的等级(含该等级)都被记录下来』的意思,
例如: mail.info 代表只要是 mail 的信息,而且该信息等级高于 info (含 info 本身)时,就会被记录下来的意思。
       .=:代表所需要的等级就是后面接的等级而已,其它的不要!
       .!:代表不等于,亦即是除了该等级外的其它等级都记录。

  讯息记录的文件名或装置或主机
档案的绝对路径:通常就是放在 /var/log 里头的档案啦!
打印机或其它:例如 /dev/lp0 这个打印机装置
使用者名称:显示给使用者啰!
远程主机:例如 @test.adsldns.org当然啦,要对方主机也能支持才行!
*:代表『目前在在线的所有人』,类似
wall
这个指令的意义!

messages 这个档案需要记录所有的信息,但是就是不想要记录 cron, mail 及 news 的信息,有一下2种写法
*.*;news,cron,mail.none      /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages

*     让log显示在其他机器

接收端确认有如下配置:在/etc/services中有syslog          514/udp,在/etc/sysconfig/syslog  中有打开-r参数。-r 即允许接收其他机器的log。
发送端:*.*       @192.168.1.100
*      Log 轮转
配置文件位于/etc/logrotate.conf。

比如:
  vi
/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

# 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 -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

#
system-specific logs may be also be configured here.

又如:

/etc/logrotate.d/syslog

/var/log/messages /var/log/secure
/var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
   
sharedscripts
   
postrotate
      
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2>
/dev/null || true
   
endscript
}

又如在cron里面添加:
30 3 * * * /usr/sbin/logrotate -s
/usr/local/etc/logrotate.status /usr/local/etc/logrotate.conf


cat /usr/local/etc/logrotate.status  
logrotate state -- version 2
"/usr/local/apache2/logs/access_log"
2008-7-2
"/usr/local/apache2/logs/error_log"
2008-6-27
"/usr/local/squid/var/logs/access.log"
2008-6-27
"/usr/local/squid/var/logs/cache.log"
2008-6-27
"/usr/local/squid/var/logs/store.log"
2008-6-27
"/var/log/epg-php.log" 2008-6-29
"/var/lib/mysql/slow_query.log" 2008-6-27
"/var/lib/mysql/query.log"
2008-6-27


cat /usr/local/etc/logrotate.conf
/usr/local/apache2/logs/access_log {
      
daily
      
rotate 10
      
copytruncate
      
compress
      
compressoptions -1
      
notifempty
      
missingok
      
lastaction
        /usr/local/etc/rename_log.sh
      
endscript
}

/usr/local/apache2/logs/error_log {
      
weekly
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
notifempty
      
missingok
}

/usr/local/squid/var/logs/access.log {
      
daily
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
notifempty
      
missingok
}

/usr/local/squid/var/logs/cache.log {
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
notifempty
      
missingok
}

/usr/local/squid/var/logs/store.log {
      
weekly
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
notifempty
      
missingok
      
postrotate
      
/usr/local/squid/sbin/squid -k rotate
     
  endscript
}

/var/log/epg-php.log {
      
weekly
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
notifempty
      
missingok
}

/var/lib/mysql/slow_query.log {
      
size 50M
      
rotate 10
      
copytruncate
        compress
      
notifempty
      
missingok
}

/var/lib/mysql/query.log {
      
daily
      
size 50M
      
rotate 10
      
copytruncate
      
compress
      
compressoptions -1
      
notifempty
        missingok
}
      
  Redhat中有logwatch分析工具。鸟哥的分析脚本在:
http://linux.vbird.org/download/index.php?action=detail&fileid=69


               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21908/showart_1114326.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP