Linux学习之日志管理(二十一)
Linux学习之日志管理
目录
日志管理
rsyslogd日志服务
日志轮替
日志管理
日志服务
1 2 | 在Centos6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容 ,所以学习起来基本和syslogd服务一致。 |
rsyslogd的新特点
1 2 3 4 5 6 | 基于TCP网络协议传输日志信息 更安全的网络传输方式 有日志消息的及时分析框架 后台数据库 配置文件中可以写简单的逻辑判断 与syslog配置文件相兼容 |
启动日志服务
1 2 3 4 5 6 | (默认开机自动启服务) 查看服务是否启动 ps aux | grep rsysogd 查看服务是否自启动 chkconfig - - list | grep rsyslog |
常见日志的作用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 日志文件 说明 / var / log / boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。 / var / log / cron 记录了系统定时任务相关的日志,该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。<br>REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。 RELOAD 动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的<br>情况。 / var / log / cpus / 记录打印信息的日志 / var / log / cups / 记录了系统在开机时内核自检的信息。也可以使用dmesg命令直接查看内核自检信息 / var / log / btmp 记录错误登录日志。这个文件是二进制文件,不能直接vi查看,需要使用lastb命令查看 / var / log / lastlog / 记录系统中所有用户最后一次登录时间的日志,这个文件也是二进制,不能直接vi,而要使用lastlog命令查看 / var / log / mailog 记录邮件信息,该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。 / var / log / message 记录系统出现重要的日志,这个日志文件中会记录Linux系统的绝大数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件。 / var / log / secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录,比如说系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会添加用户和修改用户密码都会记录在这个日志文件 / var / log / wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件,同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 / var / run.utmp 记录当前已经登录的用户的信息,这个文件会随意随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 / var / log / xferlog 该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。 该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或 "_" (如果没有压缩的话)、传输方向(相对于服务器而言:<br>i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或 0 ),认证用户的 ID 或 "*" 。 Wed Sep 4 08 : 14 : 03 2002 1 UNIX 275531 / var / ftp / lib / libnss_files - 2.2 . 2.so b _ o a - root@UNIX ftp 0 * c / var / log / kernlog |
1 2 3 4 5 6 7 8 9 10 | / var / log / httpd / RPM包安装的apache服务的默认日志目录 / var / log / mail / RPM包安装的邮件服务的额外日志目录 / var / log / samba / RPM包安装的samba服务的日志目录 / var / log / sssd / 守护进程安全服务目录 |
日志文件的一般格式
1 2 3 4 5 | 基本日志格式包含以下四列: 事件产生的时间 发生事件的服务器的主机名 产生事件的服务名或程序名 事件的具体信息 |
/etc/rsyslog.conf配置文件
etc/rsyslog.conf配置文件
1 | rsyslog.conf是rsyslogd的主配置文件,rsyslog是linux系统上用来记录系统日志的.rsyslog.conf向后兼容syslogd的syslog.conf文件,所以可以直接使用syslog.conf。 |
服务名称
连接符号
日志等级
日志记录位置
日志轮替
日志文件命名
1 2 3 | 在配置文件中拥有 "dateext" 参数,那么日志会用日期作为日志文件的后缀 例如:log. 20190105 这样的话日志文件名就不会重叠,所以也就不需要日志文件的改名,只需要保存指定的日志个数,删除多余的日志文件即可。 |
logrotate配置文件(/etc/logrotate.conf)
1 2 3 4 5 6 | daily 日志的轮替周期是每天 weekly 日志的轮替周期是每周 monthly 日志的轮替周期是每月 rotate 数字 保留的日志文件的个数。 0 指没有备份 compress 日志轮替时,旧的日志进行压缩 create mode owner group 建立新日志,同时指定新日志的权限与所有这和所属组。如create 0600 root utmp |
logrotate命令
1 2 3 4 5 | logrotate [选项] [配置文件名] 选项: 如果此命令没有选项,则会安装配置文件中的条件进行日志轮替 - v:显示日志轮替过程。加了 - v选项,会显示日志的轮替的过程 - f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有日志进行轮替。 |
1 2 3 4 5 6 7 8 9 10 | RPM包安装的服务不需要进行日志轮替,自动进行。 只有源码包安装的服务才需要自行定义 把apache日志加入轮替 vi / etc / logrotate.conf / usr / local / apache2 / logs / access_log{ daily create rotate 30 } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?