Linux *** 作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。一部分程序共用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录来存放日志文件。有相当一部分日志文件只有root用户才有权限读取,这保证了相关日志信息的安全性。
有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
在 Linux *** 作系统中,还有相当一部分应用程序没有使用 rsyslog 服务来管理日志,而是由程序自己维护日志记录。例如,httpd 网站服务程序使用两个日志文件 access_log 和error_log 分别记录客户访问事件和错误事件。
/var/log/message大多数系统日志消息记录都在此处。但不包括与身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure安全和身份验证相关的信息以及登录失败的日志文件。主要ssh远程连接产生的日志。
/var/log/maillog 与邮件相关的信息日志文件
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot.log 与系统启动相关的信息记录
/var/log/dmesg 与系统启动相关的信息记录
/var/蔽凳log/wtmp 是一个二进制文件,记录每个用户的登录次数和持续时间等信息,可以用last命令查看其中内容
/var/log/btmp与/var/log/wtmp类似,但记录的是错误登录系统的日志,使用lastb命令此并念查看其中内容。如果此文件大于1M,就需要注意是否有人在暴力破解
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
linux系统中/var/log/目录日志 默认保存四周 并不生成系统日志(syslog.log),当用户有规定保存多少天时才需要进行修改。系统日志路径/var/log/目录下
二、修改方法
1、添加系统日志文件
修改/etc/logrotate.conf 中的
# keep 4 weeks worth of backlogs
rotate 4 #改为rotate12
将/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1 #中的1改为3,
}
保存后通过service syslog restart命令重启syslog进程。
修改日志保存时间:由于有安全方面的需求,要求可追溯系统 *** 作记录,因此想让系统日志保存6个月。开始以为是 syslogd.service 服务,但是发现系统里没有这项服务,因此网上冲浪了一下,发现在 centos 7.3 中已经被 rsyslog 替代了。
下面记录一下修改保存时间:
修改/etc/logrotate.conf 中的
# keep 4 weeks worth of backlogs
rotate 4
# 改为rotate 24
将/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
#rotate 1改为rotate 3,
}
# 保存后,重启 rsyslog 服务
sudo systemctl restart rsyslog
安全日志保存了用户登录、退出系统等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件分析工具部分命令
users、who、w、last、lastb由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、
FTP
服务:/var/log/xferlog
查看工具部分命令文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
需要在/etc下增加一个syslog.conf配置文件,具体方式如下:etc/syslog.conf
/etc/syslog.conf 文件使用下面的格式:
facility.levelaction
facility.level为选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号()把它们分隔开。action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。
要素分析:
facility 指定 syslog 功能,主要包括以下这些:
kern 内核信息,首先通过 klogd 传递;
user 用户进程;
mail 邮件;
daemon 后台进程;
authpriv 授权信息;
syslog 系统日志;
lpr 打印信息;
news 新闻组信息;
uucp 由uucp生成的信息
cron 计划和任务信息。
mark syslog 内部功能用于生成时间戳
local0----local7 与自定义程序使用,例如使用 local5 做为 ssh 功能
*通配符代表除了 mark 以外的所有功能
level 指定syslog优先级:
syslog 级别如下:(按则渣严重程度由高到低的顺序列出了所有可能的优先级。)
emerg 或 panic 该系统不可用(最紧急消息)
alert需要立即被修改的条件(紧急消息)
crit 阻止某些工具或子系统功能实现的错误条件(重要消息)
err 阻止工具镇滚或某些子系统部分功能实现的错误条件(出错消息)
warning 预警信息(警告消息)
notice 具有重要性的普通条件(普通但重要的消息)
info 提供信息的消息(通知性消息)
debug不包含函数条件或问题的其他信息(调试级-信息量最多)
none 没有重要级,通常用于排错(不记录任何日志消息)
*所有级别,除御盯余了none
Application 中定义level:
0: LOG_EMERG
1: LOG_ALERT
2: LOG_CRIT
3: LOG_ERR
4: LOG_WARNING
5: LOG_NOTICE
6: LOG_INFO
7: LOG_DEBUG
kernel中定义level(使用printk函数设定level):
0: KERN_EMERG, 系统无法使用
1: KERN_ALERT, 必须立即执行
2: KERN_CRIT, 紧急状态
3: KERN_ERR, 错误状态
4: KERN_WARNING, 警告状态
5: KERN_NOTICE, 正常状态且十分重要
6: KERN_INFO, 报告
7: KERN_DEBUG, debug-level讯息
例子:
“mail.*”将发送所有的消息,“mail.!info”把info优先级的消息排除在外。
mail.*mail.!info /var/log/mail
下面的规则指定Facility为mail,Severity为err以上级别的日志写入/var/log/mail.err文件,而err以下级别的日志则被忽略:
mail.err/var/log/mail.err
facility和level可以使用通配符,也可以指定多个,用逗号隔开:
auth,authpriv.* /var/log/auth.log
Facility和level的组合可以有多个,用分号隔开,文件前面加一个减号表示日志不立即写入文件,而是在缓冲中积攒到一定的条件再写,这样 可以提高性能,但是当机可能会丢失数据:
*.*auth,authpriv.none -/var/log/syslog
可以把syslog消息通过UDP发送到syslog服务器的514端口:
发生错误时,在控制台打屏:
*.err/dev/console
系统统日志(Syslog)协议简介Syslog是一种在网络中传递消息的标准。它采用Client/Server架构:syslog的发送者(Client)向接受者(Server)发送短消息(一般小于1KB)。现在Syslog被应用于很多系统中:OS,Router,Switch等等。日志严重程度(severity levels): 0 - Emergency (emerg) 1 - Alerts (alert) 2 - Critical (crit) 3 - Errors (err) 4 - Warnings (warn) 5 - Notification (notice) 6 - Information (info) 7 - Debug (debug) 通常系统会将进程分组,同组进程的日志将具有相同的组标识(称为facility),这样可以在一定程度上对日志分类。常用的facility包括:auth - authentication (login) messages cron - messages from the memory-resident scheduler daemon - messages from resident daemons kern - kernel messages lpr - printer messages (used by JetDirect cards) mail - messages from Sendmail user - messages from user-initiated processes/apps local0-local7 - user-defined syslog - messages from the syslog process itself 搭建中心系统日志(Syslog)服务器有什么好处?一般系统缺省会将日志发送到本地的Syslog服务器上,并保存到本地存储或者直接输出在屏幕等终端设备上。建立一个统一的日志服务器,并且将所有的日志发送到该服务器具有如下好处:方便集中日志管理(存储、备份、查询,等等)。对于没有终端(Console)的设备,方便查看日志。日志更安全:一旦黑客入侵其中某个设备,通常会将日志清楚。将日志输出到中心服务器,有利于保护日志的完整性。搭建中心系统日志(Syslog)服务器如果你的系统使用sysklogd,请参考如下配置:修改/etc/sysconfig/syslog,替换:SYSLOGD_OPTIONS="-m 0" 为SYSLOGD_OPTIONS="-rm 0"重新启动syslog服务:service syslog restart注意防火墙设置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以参考如下的设置: iptables -I INPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 配置其他设备使用该系统日志(Syslog)服务器syslogd的配置文件(如:/etc/syslog.conf)一般有如下语法: facility.severity log-file-name 将所有Kernel日志写入/var/log/kernel.log: kern.* /var/log/kernel.log 将所有日志写入/var/log/kernel.log: *.* /var/log/all.log 将所有日志发送到远程日志服务器: *.* @hostname 注意防火墙设置:如果你的Client是192.168.1.2, Syslog Server是192.168.1.1,可以参考如下的设置: iptables -I OUTPUT -p udp -i eth0 -s 192.168.1.2 -d 192.168.1.1 --dport 514 -j ACCEPT 参考资料维基百科上的Syslog介绍。Syslog daemon。Syslog-ng日志系统 - 一个增加版的日志系统。Rsyslog - 多线程、灵活的日志系统。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)