linux中查日志的d啥命令,Linux系统中的日志管理 ---systemd-journald日志(journalctl命令的用法)和 rsyslog 日志(自定义日志采集路径、更改日志采集格式和日...

一、实验环境

1 | yxy.westos.com : 172.25.254.10

2 | lww.westos.com : 172.25.254.20

3 | yxy.westos.com & lww.westos.com : systemctl stop firewalld.service ##关闭火墙

二、systemd-journald

1.systemd-journald

服务名称:systemd-journald.service

systemd-journald可移植性高,资源消耗少、结构简单、可扩展、安全性高等优点。

安全性之所以高是因为此程序只负责对日志进行查看而不能对日志进行保存和采集,那么关机后再开机(重启),只能查看到开机后的日志,因为系统之前的日志是保存在内存中的,所以关机后就被清空了,那么再开机时用journalctl是看不到的之前的日志信息的。

命令:journalctl

默认日志存放路径: / run / log

2. journalctl命令的用法

1 | journalctl

2 |-n 3 ##日志的最新3条

3 |--since "2020-06-01 12:00:00" ##显示12:00后的日志

4 |--until "2020-06-01 12:10:00" ##显示日志到12:10

459d73ebf846d5440a72e4286b8091c5.png

1 | journalctl

2 | -o##设定日志的显示方式

3 |short 经典模式显示日志

4 |verbose 显示日志的全部字节

5 | export 适合传出和备份的二进制格式

6 | json js格式显示输出

fdac74697d4b509c6f1c7fb3b9a2d03e.png

57581a656fcdebef8e98e1b03b83dbe0.png

9d0a91e5dbe782e3ae3a336371b8e223.png

1 | journalctl

2 | -p ##显示制定级别的日志

3 |#0 emerg 系统的严重问题日志

4 |#1 alert 系统中立即要更改的信息

5 |#2 crit 严重级别会导致系统软件不能正常工作

6 |#3 err 程序报错

7 |#4 warning 程序警告

8 |#5 notice 重要信息的普通日志

9 |#6 info 普通信息

10|#7 debug 程序拍错信息

f4bf8aa6d74aa4eae6810919bf5696ad.png

1 | journalctl

2 | -F PRIORITY ##查看可控日志级别

3 |-u sshd ##指定查看服务

4 |--disk-usage ##查看日志大小

5 |--vacuum-size=1G ##设定日志存放大小

6 |--vacuum-time=1W ##日志在系统中最长存放时间

7 |-f ##监控日志

add834ae7c8cd07e7ffb1c33f14e3b84.png

9727379bea5b59e4ae2c430a0b902839.png

1 | journalctl _TRANSPORT=kernel ##直接查看该程序产生的日志

2 | journalctl _PID=*** ##直接查看PID为**的程序产生的日志

ca7667954cce1286f9929b55f7ac2278.png

af098bc71f26f1731242cbe3c1eed9c3.png

3.用journald服务永久存放日志

系统中默认日志在:/run/log/journal中

1 | 默认方式在系统重启后日志会被清理要永久保存日志请完成以下操作:

2 | mkdir /var/log/journal

3 | chgrp systemd-journal /var/log/journal ##更改目录的所有组

4 | ##/var/log/journal/中的日志信息只能被systemd-journal组所识别

5 | chmod 2775 /var/log/journal

6 | ##使在/var/log/journal目录中出现的文件的所有组自动归属于该目录的所有组

7 | systemctl restart systemd-journald.service

8 | 当服务重启日志存放路径会被制定到:/var/log/journal

3489d5325b3c6eb37c6d4cc0a157f278.png

测试:

1.在操作以上步骤之前查看日志

2.重启系统

3.再次查看日志

4.可以看到日志是不会被保存下来的只能看到重启之后的日志

5.完成以上操作后再次重启系统可以看到日志是被保存下来

三、rsyslog日志

Linux内核由很多的子系统组成,包含网络、文件访问、内存管理等,子系统需要给用户传送一些消息,这些消息内容包括消息的重要来源以及重要性等,所有这些子系统都要把消息传送到一个可以维护的公共消息区,于是产生了rsyslog。

1.日志类型

1 | auth #用户认证日志(登录日志)

2 | authpriv #服务认证日志(sshd认证)

3 | cron #时间任务日志(定时任务日志)

4 | kern #内核类型日志

5 | mail #邮件日志

6 | news #系统更新信息日志

7 | user #用户相关程序日志

8 | local 1-7 #用户自定义日志

2.日志级别

1 | debug #程序排错信息

2 | info #程序常规运行信息

3 | notice #重要信息的普通日志

4 | waring #程序警告

5 | err #程序报错

6 | crit #严重级别会导致系统软件不能正常工作

7 | alert #系统中立即要更改的信息

8 | emerg #系统的严重问题日志

9 | none #不采集

3.系统常用日志存放

1 | /var/log/messages #系统服务日志,常规信息,服务报错

2 | /var/log/secure #系统认证信息日志

3 | /var/log/maillog #系统邮件日志信息

4 | /var/log/cron #系统定时任务信息

5 | /var/log/boot.log #系统启动日志信息

6 | 配置文件:/etc/rsyslog.conf

4.自定义日志采集路径

1 | vim /etc/rsyslog.conf

2 | 日志类型.日志级别 日志存放路径

3 | *.* /var/log/westos ##把系统中所有级别的日志存放到westos中

4 | *.*;authpriv.none /var/log/westos ##把系统中所有级别的日志存放到westos中

##但是authpriv不存放到westos中

06aa787f9a8bce10a237432fafac6697.png

5.如何更改日志采集格式

<1> 定义日志采集格式

1 | vim /etc/rsyslog.conf ##找默认采集格式 use default 在之后添加采集格式

2 | $template WESTOS_FORMAT, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag%

3 | %msg%\n"

4 | #WESTOS_FORMAT: 格式名称

5 | #%FROMHOST-IP%: 日志来源主机IP

6 | #%timegenerated%: 日志生成时间

7 | #%syslogtag%: 日志生成服务

8 | #%msg%: 日志内容

9 | #\n: 换行

<2> 设定日志采集格式应用

1 | *.*;authpriv.none /var/log/westos;WESTOS_FORMAT

2 | module(load="builtin:omfile" Template="WESTOS_FORMAT") ##默认采用WESTOS_FORMAT格式

8ac9dfc7921cc6544d2eb40ccc1bee6c.png

<3>操作流程

1 | vim /etc/rsyslog.conf

2 | 完成<1><2>操作

3 | > /var/log/messages ##清空messages中的日志

4 | > /var/log/westos ##清空Westos中的日志

5 | systemctl restart rsyslog.service ##重启服务

6 | tail -n 1 /var/log/messages##查看日志最后一行,格式是默认格式

7 | tail -n 1 /var/log/westos##查看日志最后一行,格式是定义的格式WESTOS_FORMAT

a063f65dc69f9c5e341ebb572e927dd6.png

6. 日志的远程同步

lww.westos.com:                172.25.254.20    存放日志作为日志接受端,所有人日志都存放到此台主机

yxy.westos.com:                 172.25.254.10     发送日志到westos_node1主机

<1>在lww中设定接受所有人的日志

1 | systemctl stop firewalld.service ##关闭火墙

2 | vim /etc/rsyslog.conf

3 | 19 module(load="imudp") ##打开日志接受插件

4 | 20 input(type="imudp" port="514") ##指定插件使用接口

5 | systemctl restart rsyslog.service

6 | 查询端口 在[root@lww ~]# ss -antlupe | grep rsyslog (netstat -antlupe |grep rsyslog

)

5f666ef7990a213b5e9a02b42987318a.pngc413675fef26ce03f2bd69d388a8d535.png

<2>yxy中设定发送日志到lww中

1 | vim /etc/rsyslog.conf

2 | *.* @172.25.254.20

3 | systemctl restart rsyslog.service ##重启服务

4 |## @ 表示使用udp传输日志

5 |## @@ 表示使用tcp传输日志

6 |## @172.25.254.20 把本机日志用udp的传输方式发送到172.25.254.20主机

29983a45f12ad94ecffc68de6b3c2ad7.png

<3>测试

1 | 完成上面两步操作后

2 | 在yxy和lww中

3 | > /var/log/messages

4 | 在yxy中

5 | logger westos test message

6 | 在lww中可以看到yxy中生成的日志!!

4ea0614790b3c1745e2cc69e9c850e16.png

64b4de1673ce998cecae7a2638feeb82.png

注意:以上实验模式经常清空日志,在实际中操作切忌请勿随便清空

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值