zoukankan      html  css  js  c++  java
  • Linux 系统日志管理

    Linux rsyslogd服务及启动方法

    在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd。Red Hat 公司认为 syslogd 已经不能满足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特点:

    • 基于TCP网络协议传输日志信息。
    • 更安全的网络传输方式。
    • 有日志信息的即时分析框架。
    • 后台数据库。
    • 在配置文件中可以写简单的逻辑判断。
    • 与syslog配置文件相兼容。

    rsyslogd 日志服务更加先进,功能更多。但是,不论是该服务的使用,还是日志文件的格式,其实都是和 syslogd 服务相兼容的,所以学习起来基本和 syslogd 服务一致。

    查询 Linux 中的 rsyslogd 服务是否启动 

    [root@localhost ~]# ps aux | grep "rsyslog" | grep -v "grep"
    root        917  0.0  0.1 219752  3684 ?        Ssl  10:23   0:00 /usr/sbin/rsyslogd -n

    查询 rsyslogd 服务的自启动状态  

    [root@localhost ~]# systemctl list-unit-files | grep rsyslog
    rsyslog.service                             enabled 

    系统中的绝大多数日志文件是由 rsyslogd 服务来统一管理的,只要各个进程将信息给予这个服务,它就会自动地把日志按照特定的格式记录到不同的日志文件中。也就是说,采用 rsyslogd 服务管理的日志文件,它们的格式应该是统一的。

    在 Linux 系统中有一部分日志不是由 rsyslogd 服务来管理的,比如 apache 服务,它的日志是由 Apache 软件自己产生并记录的,并没有调用 rsyslogd 服务。但是为了便于读取,apache 日志文件的格式和系统默认日志的格式是一致的。

    Linux日志文件(常见)及其功能

    日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。这些信息有些非常敏感,所以在 Linux 中这些日志文件只有 root 用户可以读取。

    那么,系统日志文件保存在什么地方呢?还记得 /var/ 目录吗?它是用来保存系统动态数据的目录,那么 /var/log/ 目录就是系统日志文件的保存位置。我们通过表 1 来说明一下系统中的重要日志文件。

           日志文件        说 明
    /var/log/cron 记录与系统定时任务相关的曰志
    /var/log/cups/ 记录打印信息的曰志
    /var/log/dmesg 记录了系统在开机时内核自检的信总。也可以使用dmesg命令直接查看内核自检信息
    /var/log/btmp 记录错误登陆的日志。这个文件是二进制文件,不能直接用Vi查看,而要使用lastb命令查看。命令如下:
    [root@localhost log]#lastb
    root tty1 Tue Jun 4 22:38 - 22:38 (00:00)
    #有人在6月4 日 22:38便用root用户在本地终端 1 登陆错误
    /var/log/lasllog 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
    /var/Iog/mailog 记录邮件信息的曰志
    /var/log/message   记录系统里要佶息的日志.这个日志文件中会记录Linux系统的绝大多数重要信息。如果系统出现问题,首先要检查的应该就是这个日志文件
     /var/log/secure 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
    /var/log/wtmp 永久记录所有用户的登陆、注销信息,同时记录系统的后动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
    /var/tun/ulmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

    除系统默认的日志之外,采用 RPM 包方式安装的系统服务也会默认把日志记录在 /var/log/ 目录中(源码包安装的服务日志存放在源码包指定的目录中)。不过这些日志不是由 rsyslogd 服务来记录和管理的,而是各个服务使用自己的日志管理文档来记录自身的日志。以下介绍的日志目录在你的 Linux 上不一定存在,只有安装了相应的服务,日志才会出现。服务日志如表 2 所示。

     
    日志文件说明
    /var/log/httpd/ RPM包安装的apache取务的默认日志目录
    /var/log/mail/ RPM包安装的邮件服务的额外日志因录
    /var/log/samba/ RPM色安装的Samba服务的日志目录
    /var/log/sssd/ 守护进程安全服务目录

     Linux日志文件格式分析

    只要是由日志服务 rsyslogd 记录的日志文件,它们的格式就都是一样的。

    日志文件的格式包含以下 4 列:

    • 事件产生的时间。
    • 产生事件的服务器的主机名。
    • 产生事件的服务名或程序名。
    • 事件的具体信息。

    我们查看一下 /var/log/secure 日志,这个日志中主要记录的是用户验证和授权方面的信息,更加容易理解。命令如下:

    [root@localhost ~]# vi /var/log/secure
    Jun 5 032046 localhost sshd[1630]:Accepted password for root from 192.168.0.104 port 4229 ssh2
    # 6月5日 032046 本地主机 sshd服务产生消息:接收从192.168.0.104主机的4229端口发起的ssh连接的密码
    Jun 5 032046 localhost sshd[1630]:pam_unix(sshd:session):session opened for user root by (uid=0)
    #时间 本地主机 sshd服务中pam_unix模块产生消息:打开用户root的会话(UID为0)
    Jun 5 032504 localhost useradd[1661]:new group:name=bb, GID=501
    #时间 本地主机 useradd命令产生消息:新建立bb组,GID为501
    Jun 5 032504 localhost useradd[1661]:new user:name=bb, UID=501, GID=501, home=/home/bb, shell=/bin/bash
    Jun 5 032509 localhost passwd:pam_unix(passwd:chauthtok):password changed for bb

    截取了一段日志的内容,注释了其中的三句日志,如果我们的服务器出现了一些问题,比如系统不正常重启或关机、用户非正常登录、服务无法正常使用等,则都应该先查询日志。


  • 相关阅读:
    Redis 的 5 个常见使用场景
    当别人给你一个wsdl或者webservice接口时
    Java事务
    Java分布式锁的三种实现方案(redis)
    使用Redis数据库(String类型)
    超详细Redis数据库入门教程
    java对redis的基本操作(初识)
    String、StringBuffer与StringBuilder之间区别
    java正则表达式替换空格和换行符
    Linux 批量管理工具
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/10133909.html
Copyright © 2011-2022 走看看