精华内容
下载资源
问答
  • linux 系统日志开启
    千次阅读
    2021-05-13 15:41:21

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。

    大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。

    Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。

    日志类型

    下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:

    类型

    说明

    auth

    用户认证时产生的日志,如login命令、su命令。

    authpriv

    与 auth 类似,但是只能被特定用户查看。

    console

    针对系统控制台的消息。

    cron

    系统定期执行计划任务时产生的日志。

    daemon

    某些守护进程产生的日志。

    ftp

    FTP服务。

    kern

    系统内核消息。

    local0.local7

    由自定义程序使用。

    lpr

    与打印机活动有关。

    mail

    邮件日志。

    mark

    产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。

    news

    网络新闻传输协议(nntp)产生的消息。

    ntp

    网络时间协议(ntp)产生的消息。

    user

    用户进程。

    uucp

    UUCP子系统。

    日志优先级

    常见的日志优先级请见下标:

    优先级

    说明

    emerg

    紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。

    alert

    需要立即修复,例如系统数据库损坏。

    crit

    危险情况,例如硬盘错误,可能会阻碍程序的部分功能。

    err

    一般错误消息。

    warning

    警告。

    notice

    不是错误,但是可能需要处理。

    info

    通用性消息,一般用来提供有用信息。

    debug

    调试程序产生的信息。

    none

    没有优先级,不记录任何日志消息。

    常见日志文件

    所有的系统应用都会在 /var/log 目录下创建日志文件,或创建子目录再创建日志文件。例如:

    文件/目录

    说明

    /var/log/boot.log

    开启或重启日志。

    /var/log/cron

    计划任务日志

    /var/log/maillog

    邮件日志。

    /var/log/messages

    该日志文件是许多进程日志文件的汇总,从该文件可以看出任何***企图或成功的***。

    /var/log/httpd 目录

    Apache HTTP 服务日志。

    /var/log/samba 目录

    samba 软件日志

    /etc/syslog.conf文件

    /etc/syslog.conf 是 syslog 的配置文件,会根据日志类型和优先级来决定将日志保存到何处。典型的 syslog.conf 文件格式如下所示:

    *.err;kern.debug;auth.notice /dev/console

    daemon,auth.notice /var/log/messages

    lpr.info /var/log/lpr.log

    mail.* /var/log/mail.log

    ftp.* /var/log/ftp.log

    auth.* @see.xidian.edu.cn

    auth.* root,amrood

    netinfo.err /var/log/netinfo.log

    install.* /var/log/install.log

    *.emerg *

    *.alert |program_name

    mark.* /dev/console

    第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。

    对配置文件的几点说明:

    · 日志类型和优先级由点号(.)分开,例如 kern.debug 表示由内核产生的调试信息。

    · kern.debug 的优先级大于 debug。

    · 星号(*)表示所有,例如 *.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。

    · 可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。

    对日志的操作包括:

    · 将日志输出到文件,例如 /var/log/maillog 或 /dev/console。

    · 将消息发送给用户,多个用户用逗号(,)分隔,例如 root, amrood。

    · 通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。

    · 将消息发送给其他主机上的 syslog 进程,这时 /etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。

    logger命令

    logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

    logger命令的语法为:

    logger [-i] [-f filename] [-p priority] [-t tag] [message...]

    每个选项的含义如下:

    选项

    说明

    -f filename

    将 filename 文件的内容作为日志。

    -i

    每行都记录 logger 进程的ID。

    -p priority

    指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。

    -t tag

    使用指定的标签标记每一个记录行。

    message

    要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。

    例如,将ping命令的结果写入日志:

    $ ping 192.168.0.1 | logger -it logger_test -p local3.notice&

    $ tail -f /var/log/userlog

    Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

    Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms

    Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms

    Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms

    Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms

    Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms

    Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms

    Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms

    Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms

    Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms

    Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

    ping命令的结果成功输出到 /var/log/userlog 文件。

    命令 logger -it logger_test -p local3.notice 各选项的含义:

    · -i:在每行都记录进程ID;

    · -t logger_test:每行记录都加上“logger_test”这个标签;

    · -p local3.notice:设置日志类型和优先级。

    日志转储

    日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。

    syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。

    大多数Linux发行版使用 logrotate 或 newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。

    例如,规定邮件日志 /var/log/maillog 超过1G时转储,每周一次,那么每隔一周 logrotate 进程就会检查 /var/log/maillog 文件的大小:

    · 如果没有超过1G,不进行任何操作。

    · 如果在1G~2G之间,就会创建新文件 /var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。

    · 如果在2G~3G之间,会继续创建新文件 /var/log/maillog.2,并将 /var/log/maillog.1 的内容转移到该文件,将 /var/log/maillog 的内容转移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。

    可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长),以保持当前日志文件和转存后的日志文件不超过指定大小。

    logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。

    可以通过 cat 命令查看它的内容:

    $cat /etc/logrotate.conf

    # see "man logrotate" for details //可以查看帮助文档

    # rotate log files weekly

    weekly //设置每周转储一次

    # keep 4 weeks worth of backlogs

    rotate 4 //最多转储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 { //设置/var/log/wtmp日志文件的转储参数

    monthly //每月转储

    create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664

    rotate 1 //最多转储一次

    }

    注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。

    include 非常有用,一些程序会把转储日志的配置文件放在 /etc/logrotate.d 目录,这些配置文件会覆盖或增加 /etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用 /etc/logrotate.conf 的默认配置。

    所以,建议将 /etc/logrotate.conf 作为默认配置文件,第三方程序在 /etc/logrotate.d 目录下自定义配置文件。

    logrotate 也可以作为命令直接运行来修改配置文件。

    更多相关内容
  • Linux系统日志审计

    2022-01-09 21:49:28
    Linux系统日志审计日志子系统1.连接时间日志auth.log / secure SSH登录日志2.进程统计3.错误日志其他日志安装日志 日志子系统 在Linux系统中,有三个主要的日志子系统: 1.连接时间日志 登陆系统的时间和IP 记录文件...

    日志子系统

    在Linux系统中,有三个主要的日志子系统:

    1.连接时间日志

    登陆系统的时间和IP
    记录文件:/var/log/wtmp/var/run/utmplogin

    auth.log / secure SSH登录日志

    auth.log:
    会记录ssh登陆的IP和端口

    cat auth.log |grep Accepted
    

    在这里插入图片描述

    SSH登录日志 : secure(CentOS)或者auth.log(Ubuntu)

    https://blog.51cto.com/winhe/2114533

    2.进程统计

    由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录,进程统计的目的是为系统中的基本服务提供命令使用统计。

    当用户发现最近服务器有异常时,可以开启进程监视统计功能,所有记录信息会写入/var/log/account/pacct和/var/log/account/acct中
    启动:accton /var/log/account/pacct或者accton on
    显示进程统计:lastcomm
    停止进程统计:accton
    
    sa |more  
    用于报告,清理并维护进程统计日志,将/var/account/pacct的日志文件压缩到/var/log/savacc和/var/log/usracc文件中,其中savacc是基于命令名称索引的,而usracc基于用户名进行索引的
    其中re:实例时间,分钟为单位
       CP:表示系统和用户的使用时间,分钟为单位
    sa -u |grep root|more
    显示root用户的进程数和使用命令所占用CPU及系统的时间
    sa -m 
    显示每个用户的进程数量和CPU数
    

    在这里插入图片描述
    lastcomm
    在这里插入图片描述
    sa -u
    在这里插入图片描述
    sa -m
    在这里插入图片描述

    3.错误日志

    由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。


    其他日志

    其他程序如中间件、FTP 也会生成日志,常用的日志文件如下:

    access.log 记录HTTP/web的传输
    acct/pacct 纪录用户命令
    aculog 纪录MODEM的活动
    messages 从syslog中记录信息(有的链接到syslog文件)
    sudolog 纪录使用sudo发出的命令
    sulog 纪录使用su命令的使用
    syslog 从syslog中记录信息(通常链接到messages文件)
    记录服务器曾经同步时间的 网络时间协议(NTP)服务器 的网络地址IP
    btmp 登陆失败的纪录
    utmp 纪录当前登录的每个用户
    wtmp 一个用户每次登录进入和退出时间的永久纪录
    lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
    xferlog 纪录FTP会话
    


    安装日志

    /var/log/installer/installer-journal.txt

    特别是搭lvm的时候会有记录
    在这里插入图片描述

    参考文章:
    https://www.hacking8.com/MiscSecNotes/linux-check-pentest.html

    展开全文
  • linux系统日志设置

    千次阅读 2021-11-18 14:17:40
    内核启动init程序(这是一个编译后的二进制)后,init启动rc.sysinit脚本,该脚本执行许多系统初始化任务。rc.sysinit执行完后,init启动脚本,该脚本依次启动中由 SystemV 启动脚本定义的各种服务。其中X是待启动的...

    为何我更喜欢 SystemV

    我更喜欢 SystemV,因为它更开放。使用 Bash 脚本来完成启动。内核启动 init 程序(这是一个编译后的二进制)后,init 启动 rc.sysinit 脚本,该脚本执行许多系统初始化任务。rc.sysinit 执行完后,init 启动 /etc/rc.d/rc 脚本,该脚本依次启动 /etc/rc.d/rcX.d 中由 SystemV 启动脚本定义的各种服务。其中 X 是待启动的运行级别号。

    除了 init 程序本身之外,所有这些程序都是开放且易于理解的脚本。可以通读这些脚本并确切了解整个启动过程中发生的事情,但是我不认为有太多系统管理员真正做到这一点。每个启动脚本都被编了号,以便按特定顺序启动预期的服务。服务是串行启动的,一次只能启动一个服务。

    systemd 是由 Red Hat 的 Lennart Poettering 和 Kay Sievers 开发的,它是一个由大型的、编译的二进制可执行文件构成的复杂系统,不访问其源码就无法理解。它是开源的,因此“访问其源代码”并不难,只是不太方便。systemd 似乎表现出对 Linux 哲学多个原则的重大驳斥。作为二进制文件,systemd 无法被直接打开供系统管理员查看或进行简单更改。systemd 试图做所有事情,例如管理正在运行的服务,同时提供明显比 SystemV 更多的状态信息。它还管理硬件、进程、进程组、文件系统挂载等。systemd 几乎涉足于现代 Linux 主机的每个方面,使它成为系统管理的一站式工具。所有这些都明显违反了“程序应该小,且每个程序都应该只做一件事并做好”的原则。

    为何我更喜欢 systemd

    我更喜欢用 systemd 作为启动机制,因为它会根据启动阶段并行地启动尽可能多的服务。这样可以加快整个的启动速度,使得主机系统比 SystemV 更快地到达登录屏幕。

    systemd 几乎可以管理正在运行的 Linux 系统的各个方面。它可以管理正在运行的服务,同时提供比SystemV 多得多的状态信息。它还管理硬件、进程和进程组、文件系统挂载等。systemd 几乎涉足于现代 Linux 操作系统的每方面,使其成为系统管理的一站式工具。(听起来熟悉吧?)

    systemd 工具是编译后的二进制文件,但该工具包是开放的,因为所有配置文件都是 ASCII 文本文件。可以通过各种 GUI 和命令行工具来修改启动配置,也可以添加或修改各种配置文件来满足特定的本地计算环境的需求。

    作为 1 号进程的 systemd

    systemd 是 1 号进程(PID 1)。它的一些功能,比老的 SystemV3 init 要广泛得多,用于管理正在运行的 Linux 主机的许多方面,包括挂载文件系统以及启动和管理 Linux 生产主机所需的系统服务。与启动环节无关的任何 systemd 任务都不在本文讨论范围之内(但本系列后面的一些文章将探讨其中的一些任务)。

    首先,systemd 挂载 /etc/fstab 所定义的文件系统,包括所有交换文件或分区。此时,它可以访问位于 /etc 中的配置文件,包括它自己的配置文件。它使用其配置链接 /etc/systemd/system/default.target来确定将主机引导至哪个状态或目标。default.target 文件是指向真实目标文件的符号链接。对于桌面工作站,通常是 graphical.target,它相当于 SystemV 中的运行级别 5。对于服务器,默认值更可能是 multi-user.target,相当于 SystemV 中的运行级别 3。emergency.target 类似于单用户模式。目标target和服务service是 systemd 的单元unit。

    下表(图 2)将 systemd 目标与老的 SystemV 启动运行级别进行了比较。systemd 提供 systemd 目标别名以便向后兼容。目标别名允许脚本(以及许多系统管理员)使用 SystemV 命令(如 init 3)更改运行级别。当然,SystemV 命令被转发给 systemd 进行解释和执行。

     下图是直接从启动手册页复制来的。它显示了 systemd 启动期间一般的事件环节以及确保成功启动的基本顺序要求。

    sysinit.target 和 basic.target 目标可以看作启动过程中的检查点。尽管 systemd 的设计目标之一是并行启动系统服务,但是某些服务和功能目标必须先启动,然后才能启动其它服务和目标。直到该检查点所需的所有服务和目标被满足后才能通过这些检查点。

    当 sysinit.target 所依赖的所有单元都完成时,就会到达 sysinit.target。所有这些单元,包括挂载文件系统、设置交换文件、启动 Udev、设置随机数生成器种子、启动低层服务以及配置安全服务(如果一个或多个文件系统是加密的)都必须被完成,但在 sysinit.target 中,这些任务可以并行执行。

    sysinit.target 启动了系统接近正常运行所需的所有低层服务和单元,它们也是进入 basic.target 所需的。

    在完成 sysinit.target 之后,systemd 会启动实现下一个目标所需的所有单元。basic.target 通过启动所有下一目标所需的单元来提供一些额外功能。包括设置为各种可执行程序目录的路径、设置通信套接字和计时器之类。

    最后,用户级目标 multi-user.target 或 graphical.target 被初始化。要满足 graphical.target 的依赖必须先达到 multi-user.target。图 3 中带下划线的目标是通常的启动目标。当达到这些目标之一时,启动就完成了。如果 multi-user.target 是默认设置,那么你应该在控制台上看到文本模式的登录界面。如果 graphical.target 是默认设置,那么你应该看到图形的登录界面。你看到的具体的 GUI 登录界面取决于你的默认显示管理器。

    内核及系统日志由系统服务 rsyslog 统一管理,主配置文件为/etc/rsyslog.conf
    Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。

    日志文件的分类

    1.内核及系统日志:
    内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中大部分的程序会把自己的日志文件交由rsyslog管理,因而这些应用程序使用的日志记录格式都很相似。

    /etc/rsyslog.conf 常见配置格式为:
    . 比后面等级高的(包含自己) *.info
    .= 只记录该等级 .=debug
    ! 除了该等级都记录 ! info

        有记录需要记录时,先缓存到一定大小,一次性写入

    2.用户日志:
    用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
    3.程序旧志
    :有些应用程序会选择独立管理一份日志文件 ,而不是交给rsyslog服务管理,用于记录本程序运行过程中的各种事件信息。于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式也会存在较大的差异。
     

    常见的日志文件及查看方式

    日志文件 存放内容
    /var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误、
    /var/log/cron Crond周期性计划任务产生的时间信息
    /var/log/dmesg 弓|导过程中的各种时间信息
    /var/log/ maillog 进入或发出系统的电子邮件活动
    /var/log/lastlog 每个用户最近的登录事件
    /var/log/secure 用户认证相关的安全事件信息
    /var/log/wtmp 每个用户登录注销及系统启动和停机事件
    /var/log/btmp 失败的、错误的登录尝试及验证事件
     

    日志消息的级别

    根据日志信息的重要程度不同,分为不同的级别
    数字级别越小,优先级越高,消息越重要
    级别 英文表示 意义
    0 EMERG(紧急) 导致主机系统不可用的情况
    1 ALERT(警告) 必须马上采取解决措施
    2 CRIT 严重 比较严重的情况
    3 ERR 错误 运行出现错误
    4 WARNING 提醒 提醒用户的重要事件
    5 NOTICE 注意 不会儿影响系统,提醒用户
    6 INFO 信息 一般信息
    7 DEBUG 调式 程序调式
    8 None 没有 不做记录


    二、修改方法
    1、添加系统日志文件
    默认RedHat Linux不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog
    2、修改系统日志文件保存的时间
    修改/etc/logrotate.conf 中的
    # keep 4 weeks worth of backlogs
    rotate 4
    改为rotate 12    /最多转储12次
    将/var/log/wtmp {
        monthly     /每次转储以月为周期,保留最近12个月的日志
        create 0664 root utmp   //转储后文件不存在时创建它,文件所有者为root,                                          所属组为utmp,对应的权限为0664

        rotate 1 中的1改为3,
    }
     
    保存后通过service syslog restart命令重启syslog进程。

    常见的Linux操作系统登录文件有如下几个:
    1)/var/log/secure:记录登录系统存取数据的文件;
    例如pop3,ssh,telnet,ftp等都会记录在此.
    2)/ar/log/wtmp:记录登录这的信息记录,被编码过,所以必须以last解析;
    3)/var/log/message:jihu所有的开机系统发生的错误都会在此记录;
    4)/var/log/boot.log:记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;
    5)/var/log/maillog:记录邮件的存取和往来;
    6)/var/log/cron:用来记录crontab这个服务的内容;
    7)/var/log/httpd,/var/log/mysqld.log等等文件,记录几个不同的网络服务的记录文件;
    8)/var/log/acpid ,   ACPI - Advanced Configuration and Power Interface,表示高级配置和电源管理接口。
    9)/var/run/utmp 记录着现在登录的用户;
    10)/var/log/lastlog 记录每个用户最后的登录信息;
    11)/var/log/btmp 记录错误的登录尝试;
    12)/var/log/dmesg内核日志;
    13)/var/log/cpus CPU的处理信息;
    14)/var/log/syslog 事件记录监控程序日志;
    15)/var/log/auth.log 用户认证日志;
    16)/var/log/daemon.log 系统进程日志;
    17)/var/log/mail.err 邮件错误信息;
    18)/var/log/mail.info 邮件信息;
    19)/var/log/mail.warn 邮件警告信息;
    20)/var/log/daemon.log 系统监控程序产生的信息;
    21)/var/log/kern 内核产生的信息;
    22)/var/log/lpr   行打印机假脱机系统产生的信息;

    展开全文
  • 使用Linux系统自带的命令logrotate对Nginx日志进行切割。 Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/、/usr/local/nginx/logs/nginx_logs/ 1、添加nginx日志切割脚本 cd /etc/...
  • 系统日志介绍 Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。 大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd 或/etc/...
  • linux 如何查看系统日志

    万次阅读 2021-05-11 21:53:09
    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/...

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。

    日志类型

    下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:类型说明

    auth用户认证时产生的日志,如login命令、su命令。

    authpriv与 auth 类似,但是只能被特定用户查看。

    console针对系统控制台的消息。

    cron系统定期执行计划任务时产生的日志。

    daemon某些守护进程产生的日志。

    ftpFTP服务。

    kern系统内核消息。

    local0.local7由自定义程序使用。

    lpr与打印机活动有关。

    mail邮件日志。

    mark产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。

    news网络新闻传输协议(nntp)产生的消息。

    ntp网络时间协议(ntp)产生的消息。

    user用户进程。

    uucpUUCP子系统。

    日志优先级

    常见的日志优先级请见下标:优先级说明

    emerg紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。

    alert需要立即修复,例如系统数据库损坏。

    crit危险情况,例如硬盘错误,可能会阻碍程序的部分功能。

    err一般错误消息。

    warning警告。

    notice不是错误,但是可能需要处理。

    info通用性消息,一般用来提供有用信息。

    debug调试程序产生的信息。

    none没有优先级,不记录任何日志消息。

    常见日志文件

    所有的系统应用都会在 /var/log 目录下创建日志文件,或创建子目录再创建日志文件。例如:文件/目录说明

    /var/log/boot.log开启或重启日志。

    /var/log/cron计划任务日志

    /var/log/maillog邮件日志。

    /var/log/messages该日志文件是许多进程日志文件的汇总,从该文件可以看出任何***企图或成功的***。

    /var/log/httpd 目录Apache HTTP 服务日志。

    /var/log/samba 目录samba 软件日志

    /etc/syslog.conf 文件

    /etc/syslog.conf 是 syslog 的配置文件,会根据日志类型和优先级来决定将日志保存到何处。典型的 syslog.conf 文件格式如下所示:*.err;kern.debug;auth.notice /dev/console

    daemon,auth.notice           /var/log/messages

    lpr.info                     /var/log/lpr.log

    mail.*                       /var/log/mail.log

    ftp.*                        /var/log/ftp.log

    auth.*                       @see.xidian.edu.cn

    auth.*                       root,amrood

    netinfo.err                  /var/log/netinfo.log

    install.*                    /var/log/install.log

    *.emerg                      *

    *.alert                      |program_name

    mark.*                       /dev/console

    第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。对配置文件的几点说明:日志类型和优先级由点号(.)分开,例如 kern.debug 表示由内核产生的调试信息。

    kern.debug 的优先级大于 debug。

    星号(*)表示所有,例如 *.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。

    可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。

    对日志的操作包括:将日志输出到文件,例如 /var/log/maillog 或 /dev/console。

    将消息发送给用户,多个用户用逗号(,)分隔,例如 root, amrood。

    通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。

    将消息发送给其他主机上的 syslog 进程,这时 /etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。

    logger 命令

    logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。logger命令的语法为:logger [-i] [-f filename] [-p priority] [-t tag] [message...]

    每个选项的含义如下:选项说明

    -f filename将 filename 文件的内容作为日志。

    -i每行都记录 logger 进程的ID。

    -p priority指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。

    -t tag使用指定的标签标记每一个记录行。

    message要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。

    例如,将ping命令的结果写入日志:$ ping 192.168.0.1 | logger -it logger_test -p local3.notice&

    $ tail -f /var/log/userlog

    Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

    Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms

    Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms

    Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms

    Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms

    Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms

    Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms

    Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms

    Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms

    Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms

    Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

    ping命令的结果成功输出到 /var/log/userlog 文件。命令 logger -it logger_test -p local3.notice 各选项的含义:-i:在每行都记录进程ID;

    -t logger_test:每行记录都加上“logger_test”这个标签;

    -p local3.notice:设置日志类型和优先级。

    日志转储

    日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。大多数Linux发行版使用 logrotate 或 newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。例如,规定邮件日志 /var/log/maillog 超过1G时转储,每周一次,那么每隔一周 logrotate 进程就会检查 /var/log/maillog 文件的大小:如果没有超过1G,不进行任何操作。

    如果在1G~2G之间,就会创建新文件 /var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。

    如果在2G~3G之间,会继续创建新文件 /var/log/maillog.2,并将 /var/log/maillog.1 的内容转移到该文件,将 /var/log/maillog 的内容转移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。

    可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长),以保持当前日志文件和转存后的日志文件不超过指定大小。logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。可以通过 cat 命令查看它的内容:$cat /etc/logrotate.conf

    # see "man logrotate" for details  //可以查看帮助文档

    # rotate log files weekly

    weekly                             //设置每周转储一次

    # keep 4 weeks worth of backlogs

    rotate 4                           //最多转储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 {                    //设置/var/log/wtmp日志文件的转储参数

    monthly                        //每月转储

    create 0664 root utmp          //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664

    rotate 1                       //最多转储一次

    }

    注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。include 非常有用,一些程序会把转储日志的配置文件放在 /etc/logrotate.d 目录,这些配置文件会覆盖或增加 /etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用 /etc/logrotate.conf 的默认配置。所以,建议将 /etc/logrotate.conf 作为默认配置文件,第三方程序在 /etc/logrotate.d 目录下自定义配置文件。logrotate 也可以作为命令直接运行来修改配置文件。

    系统日志是由一个名为syslog的服务管理的,如以下日志文件都是由syslog日志服务驱动的:

    /var/log/message 系统启动后的信息和错误日志,记录Linux操作系统常见的系统和服务错误信息   /var/log/secure Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况

    /var/log/maillog 与邮件相关的日志信息

    /var/log/cron 与定时任务相关的日志信息

    /var/log/spooler 与UUCP和news设备相关的日志信息

    /var/log/boot.log 守护进程启动和停止相关的日志消息

    /var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息

    /var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址

    /var/log/dmesg这个是硬件的

    系统:

    # uname -a   # 查看内核/操作系统/CPU信息

    # cat /etc/issue

    # cat /etc/redhat-release # 查看操作系统版本

    # cat /proc/cpuinfo  # 查看CPU信息

    # hostname   # 查看计算机名

    # lspci -tv   # 列出所有PCI设备

    # lsusb -tv   # 列出所有USB设备

    # lsmod    # 列出加载的内核模块

    # env    # 查看环境变量

    资源:

    # free -m   # 查看内存使用量和交换区使用量

    # df -h    # 查看各分区使用情况

    # du -sh  # 查看指定目录的大小

    # grep MemTotal /proc/meminfo # 查看内存总量

    # grep MemFree /proc/meminfo # 查看空闲内存量

    # uptime   # 查看系统运行时间、用户数、负载

    # cat /proc/loadavg  # 查看系统负载

    磁盘和分区:

    # mount | column -t  # 查看挂接的分区状态

    # fdisk -l   # 查看所有分区

    # swapon -s   # 查看所有交换分区

    # hdparm -i /dev/hda  # 查看磁盘参数(仅适用于IDE设备)

    # dmesg | grep IDE  # 查看启动时IDE设备检测状况

    网络:

    # ifconfig   # 查看所有网络接口的属性

    # iptables -L   # 查看防火墙设置

    # route -n   # 查看路由表

    # netstat -lntp   # 查看所有监听端口

    # netstat -antp   # 查看所有已经建立的连接

    # netstat -s   # 查看网络统计信息

    进程:

    # ps -ef   # 查看所有进程

    # top    # 实时显示进程状态(另一篇文章里面有详细的介绍)

    用户:

    # w    # 查看活动用户

    # id   # 查看指定用户信息

    # last    # 查看用户登录日志

    # cut -d: -f1 /etc/passwd # 查看系统所有用户

    # cut -d: -f1 /etc/group # 查看系统所有组

    # crontab -l   # 查看当前用户的计划任务

    服务:

    # chkconfig –list  # 列出所有系统服务

    # chkconfig –list | grep on # 列出所有启动的系统服务

    程序:

    # rpm -qa   # 查看所有安装的软件包

    展开全文
  • Linux-系统日志简介

    2021-12-19 12:23:21
    Linux-系统日志简介 1、日志的介绍 日志文件记录了时间,地点,人物,事件四大信息,故系统出现故障时,可以查询日志文件。 系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。 2、...
  • 有时候在系统出现故障的时候,往往需要打开系统日志功能进行定位系统log来分析。一、一般安装busybox默认会使能了syslogd工具和生成/etc/init.d/S01syslogd脚本然后执行syslog的守护进程,然后系统log会默认输出到...
  • (1)掌握各种主要日志的存放位置; (2)能够读懂日志管理服务配置文件rsyslog.conf,并了解日志管理服务配置文件rsyslog.conf的简单配置; (3)了解日志的级别;...对于linux系统日志一般存放在/var/
  • 本文主要介绍的是关于Linux配置日志服务器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 日志服务器配置文件:/etc/rsyslog.conf 服务器端: 服务器IP如下: 编辑日志服务器的配置...
  • Linux查看系统日志

    千次阅读 2020-11-16 11:35:44
    1、Linux系统日志的三种类型 1.内核及系统日志 这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把...
  • linux开启日志服务器功能

    千次阅读 2021-05-11 21:02:51
    大家都知道Linux下rsyslog可以做日志服务器来使用,下面来介绍下如何设置:我的环境是centos6.0,客户端用juniper防火墙:1、开启linux日志服务器功能,并配置日志文件位置:vim /etc/rsyslog.conf 这里我们将日志...
  • 怎样查看Linux系统日志

    千次阅读 2021-05-11 04:00:52
    原标题:怎样查看Linux系统日志? 很多企业都会使用Linux系统,审计Linux系统日志可以提供有关网络事件的重要信息。高效查看Linux系统日志对工作而言十分重要,以下是常用命令# uname -a # 查看内核/操作系统/CPU...
  • 使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. 1.命令格式; tail[必要参数][选择参数][文件] 2.命令功能...
  • 系统日志 Windows系统日志 包括“Windows事件日志、服务器角色日志、FTP日志(21)、邮件日志服务等” 打开方式 文件打开 在C:\Windows\System32\winevt\Logs目录下存在诸多日志文件,安全日志为Security.evtx ...
  • linux系统日志查看

    千次阅读 2021-05-12 08:48:26
    系统 日志文件( 可以通过cat 或tail 命令来查看)/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信息/var/log/maillog 与邮件相关的日志信息/var...
  • 那么这一期,我们就针对linux系统日志监控平台的搭建来进行讲解 与往期一样,我们针对实际搭建教程更多是快速搭建为主,不做过多的原理性讲解,这一类讲解我们放到后期单独开几期博客来探讨。 1. 下载 首先针对...
  • 嵌入式 Linux进程间通信(四)——Linux系统日志 syslog 是一种工业标准的协议,用来记录设备的日志。Linux日志系统由系统日志监控程序syslogd和内核日志监控程序klogd组成,两个监控程序都是守护程序(daemon),且...
  • Linux系统查询日志命令整理

    千次阅读 2022-01-25 11:31:54
    根据字符串查询日志中关键词出现的位置及前后n行内容: cat -n 日志文件| grep '错误的关键信息提示' -C n 例:cat -n test.log | grep 'keyword' -C 10 查询日志中含有某个关键字的信息,显示出行号,查看日志中出现...
  • Linux日志审计

    千次阅读 2022-05-17 16:19:15
    Linux日志审计 常用命令 find、grep 、egrep、awk、sed Linux 中常见日志以及位置 位置 名称 /var/log/cron 记录了系统定时任务相关的日志 /var/log/auth.log 记录验证和授权方面的信息 /var/log/secure...
  • Linux系统中的日志服务管理

    千次阅读 2022-03-10 11:11:08
    内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置 用户日志:这种日志数据用于记录Linux系统用户登录及退出系统...
  • 查看linux系统启动日志记录

    千次阅读 2021-11-22 13:45:20
    在查看系统日志时会看到很多“localhost systemd: Started Session 23 of user root." 并且很有规律,10分钟一个。于是查了一下此信息。 是因为安装了sar命令。“yum install sysstat” 可以查看定
  • linux系统日志记录syslog

    千次阅读 2021-12-13 11:52:26
    syslog是linux系统的一套日志框架,syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的...
  • 1. 掌握日志的存放位置; 2. 了解日志的级别; 3. 了解日志管理服务的配置方法; 4. 了解日志备份服务器的部署方法。
  • 深入理解Linux文件系统日志分析

    千次阅读 2022-04-08 19:08:12
    直接删除inode,也可以删除文件 3、移动或重命名文件时,只改变文件名,不影响inode号码 4、打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名 inode的大详解 在处理Linux系统出现的各种故障时,故障...
  • linux日志级别

    2022-03-02 12:57:41
    以log4j日志级别为例 log4j提供了4种日志级别和2个日志开关。 ...DEBUG:输出调试信息;...指出虽然发生错误事件,但仍然不影响系统的继续运行。 FATAL: 输出致命错误;指出每个严重的错误事件将会导致应用程序的退出
  • Linux 文件系统日志分析

    万次阅读 2021-08-22 23:17:43
    深入理解 Linux 文件系统2.1 inode 与 block 详解(1) inode 和 block 概述 1.前言 2.深入理解 Linux 文件系统 2.1 inode 与 block 详解 (1) inode 和 block 概述   文件是存储在硬盘上的,硬盘的最小存储单位叫做...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,906
精华内容 109,162
关键字:

linux 系统日志开启