Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19912144
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2008-08-07 15:42:24

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当然啦,要对方主机也能支持才行!

*:代表『目前在在线的所有人』,类似 这个指令的意义!

 

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分析工具。鸟哥的分析脚本在:

 

阅读(5689) | 评论(0) | 转发(0) |
0

上一篇:Linux 内存相关使用

下一篇:SED 入门

给主人留下些什么吧!~~