Linux日志服务管理
日志介绍
什么是日志
在现实生活中,记录日志也非常重要,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用
日志记录的内容包括:
历史事件:时间,地点,人物,事件
日志级别:事件的关键性程度,Loglevel
Linux系统使用的两种系统日志服务
sysklogd:
在CentOS 5 之前的版本,采用的是 sysklogd 日志管理系统服务,syslogd用于记录应用日志,klogd用于记录内核日志。但是,CentOS 5 以及之前版本的系统,已经快要随着时代的发展而退出舞台了。
rsyslog:
rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的。
rsyslog 特性
多线程
UDP, TCP, SSL, TLS, RELP
MySQL, PGSQL, Oracle实现日志存储
强大的过滤器,可实现过滤记录日志信息中任意部分
自定义输出格式
适用于企业级中继
常见日志文件
日志文件位置 日志文件说明
/var/log/messages内核和公共日志 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。
/var/log/cron 计划任务日志 记录与系统定时任务相关的曰志
/var/log/dmesg 系统引导日志 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog 邮件日志 记录邮件信息的曰志
用户日志
/var/log/lastlog 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/secure 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp
记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看
日志文件的格式:
日志文件的格式包含以下 4 列:
事件产生的时间。
产生事件的服务器的主机名。
产生事件的服务名或程序名。
事件的具体信息。
日志文件分析
内核及系统日志配置文件及日志消息等级
[root@localhost mnt]# cat /etc/rsyslog.conf
查看/etc/rsyslog.conf配置文件
* . info;mail.none;authpriv.none;cron.none /var/log/messages
*.info #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)
Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)
级别 消息 级别 具体描述
0 EMERG 紧急 会导致主机系统不可用的情况
1 ALERT 警告 必须马上采取措施解决的问题
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能影响系统功能,需要提醒用户的重要事件
5 NOTICE 注意 下会影响正常功能,但是需要注意的事件
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等
实验
单独设置ssh日志
首先进入vim /etc/ssh/sshd_config 目录下修改配置文件
加入自定义的local6保存退出之后使用systemctl restart sshd这条命令刷新一下
然后再/etc/rsyslog.conf文件的第74行添加自己的文件位置
使用ssh命令重新登录一下,就可以看到目录中出现了sshd.log文件
远程日志功能
远程日志功能就是将一台服务器上的日志文件,传输到另一台服务器上
服务端配置
首先我们需要进入 /etc/rsyslog.conf 文件中开启19 20两行,以开启接收方的传输端口
使用ss命令可以查看端口是否开启 使用systemctl restart rsyslog这条命令重启日志服务
需要关闭防火墙systemctl stop firewalld
客户端配置
之后我们修改发送端 rsyslog的配置文件,两个@代表tcp协议(一个@代表udp)
注意,需要关闭防火墙systemctl stop firewalld,修改完配置文件之后,需要重启服务
完成之后,我们使用logger命令在日志文件中添加测试字段
之后我们来到接收方,使用tail命令来参看一下/var/log/messages文件
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步