文章目录

前言

什么是日志?为什么要管理日志?

一、处理日志的进程

日志动哪里来?

观察rsyslogd程序

二、常见的日志文件(系统、应用程序)

动态查看日志信息

三、rsyslogd配置

1、安装相关程序(默认已安装)

2、启动程序

3、查看相关文件

四、主配置文件

通过vim  /etc/rsyslog.conf查看主配置文件

RULES

facility

LEVEL

 详解RULES信息

总结


前言

        本篇文章带大家了解日志管理中的esyslog系统日志管理,了解日志是从哪里来的,怎么观察日志,以及配置日志设备文件,学习怎么查看常见的一些种类的日志信息。本篇文章需要关心的问题:哪类程序--->产生的什么日志--->放到什么地方


什么是日志?为什么要管理日志?

        日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。

        为了统计信息,为了排查错误。

[root@localhost ~]# ps aux | grep rsyslogd
root       1264  0.0  0.2 214432  2088 ?        Ssl  04:47   0:01 /usr/sbin/rsyslogd -n
root      12597  0.0  0.0 112828   980 pts/0    S+   08:25   0:00 grep --color=auto rsyslogd


一、处理日志的进程

日志动哪里来?

第一类:rsyslog:系统专职日志程序。

              处理绝大部分日志记录

              系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。

第二类:httpd/nginx/mysql:各种应用程序,可以以自己的方式记录日志。

观察rsyslogd程序

[root@localhost ~]# ps aux | grep rsyslogd
root       1264  0.0  0.2 214432  2088 ?        Ssl  04:47   0:01 /usr/sbin/rsyslogd -n
root      12597  0.0  0.0 112828   980 pts/0    S+   08:25   0:00 grep --color=auto rsyslogd

 

二、常见的日志文件(系统、应用程序)

tail   -1  /var/log/messages       //系统主日志文件

tail   -f   /var/log/messages     //动态查看日志文件的尾部

tail   /var/log/secure      //认证、安全

tail   /var/log/yum.log         //yum

tail   /var/log/maillog      //跟邮件postfix相关

tail   /var/log/cron        //crond、at进程产生的日志

tail    /var/log/dmesg      //和系统启动相关

tail /var/log/audit/audit.log      //系统审计日志

tail   /var/log/mysqld.log      //Mysql

tail   /var/log/xferlog      //和访问FTP服务器相关

tail     /var/log/wtmp     //当前登录的用户(命令:w)

tail   /var/log/btmp       //最近登录的用户(命令last)

tail   /var/log/lastlog      //所有用户的登录情况(命令:lastlog)

以tail   -1  /var/log/messages为例了解日志字段。

o rsyslogd
[root@localhost ~]# tail -1 /var/log/messages
Nov 14 08:25:14 localhost systemd: Started LSB: Bring up/down networking.

Nov 14 08:25:14 :时间
localhost :计算机名

systemd: Started LSB: Bring up/down networking.:日志消息

动态查看日志信息

命令:tail   -f   需要查看的日志     //动态查看日志文件的尾部

代码如下(以系统日志为例):

[root@localhost ~]# tail -f /var/log/messages
Nov 14 08:25:13 localhost NetworkManager[1000]: <info>  [1668385513.6475] audit: op="sleep-control" arg="off" pid=12283 uid=0 result="fail" reason="Already awake"
Nov 14 08:25:13 localhost systemd: Stopping LSB: Bring up/down networking...
Nov 14 08:25:13 localhost network: 正在关闭接口 ens33: [  确定  ]
Nov 14 08:25:14 localhost network: 正在关闭环回接口: [  确定  ]
Nov 14 08:25:14 localhost systemd: Stopped LSB: Bring up/down networking.
Nov 14 08:25:14 localhost systemd: Starting LSB: Bring up/down networking...
Nov 14 08:25:14 localhost NetworkManager[1000]: <info>  [1668385514.2556] device (lo): carrier: link connected
Nov 14 08:25:14 localhost network: 正在打开环回接口: [  确定  ]
Nov 14 08:25:14 localhost systemd: Started LSB: Bring up/down networking.
Nov 14 08:30:01 localhost systemd: Started Session 28 of user root.
Nov 14 08:31:11 localhost dbus[813]: [system] Activating service name='org.freedesktop.problems' (using servicehelper)
Nov 14 08:31:11 localhost dbus[813]: [system] Successfully activated service 'org.freedesktop.problems'

这个时候进入到动态查看日志信息,我们再打开另一个终端对系统进行操作,观察动态日志的变化。

在第二个终端切换用户,动态日志信息实时更新了日志信息。其他日志信息也可通过tailf命令来查看。


三、rsyslogd配置

1、安装相关程序(默认已安装)

[root@localhost ~]# yum install rsyslog logrotate
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
dvd                                                   | 3.6 kB     00:00     
软件包 rsyslog-8.24.0-55.el7.x86_64 已安装并且是最新版本
软件包 logrotate-3.8.6-19.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# 

2、启动程序

[root@localhost ~]# systemctl start rsyslog.service

3、查看相关文件

[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog

/etc/rsyslog.conf       //rsyslogd的主配置文件(关键)

/etc/sysconfig/rsyslog         //rsyslogd相关文件,定义级别(了解)

/etc/logretate.d/syslog         //和日志轮转相关


四、主配置文件

        在etc下面程序名命名的conf文件是主配置文件,告诉rsyslogd进程什么日志,应该存到哪里。

通过vim  /etc/rsyslog.conf查看主配置文件

 主要看RULES下的信息。

RULES

RULES:即规则,是一套生成日志,以及存储日志的策略。

规则由设备+级别+存放位置组成。

RULES由FACILITY+LEVEL+FILE组成。

facility

        是系统对某种类型事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志

命令:man    3   syslog  查看facility

 LOG_SYSLOG:syslogd自身产生的日志

LOG_AUTHPRIV:安全认证

LOG_CRON:调度程序(cron and at)

LOG_MAIL:邮件系统(mail subsystem)

LOG_USER(default):用户相关

LOG_DAEMON:后台进程

LOG_FTP:文件服务器(ftp daemon)

LOG_KERN:内核设备(kernel messages)

LOG_LPR:打印机设备(printer subsystem)

LOG_LOCAL0 through LOG_LOCAL7:用户自定义设备

        关于程序和设备的联系问题,程序自身会决定将日志交给哪些设备。如SSH程序设备、安全类设备。这一点由开发者定义。

[root@localhost ~]# grep Facility /etc/ssh/sshd_config 
#SyslogFacility AUTH
SyslogFacility AUTHPRIV

LEVEL

LOG_EMERG:晋级,知名,服务无法继续运行,如配置文件丢失。

LOG_ALERT:报警,需要立即处理,如磁盘空使用95%

LOG_GRIT:致命行为

LOG_ERR:错误行为

LOG_WARNING:警告信息

LOG_NOTICE:普通,重要的标准信息

LOG_INFO:标准信息

LOG_DEBUG:调试信息,排错所需,一般不建议使用

由上至下级别依次递减,级别越高信息越少,级别越低信息越多。

 详解RULES信息

*.info;mail.none;authpriv.none;cron.none          /var/log/messages
系统日志排除了邮件,认证,计划日志。

authpriv*                    /var/log/secure(SSH信息)
mail.*                         -/var/log/maillog(发邮件)   //这里由一个-符号,表示是使用异步的方式记录,因为日志一般会比较大。
cron.*                          /var/log/cron(创建任务)

        我们可以在该文件更改日志存储位置,但是在生产环境下,不建议更改这些日志位置,如果更改请在更改处备份原来的内容,以及写上更改的日期,方便后期人员的维护。


总结

        通过这篇文章学习日志管理中的rsyslog系统日志的管理的介绍,并且学会如何去查看这些日志信息,以及日志的种类,在我们操作报错的时候我们可以通过查看日志来找出错误所在,来进行维护。


创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

Logo

更多推荐