日志管理

19日志管理

19日志管理 1

1. 日志记录了系统中相关信息,一般记录在文件中,也可以给用户和主机发送日志 2

2. rpm包装的日志存储在 /var/log下 2

3. /etc/rsyslog.conf日志配置文件 5

4. 日志轮替 9

5. C/S架构,远程收集日志 14

日志记录了系统中相关信息,一般记录在文件中,也可以给用户和主机发送日志

rpm包装的日志存储在 /var/log下

日志管理

/var/log下常见的系统日志

dmesg 开机时内核自检信息,也可直接输入dmesg

wtmp

永久记录所有用户登录、注销信息,同时记录系统的启动、重启、关机事件,不能vi,要用last查看

日志管理

lastlog

记录用户最后一次登录时间,不能用vi,要用lastlog查看

日志管理

btmp

记录错误登陆的日志,不能通过vi查看,而要使用lastb

日志管理

message

记录了系统重要的日志。这个日志文件会记录Linux系统的绝大多数重要信息,如果系统出问题,首先要检查的就是这个日志文件

什么时候,在哪台主机,用哪个服务程序,做了什么事

日志管理

解释为 6月5日 14点59分26秒 localhost主机使用systemd服务关掉了DHCPv4服务的守护进程

cron 记录了定时任务相关日志

boot.log

开机启动日志

mail.log邮件相关信息

/var/run/utmp

记录了当前已经登陆的用户信息,随着用户登录和注销不断变化,不能直接vi,而要用w,who,users等命令

secure

记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。ssh服务,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录

yum.log

查看安装过的包

/var/log常见的程序日志

/var/log/httpd

/etc/rsyslog.conf日志配置文件

服务名称

authpriv 安全和认证相关消息

mail 邮件收发信息

cron 系统定时任务cront 和 at 产生的日志

news 与新闻服务器相关的日志

local0-local7 为本地预留的服务

符号

* 任意等级

任意大于等于emerg的都要报警

日志管理

. 只要比后面的等级高(含本等级)就记录,authpriv.* 代表了任何日志都写下来

日志管理

.= 代表记录所需等级日志,*.=emerg 只要等级是emerg等级就记录

.! 代表不等于,也就是除了该等级的如之外,其他等级等级的日志都记录

- 代表日志先保存在内存中,当日志够多之后在向文件保存

日志管理

日志等级

debug 一般的调试信息说明

info 基本的通知信息

notice 普通信息但,是有一定的重要性

warning 警告信息,但是不影响服务或系统的运行

err 错误信息,一般会影响到服务或系统运行

crit 临界状况信息,比err等级还要严重

alert 警告状态信息,必须立即采取行动

emerg 疼痛等级信息,系统已经无法使用

none 不报错

日志等级如果写none,忽略这个日志服务,*.info;mail.none;authpriv.none;cron.none 代表记录所有比info级别高的日志,除了mail authpriv cron 日志

日志管理

/etc/rsyslog.conf 文件内容

模块

tcp udp端口

时间格式

$IncludeConfig /etc/rsyslog.d/*.conf 加载此目录下的文件

由上图可知:

日志管理

由此图可知,绝大多数日志都放入messages中,authpriv服务,mail服务,cron服务,单独存储到自己对应的日志中,任何服务到了疼痛级别都会先所有用户发送信息

定义自己的日志

vim /etc/rsyslog.conf

加入*.crit /var/log/alert.log(如果比crit级别高就写入alert日志中)

日志管理

systemctl restart rsyslog 重启服务,成功生成

日志管理

日志轮替

rpm包切割轮替

日志需要进行切割(按照天数切割保存)和轮替(日志文件超出保存范围会进行删除),日志轮替可以借助linux系统自带的/etc/logrotate.conf配置文件中dateext参数

在/var/log可以清楚的查看到日志被切割

日志管理

查看轮替配置文件/etc/logrotate.conf

日志管理

全局配置定义了每周轮替一次,下面局部配置函数定义了一个月轮替一次,按照下面自带函数优先生效,最多保存4个日志,新建cron,按照日期显示,压缩未开启,可以手动开启,包含/etc/logrotate.d下的配置文件(其他服务的日志写在此目录下)

/var/log/wtmp日志轮替函数意思为:一个月执行一次轮替, 创建新的日志并指定权限(0664) 所有者(root) 所属组(utmp),最小限制1M,小于1M文件不轮替

logrotate 配置文件的主要参数

daily 日志的轮替周期是每天
monthly 日志的轮替周期是每月
compress 日志轮替时,旧的日志进行压缩
create mode owner group 建立新的日志,同时指定新日志的权限与所有者和所属组,如create 0600 root root,同时logrotate也会重命名原始日志文件
mail address 当日志轮替时,输出内容通过邮件发送到指定邮件地址
notifempty 如果日志为空文件,则不进行日志轮替
minsize 日志轮替最小值,文件达不到此大小,不进行切割
size 大小 日志只有大于指定大小才进行日志轮替
dateext 使用日期作为论题日志文件后缀
missingok 在日志轮循期间,任何错误将被忽略
sharedscripts 此关键字之后脚本只执行一次
prerotate/endscript 日志在轮替之前执行脚本.endscript代表脚本结束
postrotate/endscript 日志在轮替之后执行脚本,endscript代表脚本结束

日志管理

将自己的日志或者源码包加入日志轮替

方法一:直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略

方法二(推荐):在/etc/logrotate.d目录中建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略.

具体步骤
在/etc/log/alert.log建立的基础上继续创建 vi /etc/logrotate.d/alert
为了保证日志不会被误删除,提前先加上锁,chattr +a /var/log/alert.log,并在文件下编辑

日志管理

logrotate命令

-v 显示日志轮替过程

-f 强制进行日志轮替

具体实现:logrotate -vf /etc/logrotate.conf(配置文件名)

C/S架构,远程收集日志

rsyslog 支持TCP和UDP

netstat

-a 列出所有网络连接

-n 以数字显示端口号

-p 显示进程信息(pid)

-t显示所有TCP协议

-u显示所有UDP协议

实验:

hostname可以查看主机名:修改主机名hostname client 和hostname server 之后执行bash

vim /etc/rsyslog.conf ,去掉注释,其中514指的是端口号

日志管理

修改完配置文件一定要重启服务或重新加载:system restart rsyslog

然后查看一下端口号看看服务是否启动:netstat -anupt | grep :514

修改客户端的配置文件vim /etc/rsyslog .conf,并修改内容,此时存入的目标文件位置改成@192.168.1.10:514(UDP服务)或者@@192.168.1.10:514(TCP服务)

日志管理

保存退出重启服务:systemctl restart rsyslog

在服务端查看日志tail -f /var/log/messages可以清楚的看出服务端主机名转化为客户端

日志管理

在客户端上logger "hello" 可以在服务端命令行看到

日志管理

journalctl日志查看(系统重启失效)

systemd-journald用来管理日志

journalctl -xe 用于查看服务的错误日志

journaclt -n m查看系统最新m条日志

日志管理

journalctl -p err(系统日志级别)根据日志级别查看日志

选项种类

日志管理

日志管理

journalctl _PID=1 --since today 查看指定进程的日志

journalctl --disk-usage显示日志占据硬盘空间

日志管理

journalctl -f 实时监控服务日志

按照时间查看--since和--until

journalctl --since="2012-10-30 18:17:16"

journalctl --since "20 min ago"

journalctl --since yesterday

journalctl --since="2012-10-30 18:17:16" --until="2020-10-30 18:18:15" 指定查看时间区间日志信息

journalctl --since 09:00 --until "1 hour ago"

journalctl --since"15:15" --until now

日期格式:date +"%Y-%m-%d %H:%M:%S"

日志管理

日志管理

时间探讨:

%s显示时间戳(从1970年1月1日到现在过了多少秒)

日志管理

%y只显示年份的后两位

日志管理

%D显示月/日/年

日志管理

%h中文显示月份

日志管理

发布者:LJH,转发请注明出处:https://www.ljh.cool/35631.html

(0)
上一篇 2023年4月20日 上午1:47
下一篇 2023年4月20日 上午2:14

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 13.01hesv9fvm5gz2jhadf4xvcvfg@mail5u.xyz
    13.01hesv9fvm5gz2jhadf4xvcvfg@mail5u.xyz 2023年11月13日 下午4:32

    ipsa assumenda velit in perferendis iste delectus. quo aut at ut non doloremque velit consequatur assumenda repudiandae rerum. et ut provident a dolorem aspernatur commodi repellendus nisi quia aperia