centos7日志

centos7日志,第1张

在CentOS7中,系统日志消息由两个服务负责处理:system-journald 和森困 rsyslog。

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端口:

*[email protected]

发生错误时,在控制台打屏:

*.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 - 多线程、灵活的日志系统。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11984567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存