设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 373|回复: 0
打印 上一主题 下一主题

如何查看配置Ubuntu和Centos的系统日志

[复制链接]
  • TA的每日心情
    无聊
    2017-9-11 09:31
  • 签到天数: 176 天

    [LV.7]常住居民III

    跳转到指定楼层
    楼主
    发表于 2016-2-2 11:09:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    原文链接

    介绍
    Linux系统管理员经常需要查看日志文件用于故障诊断。事实上,这是任何系统管理员都将做的第一件事。在本教程中,我们将看看Linux日志记录机制。
    默认文件位置
    默认的日志文件位置:在Linux默认位置是/var/log日志文件。 您可以用一个简单的ls - l /var/log命令查看日志文件的目录列表。
    [root@TestLinux ~]/# ls -l /var/log
    查看文档内容
    下面是一些常见的日志文件,他们都在默认的log路径下面
    • wtmp

    • utmp
    • dmesg

    • messages

    • maillog or mail.log

    • spooler

    • auth.log or secure

    wtmp和utmp文件跟踪用户登录的系统。你不能直接读取这些文件的内容,必须使用特定的命令。下面我们将使用一些命令做演示。 去看谁最近登录了本机器,下面有个centos执行的例子。
    [root@TestLinux ~]/# who  
    root     tty1         2013-12-09 10:44  
    root     pts/0        2013-12-09 10:29 (10.0.2.2)  
    sysadmin pts/1        2013-12-09 10:31 (10.0.2.2)  
    joeblog  pts/2        2013-12-09 10:39 (10.0.2.2)  
    最后一个命令告诉我们登录用户的历史:
    [root@TestLinux ~]/# last | grep sysadmin
    sysadmin pts/1        10.0.2.2         Mon Dec  9 10:31   still logged in
    sysadmin pts/0        10.0.2.2         Fri Nov 29 15:42 - crash  (00:01)  
    sysadmin pts/0        10.0.2.2         Thu Nov 28 17:06 - 17:13  (00:06)  
    sysadmin pts/0        10.0.2.2         Thu Nov 28 16:17 - 17:05  (00:48)  
    sysadmin pts/0        10.0.2.2         Thu Nov 28 09:29 - crash  (06:04)  
    sysadmin pts/0        10.0.2.2         Wed Nov 27 16:37 - down   (00:29)  
    sysadmin tty1                          Wed Nov 27 14:05 - down   (00:36)  
    sysadmin tty1                          Wed Nov 27 13:49 - 14:04  (00:15)  
    在这个例子中,我试图找到登录用户sysadmin的历史,我们发现有2个实例是系统崩溃。
    如果想要找到重启的历史,可以运行以下命令。
    [root@TestLinux ~]/# last reboot   
    The result may look like this
    reboot   system boot  2.6.32-358.el6.x Mon Dec  9 10:27 - 10:47  (00:19)
    reboot   system boot  2.6.32-358.el6.x Fri Dec  6 16:37 - 10:47 (2+18:10)
    reboot   system boot  2.6.32-358.el6.x Fri Dec  6 16:28 - 16:36  (00:08)    reboot   system boot  2.6.32-358.el6.x Fri Dec  6 11:06 - 16:36  (05:29)
    reboot   system boot  2.6.32-358.el6.x Mon Dec  2 17:00 - 16:36 (3+23:36)
    reboot   system boot  2.6.32-358.el6.x Fri Nov 29 16:01 - 16:36 (7+00:34)
    reboot   system boot  2.6.32-358.el6.x Fri Nov 29 15:43 - 16:36 (7+00:53)
    ...  
    ...  
    wtmp begins Fri Nov 15 16:11:54 2013  
    去查看最后使用系统使用lastlog的历史日志
    [root@TestLinux ~]/# lastlog
    In my system, the output looked like this:
    Username        Port        From            Latest  
    root            tty1                        Mon Dec  9 10:44:30 +1100 2013
    bin                                        **Never logged in**
    daemon                                     **Never logged in**  
    adm                                        **Never logged in**  
    lp                                         **Never logged in**  
    sync                                       **Never logged in**  
    shutdown                                   **Never logged in**  
    halt                                       **Never logged in**  
    mail                                       **Never logged in**  
    uucp                                       **Never logged in**  
    operator                                   **Never logged in**  
    games                                      **Never logged in**  
    gopher                                     **Never logged in**  
    ftp                                        **Never logged in**  
    nobody                                     **Never logged in**  
    vcsa                                       **Never logged in**  
    saslauth                                   **Never logged in**  
    postfix                                    **Never logged in**  
    sshd                                       **Never logged in**  
    sysadmin         pts/1    10.0.2.2         Mon Dec  9 10:31:50 +1100 2013  
    dbus                                       **Never logged in**
    joeblog          pts/2    10.0.2.2         Mon Dec  9 10:39:24 +1100 2013
    对于其他一些日志文件,我们可以通过head和tail命令去获取想要的内容。 如下面的例子,我可以的到日志的最后10行。
    debian@debian:~$ sudo tail /var/log/messages
    输出
    Dec 16 01:21:08 debian kernel: [    9.584074] Bluetooth: BNEP (Ethernet Emulation) ver 1.3  
    Dec 16 01:21:08 debian kernel: [    9.584074] Bluetooth: BNEP filters: protocol multicast  
    Dec 16 01:21:08 debian kernel: [    9.648220] Bridge firewalling registered
    Dec 16 01:21:08 debian kernel: [    9.696728] Bluetooth: SCO (Voice Link) ver 0.6
    Dec 16 01:21:08 debian kernel: [    9.696728] Bluetooth: SCO socket layer initialized  
    Dec 16 01:21:08 debian kernel: [    9.832215] lp: driver loaded but no devices found  
    Dec 16 01:21:08 debian kernel: [    9.868897] ppdev: user-space parallel port driver  
    Dec 16 01:21:11 debian kernel: [   12.748833] [drm] Initialized drm 1.1.0 20060810
    Dec 16 01:21:11 debian kernel: [   12.754412] pci 0000:00:02.0: PCI INT A -> Link[LNKB] -> GSI 11 (level, low) -> IRQ 11  
    Dec 16 01:21:11 debian kernel: [   12.754412] [drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.
    Syslog守护进程
    日志的核心机制是rsyslog守护进程,这个服务负责各个部分的的日志信息的收集和传递。它还可以日志消息转发到另一个Linux服务器。
    rsyslog配置文件
    此守护进程会从rsyslog.conf文件获取配置信息,这个文件一般默认在/etc下面。这个配置文件会告诉rsylog守护进程哪里去存储日志。这里是一个CentOS rsyslog摘录。配置文件:
    /# rsyslog v5 configuration file
    ...  
    ...   
    /# Include all config files in /etc/rsyslog.d/  
    IncludeConfig /etc/rsyslog.d/*.conf  
    /#/#/#/# RULES /#/#/#/#  
    /# Log all kernel messages to the console.  
    /# Logging much else clutters up the screen.  
    /#kern.*  /dev/console  
    /# Log anything (except mail) of level info or higher.  
    /# Don't log private authentication messages!  
    *.info;mail.none;authpriv.none;cron.none                /var/log/messages  
    /# The authpriv file has restricted access.  
    authpriv.*                                              /var/log/secure  
    /# Log all the mail messages in one place.  
    mail.*                                                  -/var/log/maillog  
    /# Log cron stuff  
    cron.*                                                  /var/log/cron  
    /# Everybody gets emergency messages  
    *.emerg                                                 *  
    /# Save news errors of level crit and higher in a special file.  
    uucp,news.crit                                          /var/log/spooler  
    /# Save boot messages also to boot.log  
    local7.*                                                /var/log/boot.log  
    ...  
    ...
    要理解其中的含义,让我们来了解下不同设备的类型,下面是一个列表。
    auth or authpriv: 消息来自授权和安全相关的事件
    kern:来自内核的消息。 mail:来自邮件系统的消息
    cron:cron守护进程相关信息
    daemon:消息来自守护进程
    news:消息来自网络新闻子系统
    lpr:打印相关的日志消息
    user:日志消息来自用户程序
    local0 local7:留给当地使用
    这里是升序的优先级列表:
    • debug: 来源于项目的调试信息。 •
    • info: 简单的信息消息——不需要干预 •
    • notice: 可能需要关注的条件 •
    • warn:警告 •
    • err: 错误 •
    • crit: 临界条件 •
    • alert: 条件是需要立即干预 •
    • emerg: 紧急情况 •
    现在让我们考虑下面的从文件中取出的行。
    cron.* /var/log/cron
    这只是告诉rsyslog守护进程保存来自cron守护进程所有信息于一个名为/var/log/cron.的中,asterix后(*)点(.)意味着消息的优先级将被记录。同样,如果设施被指定为包含星号,它意味着所有的来源。
    在其默认形式,当只有一个优先级指定点后,这意味着所有事件等于或大于优先级将被困。所以下面的指令引起的任何消息来自邮件子系统警告或更高的优先级被记录在一个特定的文件/var/log下:
    mail.warn           /var/log/mail.warn  
    使用一个等号(=)点在(.)后会导致唯一指定的优先级被记录
    mail.=info          /var/log/mail.info
    同样,如果我们想从陷阱邮件子系统除了信息消息,该规范将像下面这样
    mail.!info          /var/log/mail.info  
    当一个动作被标记为包含星号(*),这意味着所有用户。在我的CentOS rsyslog这个条目。conf文件是准确地说像下面一样。
    /# Everybody gets emergency messages   
    *.emerg
    :
    尝试去看看自己的配置文件表达的意思,下面是我的debian配置文件:

    …………………………


    原文链接:https://www.pppcloud.cn/community_courseInfo.html?id=600023
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|手机版|中国U网    

    GMT+8, 2024-7-1 09:24 , Processed in 0.093905 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表