当前位置: 首页 > Linux

Linux日志管理_0

时间:2023-04-06 05:50:36 Linux

日志介绍日志文件是重要的信息系统文件,记录了很多重要的系统事件,包括用户登录信息、系统启动信息、系统安全信息、邮件相关信息、各种服务相关信息。不仅如此,日志对于安全性也非常重要。它记录了系统每天发生的各种事情。日志可用于查看错误原因或攻击者在被攻击时留下的痕迹。一般来说,日志是记录重要事件的工具。Linux操作系统中常用的日志存放在/var/log/目录下:/var/log/boot.log//系统启动日志/var/log/cron//记录系统定时任务相关的日志/var/log/cups//记录打印信息的日志/var/log/dmesg//记录系统开机时内核自检的信息,也可以直接使用dmesg命令查看这些信息/var/log/btmp//记录错误登录的日志,该文件是二进制文件,需要用命令lastb查看,不能直接用vim查看/var/log/lastlog//那个日志记录系统所有用户最后一次登录的时间,这个文件是一个二进制文件,需要用命令lastlog查看/var/log/mailog//log用于记录邮件信息/var/log/message//logfor记录系统的重要信息,其中包含Linux中最重要的信息。如果系统有问题,首先要检查这是文件/var/log/secure//记录验证和授权信息,只要程序涉及到账号和密码,都会记录下来,比如系统login、ssh登录、添加用户、修改用户密码等/var/log/wtmp//永久记录所有用户的登录和注销信息,同时记录系统启动、重启、关机事件,使用lastcommandtoview/var/tun/ulmp//记录当前登录用户的信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息.可以使用w、who、users等命令查看日志管理服务rsyslogd。CentOS6.x版本的日志服务为syslogd;CentOS7.x版本的日志服务是rsyslogd。或兼容。这里使用的rsyslogd功能更强大。rsyslogd实际上是一个管理操作系统日志的后台程序/服务。查询Linux中rsyslogd服务是否启动,使用命令psaux|grep“rsyslog”|grep-v"grep";查询rsyslogd服务的自启动状态,使用命令systemctllist-unit-files|grep系统日志;配置文件/etc/rsyslog.conf需要知道rsyslogd管理日志以及各个目录下日志的含义由配置文件[/etc/rsyslog.conf]指定。编辑配置文件时的格式为.,第一个代表日志类型,第二个代表日志级别。日志类型authpamlogauthprivssh,ftp等登录信息验证corn时间任务相关kern内核lprprintmailmailmark(syslog)-rsyslog服务内部信息,时间戳newsnewsgroup用户程序生成的用户相关信息uucpunixtonuixcopyrelatedcommunicationbetweenhostslocal1-7customlogdeviceloglevel(从上到下,级别越来越高,记录的信息越来越少)debug有调试信息,logcommunication信息最多Generalinformationlog,最常用的通知最重要的常见情况的信息warning警告级别err错误级别,阻止某个功能或模块正常工作的信息crit严重级别,组织整个系统或整个软件不能正常工作的信息alert需要立即修改的信息emerg内核崩溃等重要信息none不记录任何内容检查日志文件中的日志日志服务rsyslogd记录的日志文件的格式包含4列:事件产生的时间主机产生事件的服务器名称服务名称或程序名称事件的具体信息,我们查看/var/log/secure日志;自定义日志案例:在/etc/rsyslog.conf中添加一个日志文件/var/log/mjj.log,当有事件发生时,该文件接收信息并保存。进入配置文件[root@majinjian~]#vim/etc/rsyslog.conf添加如下代码,意思是将所有类型的日志添加到mjj.log中;wq保存后创建mjj.log文件,查看此时文件是否为空[root@majinjian/]#>/var/log/mjj.log接下来使用命令reboot重启系统并重启,并再次查看mjj.log文件;什么是日志轮换?日志文件将被移动和重命名,同时将创建新的空日志文件。当旧日志文件超出存储范围时,将被删除。CentOS7使用logrotate进行日志轮转管理。如果要更改日志轮转文件的名称,请修改/etc/logrotate.conf配置文件中的dateext参数。如果配置文件中有dateext参数,则日志会使用日期作为日志文件的后缀,如mjj-20220607;这样日志文件名就不会重叠,也不需要改名。只需指定要保存的日志数并删除多余的日志文件。如果配置文件中没有dateext参数,则需要重命名日志文件。例如日志第一次轮转时,当前的mjj日志会自动重命名为mjj.1,然后会创建一个新的mjj日志来保存新的日志。日志第二次轮转时,mjj.1会自动重命名为mjj。2、将当前的mjj日志重命名为mjj.1,然后新建一个mjj日志来保存新的日志,以此类推。日志轮转配置文件/etc/logrotate.conf文件是logrotate的全局配置文件,文件内容如下:[root@majinjianlogrotate.d]#cat/etc/logrotate.conf详见"manlogrotate"rotatelogfilesweekly每周轮换一次日志文件(默认)weeklykeep4周的积压,总共保存四个日志文件,创建新文件时将删除旧的。rotate4createnew(empty)logfilesafterrotatingoldonesinthelogrotationCreateanewemptylogfileafterreplacementcreateusedateasasuffixoftherotatedfile使用日期作为日志文件名的后缀filescompressed日志文件是否被压缩,如果取消注释将同时转储日志CompresscompressRPMpackagesdroplogrotationinformationintothisdirectory包含/etc/logrotate.d目录下的所有子配置文件,即,读取所有文件包括/etc/logrotate.d在为日志设置规则/策略时使用以下语法没有包拥有wtmp和btmp--我们将在此处轮换它们/var/log/wtmp{monthly#rotatelogfilesonceamonthcreate0664rootutmp#新建一个日志文件,权限为0664,所有人都是root,所属组为utmp组minsize1M#日志文件的最小轮转大小为1M,表示log日志只有超过1M才会轮转。1#只保留一个日志备份,也就是说只保留wtmp和wtmp。1reserved}/var/log/btmp{missingok#如果日志不存在,忽略日志的警告信息monthlycreate0600rootutmprotate1}system-spec这里也可以配置ific日志。[root@majinjianlogrotate.d]#配置文件中各代码段参数含义参数含义rotationcycleofdailylog是weeklylog的轮转周期是weeklylog的轮转周期周期为每月轮换次数保留的日志文件数。0表示没有备份。压缩当日志轮转时,旧日志将被压缩。createmodeownergroup创建一个新日志,并指定新日志的权限和所有者以及所属的组。mailaddress日志轮转时,输出内容通过email发送到指定邮箱missingok如果日志不存在,则忽略日志的警告信息notifempty如果日志为空文件,则不轮转日志minsize日志轮换的最小值。即日志必须达到这个最小值才会轮转,否则即使到了时间也不会轮转。size日志的大小只有大于指定大小才会轮转,不会根据时间轮转。dateext使用日期作为日志轮转文件后缀sharedscripts该关键字后的脚本只执行一次prerotate/endscript在日志轮转之前执行脚本命令postrotate/endscript在日志轮转之后执行脚本命令可以为一条日志指定策略单独使用,也可以把日志文件的轮转规则写到/etc/logrotate.d目录下,比如系统启动日志boot.log就在这个目录下:这里指定自己日志的轮转规则。这里我们还是操作之前创建的日志文件mjj。日志;指定日志文件的轮转规则有两种方式:直接将日志的轮转规则写在/etc/logrotate.conf配置文件中。在/etc/logrotate.d/目录下新建日志轮转文件,并写入轮转规则,因为该目录下的所有子配置文件都包含在/etc/logrotate.conf中,所以日志也可以加入轮转(受到推崇的)。接下来,我们使用第二种方法为mjj.log日志新建一个轮转文件mjjlog,并添加自定义规则;创建轮转文件[root@majinjianlogrotate.d]#vimmjjlogcreaterules/var/log/mjj.log{missingokdailycopytruncaterotate3notifempty}如下保存后,该文件会被全局配置文件识别,mjj.log日志会按照指定的规则进行轮转。日志轮转机制日志轮转之所以能够在指定时间备份日志,是因为依赖于系统定时任务。在/etc/cron.daily/目录下有一个文件logrotate,日志轮转logrotate依赖这个文件定时执行任务。查看内存日志在Linux中,有些日志是先写到内存中的,这些日志是实时变化的,与系统内存有关。每次系统重启都会清除内存日志。使用命令journalctl查看内存日志。journalctl#查看所有日志journalctl-n3#查看最近的三个日志journalctl--since13:000--until15:30#查看从开始时间到结束时间的日志journalctl-perr#错误日志journalctl-overbose#logdetailsjournalctl_PID=123_COMM=sshd#查看包含这些参数的日志