日志文件记录了时间,地点,人物,事件四大信息,故系统出现故障时,可以查询日志文件。
系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。
日志文件的重要性主要体现在以下三方面:
解决系统方面的错误解决网络服务的问题过往事件记录日志文件的权限通常是设置为root能够读取而已。由于日志文件可以记载系统很多的详细信息,所以一个有经验的主机管理员会随时随地查阅自己的日志文件,以掌握系统的最新动态。
注意:系统断电没日志。
日志作用权重/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)在centos6和7中,系统日志服务已经由原来的syslog变成了rsyslog,rsyslog相比syslog具有一些新的特点:
基于TCP网络协议传输日志信息;更安全的网络传输方式;有日志消息的及时分析框架;后台数据库;配置文件中可以写简单的逻辑判断;与syslog配置文件相兼容。此服务是用来采集系统日志的,它本身不产生日志,只是起到采集的作用。
多线程
支持UDP, TCP, SSL, TLS, RELP
支持MySQL, PGSQL, Oracle实现日志存储
强大的过滤器,可实现过滤记录日志信息中任意部分
自定义输出格式
这里以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.配置文件中的格式:
cron.* /var/log/cron 什么类型的日志.什么级别的日志 日志采集路径注意:从上到下,级别从低到高,记录的信息越来越少
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 ##设定火墙开机关闭查看最近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的是日志信息ELK:elasticsearch, logstash, kibana(日志分析系统,三款开源产品名称的首字母集合)
Elasticsearch是个开源分布式搜索引擎Logstash对日志进行收集、分析,并将其存储供以后使用kibana 可以提供的日志分析友好的Web界面非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene由于篇幅原因,elk另行讲解。