Linux 系统日志文件有哪些类型? | 您所在的位置:网站首页 › linux常用的系统有哪些类型 › Linux 系统日志文件有哪些类型? |
Linux 系统日志文件有哪些类型?
参考链接:https://www.wangan.com/wenda/2497 在Linux系统中,拥有非常灵活和强大的日志功能,它几乎可以保存所有的操作记录,还可以检索出我们需要的信息。不仅如此,Linux系统日志还可以帮助我们解决各种各样的问题。那么Linux系统日志分为哪几种类型? Linux 系统日志主要有三种类型:分别是 内核及系统日志、用户日志、程序日志。 一、内核及系统日志: 这种日志数据由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把日志文件交由 rsyslog 管理,因而这些程序使用的日志记录也具有相似的格式。 二、用户日志: 这种日志数据用于记录 Linux 操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。 三、程序日志: 有些应用程序会选择由自己独立管理一份日志文件,用于记录本程序运行过程中的各种事件信息,而不是交给 rsyslog 服务管理。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。 linux操作系统日志查看,linux 如何查看系统日志参考链接:linux操作系统日志查看,linux 如何查看系统日志_木水生-DevPress官方社区 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 # 查看所有安装的软件包 |
CopyRight 2018-2019 实验室设备网 版权所有 |