发布时间:2025-12-10 11:43:47 浏览次数:2
内核及系统日志由系统服务 rsyslog 统一管理,主配置文件为/etc/rsyslog.conf,主程序/sbin/rsyslogd
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。
系统日志基于rsyslog服务,需要开启rsyslog
systemctl status rsyslog.server查看rsyslog服务开启状态记录系统用户登录以及退出系统的相关信息
应用程序的独立日志
文本查看,grep过滤内容,webmin管理套件内查看
awk,sed等文本过滤工具
webalizer,awstats等专业日志分析工具(图形化)
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
/var/log/cron:记录crond计划任务产生的事件信息。
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
/var/log/maillog:记录进入或发出系统的电子邮件活动。
/var/log/secure:记录用户认证相关的安全事
/var/log/lastlog:记录每个用户最近的成功登录事件。二进制格式
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式
时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。
日志根据rsyslog配置文件的设置记录相关信息。
规则配置格式:【设备.级别】;【设备.级别】;【设备.级别】...... 写入的日志文件
*.info;mail.none;authpriv.none;cron.none /var/log/messages*.info #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)
auth 用户认证时产生的日志
authpriv ssh、ftp等登录信息的验证信息
daemon 一些守护进程产生的日志
ftp FTP产生的日志
lpr 打印相关活动
mark rsyslog服务内部的信息,时间标识
news 网络新闻传输协议(nntp)产生的消息。
syslog 系统日志
uucp Unix-to-Unix Copy 两个unix之间的相关通信
console 针对系统控制台的消息。
cron 系统执行定时任务产生的日志。
kern 系统内核日志
local0~local7 自定义程序使用
mail 邮件日志
user 用户进程
(数字等级越小,优先级越高,消息越重要)
0 EMERG(紧急):会导致主机系统不可用的情况。如系统崩溃
1 ALERT(警告):必须马上采取措施解决的问题。如数据库被破坏
2 CRIT(严重):比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3 ERR(错误):运行出现错误。不是非常紧急,尽快修复的
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。无需处理
6 INFO(信息):一般信息。正常的系统信息
7 DEBUG(调试):程序或系统调试信息等。包含详细开发的信息,调试程序时使用
none:没有优先级,不记录任何日志消息。
一般设置0-3级记录,或是0-5级记录,考虑到日志文件大小不会记录全部的等级
举例
mail.info /var/log/maillog :比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
mail.=info /var/log/maillog :明确指定日志级别为info,保存至/var/log/maillog
mail.!info /var/log/maillog :除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
*.info /var/log/maillog :所有facility的info级别,保存至/var/log/maillog
mail.* /var/log/maillog :mail的所有日志级别信息,都保存至/var/log/maillog
mail.notice;news.info /var/log/maillog :mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
mail,news.crit -/var/log/maillog :mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式(异步模式两个可以不分先后同时处理。如果是同步模式则必须要按照顺序)
第三方安装的程序若需要使用rsyslog服务进行记录,而不是使用自己的记录文件,
可将应用程序配置文件内的log目录位置修改为local*,表示使用local*设备承载,再去/etc/rsyslog.conf配置文件最后一行对应修改。
例如
vim /etc/httpd/conf/httpd.conf
#ErrorLog logs/error_log
方法一:
方法二:
应用程序配置文件
ErrorLog "|/usr/bin/logger -p local5.notice" #ErrorLog 使用管道符号调用/usr/bin/logger程序,写入系统日志,#承载设备为local5,notice级别以上的信息写入#error_log 全部通过管道写入 syslog,并且 log 的 facility 配置为 local5#LogLevel warn #CustomLog logs/access_log combinedCustomLog "|/usr/bin/logger -p local4.info" combined #access_log全部通过管道写入syslog,并且log的facility配置为local4#logger -p 指定输入消息的优先级,优先级可以是数字或者指定为 "facility.level" 的格式rsyslog配置文件
# Save local4 to a filelocal4.* /opt/apache_access_log# Save local5 to a filelocal5.* /opt/apache_error_logrsyslog是一个C/S架构,可以通过套接字来进行监听记录工作,可以基于TCP和UDP工作,默认的监听端口是514,只需要在MODULES打开即可。
发送服务器:客户端 192.168.80.20
收集服务器:服务端 192.168.80.30
#%timestamp% :时间戳
#%fromhost-ip% :接收的信息来自于哪个节点的 IP
#%hostname% :主机名
#%syslogseverity-text% :日志等级
#%syslogtag% :服务进程
#%msg% :日志内容
#接收方 IP 前面一个 @ 表示 TCP 传输,两个 @ 表示 UDP 传输
将下面四行前的注释取消掉
#### MODULES ####$ModLoad imudp$UDPServerRun 514$ModLoad imtcp$InputTCPServerRun 514添加以下内容
#### RULES ####$AllowedSender tcp, 192.168.80.0/24 #允许 192.168.80.0 网段内的主机以tcp协议来传输$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" #定义模板,接受日志文件路径,区分了不同主机的日志:fromhost-ip, !isequal, "127.0.0.1" ?Remote #过滤掉 server 本机的日志 systemctl restart rsyslog日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。
Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。
日志的配置文件是/etc/systemd/journald.conf
查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已
-f 为实时跟踪查看 类似tail -f /var/log/messages
journalctl -n 20 [-f]