(三)Linux-系统日志的总结

tech2022-09-11  105

Linux-系统日志简介

1、日志的介绍

日志文件记录了时间,地点,人物,事件四大信息,故系统出现故障时,可以查询日志文件。

系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。

2、日志的重要性体现

日志文件的重要性主要体现在以下三方面:

解决系统方面的错误解决网络服务的问题过往事件记录

日志文件的权限通常是设置为root能够读取而已。由于日志文件可以记载系统很多的详细信息,所以一个有经验的主机管理员会随时随地查阅自己的日志文件,以掌握系统的最新动态。

注意:系统断电没日志。

3、系统中常见的日志

日志作用权重/var/log/cron定时任务日志了解/var/log/cups记录打印信息的日志了解/var/log/dmesg记录了系统开机时内核的自检信息了解/var/log/btmp记录错误登录的日志,这个文件是二进制文件,只能通过命令lastb命令查看。重点/var/log/lastlog记录系统中所有用户最后以此的登录时间的日志,这个文件是二进制文件,只能通过命令lastlog命令查看。重点/var/log/messages记录系统重要信息的日志。这个日志文件中会记录linux系统的绝大多数重要的信息,如果系统出现问题时,首先要检查的就应该是这个日志文件重点/var/log/secure记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。例如系统的登录,ssh登录,su切换,sudo授权,政治添加用户和修改用户密码都会记录在这个日志文件中。重点/var/log/maillog记录邮件日志了解/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi打开,而需要last命令来查看。重点 [root@localhost ~]# lastb btmp begins Tue Sep 1 11:45:01 2020 [root@localhost ~]# last root pts/2 192.168.0.243 Thu Sep 3 07:35 still logged in root pts/2 192.168.0.243 Wed Sep 2 18:18 - 23:06 (04:48) root pts/1 192.168.0.253 Wed Sep 2 16:26 still logged in root pts/0 192.168.0.253 Wed Sep 2 14:05 still logged in root pts/0 192.168.0.253 Tue Sep 1 22:04 - 23:00 (00:55) root pts/0 192.168.0.253 Tue Sep 1 14:15 - 22:04 (07:48) root pts/0 192.168.0.253 Tue Sep 1 13:18 - 13:42 (00:24) root pts/1 192.168.0.253 Tue Sep 1 11:00 - 22:04 (11:04) root pts/0 192.168.0.253 Tue Sep 1 10:10 - 11:00 (00:50)

4、linux日志的服务

在centos6和7中,系统日志服务已经由原来的syslog变成了rsyslog,rsyslog相比syslog具有一些新的特点:

基于TCP网络协议传输日志信息;更安全的网络传输方式;有日志消息的及时分析框架;后台数据库;配置文件中可以写简单的逻辑判断;与syslog配置文件相兼容。

5、rsyslog服务的介绍

此服务是用来采集系统日志的,它本身不产生日志,只是起到采集的作用。

5.1 rsyslog特性

多线程

支持UDP, TCP, SSL, TLS, RELP

支持MySQL, PGSQL, Oracle实现日志存储

强大的过滤器,可实现过滤记录日志信息中任意部分

自定义输出格式

5.2 rsyslog的进程

[root@localhost ~]# ps aux |grep rsyslog root 927 0.0 0.5 258024 5784 ? Ssl 9月01 0:08 /usr/sbin/rsyslogd -n root 4749 0.0 0.0 112824 980 pts/2 R+ 07:37 0:00 grep --color=auto syslog

5.3 rsyslog的位置

[root@localhost ~]# which rsyslogd /usr/sbin/rsyslogd

5.4 rsyslog的版本

[root@localhost ~]# rpm -qf /sbin/rsyslogd rsyslog-8.24.0-52.el7.x86_64

5.5 rsyslog的软件信息

这里以rsyslog-8.24.0-52.el7.x86_64为例:

[root@localhost ~]# yum info rsyslog-8.24.0-52.el7.x86_64 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 已安装的软件包 名称 :rsyslog 架构 :x86_64 版本 :8.24.0 发布 :52.el7 大小 :1.9 M 源 :installed 来自源:base 简介 : Enhanced system logging and kernel message trapping daemon 网址 :http://www.rsyslog.com/ 协议 : (GPLv3+ and ASL 2.0) 描述 : Rsyslog is an enhanced, multi-threaded syslog daemon. It supports MySQL, : syslog/TCP, RFC 3195, permitted sender lists, filtering on any message part, : and fine grain output format control. It is compatible with stock sysklogd : and can be used as a drop-in replacement. Rsyslog is simple to set up, with : advanced features suitable for enterprise-class, encryption-protected syslog : relay chains.

5.6 rsyslog配置文件

vim /etc/rsyslog.conf ##rsyslog服务配置文件 systemctl restart rsyslog.service ##更改配置文件后需重启服务

5.7 日志采集格式的设定

vim /etc/rsyslog.conf $template NAME,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n" ##名字必须大写,参数之间可用'空格','|'等方式断开 *.info;masil.none;authpriv.none;cron.none /var/log/messages;NAME ##在需要用该格式的日志路径后面加;NAME 参数解释%timegenerated%显示日志时间%FROMHOST-IP%显示主机IP%syslogtag%日志记录目标%msg%日志内容\n换行

配置文件中的格式:

cron.* /var/log/cron 什么类型的日志.什么级别的日志 日志采集路径

5.8 日志的类型

auth ##pam产生的日志 authpriv ##ssh,ftp等登陆信息的验证信息 cron ##时间任务相关 kern ##内核 lpr ##打印 mail ##邮件 mark(syslog)-rsyslog ##服务内部的信息,时间标示 news ##新闻组 user ##用户程序产生的相关信息 uucp ##unix to unix copy,unix主机之间相关的通讯 local 1~7 ##自定义的日志设备

5.9 日志级别

debug ##有调试信息的,日志信息最多 info ##一般信息的日志,最常用 notice ##最具有重要性的普通条件的信息 warning ##警告级别 err ##错误级别,阻止某个功能或模块不能正常工作的信息 crit ##严重级别,阻止整个系统或整个软件不能正常工作的信息 alert ##需要立刻修改的信息 emerg ##内核崩溃等严重信息 none ##什么都不记录

注意:从上到下,级别从低到高,记录的信息越来越少

6、日志的远程同步

6.1 在日志发送方

vim /etc/rsyslog.conf 在文件中任意行加入 *.* @172.25.254.210 ##在*.*表示任意类型。任意级别 "@"表示UDP协议发送,“@@”表示TCP协议发送 systemctl restart rsyslong ##更改rsyslog.conf后需要重启服务才能生效

6.2 在日志接受方:

vim /etc/rsyslog.conf 14 # Provides UDP syslog reception ##UDP接口 15 $ModLoad imudp ##日志接收模块 16 $UDPServerRun 514 ##开启接收端口 systemctl restart rsyslog ##重启日志服务 systemctl stop firewalld ##关闭防火墙 systemctl disable firewalld ##设定火墙开机关闭

7、日志查看工具journalctl

查看最近3条日志

[root@localhost ~]# journalctl -n 3 -- Logs begin at 三 2020-09-02 04:55:07 CST, end at 四 2020-09-03 08:54:37 CST. -- 9月 03 08:54:37 localhost.localdomain kernel: device vethd42dd78 left promiscuous mode 9月 03 08:54:37 localhost.localdomain kernel: br-e0146cb93473: port 1(vethd42dd78) entered disabled state 9月 03 08:54:37 localhost.localdomain NetworkManager[660]: <info> [1599094477.3544] device (vethd42dd78): released from master device br-e0146cb lines 1-4/4 (END)

查看错误日志

[root@localhost ~]# journalctl -p err -- No entries --

常用实例:

journalctl --since "8:55" ##查看从什么时间开始的日志 journalctl --until "10:58" ##查看到什么时间为止的日志 journalctl -o verbose ##查看日志的详细参数 journalctl _PID=84 ##查看进程号为84的是日志信息

8、日志分析系统ELK

ELK:elasticsearch, logstash, kibana(日志分析系统,三款开源产品名称的首字母集合)

Elasticsearch是个开源分布式搜索引擎Logstash对日志进行收集、分析,并将其存储供以后使用kibana 可以提供的日志分析友好的Web界面非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene

由于篇幅原因,elk另行讲解。

最新回复(0)