12.Linux系统的拍错必备方法——日志分析

       生活中的日志是记录你生活的点点滴滴,让它把你内心的世界表露出来,更好的诠释自己的内心世界。

而电脑里的日志可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。对于运维技术人员来说,日志毫

无疑问起着至关重要的作用。

1.查看系统中的日志   rsyslog

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

2.rsyslog的日志文件目录

/var/log/messages  ## 服务信息日志
  /var/log/secure        ## 系统登陆日志
/var/log/cron           ## 定时任务日志
/var/log/maillog       ## 邮件日志
/var/log/boot.log     ## 系统启动日志

3.日志管理服务

1) rsyslog    

   ## 负责采集日志和分类存放日志

2) 日志分类   

    vim /etc/rsyslog.conf                     ##配置文件

什么类型的日志.什么级别的日志        /存放文件

                *.*                                       /var/log/westos

服务类型有:

authpam产生的日志
authprivssh.ftp等登录信息的验证信息
cron 时间任务相关
kren内核
lpr打印
mail 邮件
mark(syslog)-re=rsyslog 服务内部的信息,时间标识
news新闻组
user用户程序产生的相关信息
uucpunix to unix copy,unix主机之间相关的通讯
local 1~7自定义的日志设备


 日志的级别有:

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

   注意:1.每次配置完文件后,一定要重启服务才能生效!!

systemctl restart rsyslog.service   ##重启日志服务

           2.从上到下,级别从低到高,记录的信息越来越少

           3.详细的可以查看手册:man  3  syslog

e.g.我们查看配置文件中原有的日志项目

3)日志的远程同步

日志的同步要在发送和接收两端同时设定

a.发送端配置

vim /etc/rsyslog.conf    ##配置日志采集文件

将所有类型所有级别的日志同步到ip地址为172.25.254.222的主机中,

@ip表示采用UDP的传输协议同步,@@表示采用TCP的方式传输协议进行同步

b.接收端配置

vim /etc/rsyslog.conf    ##配置日志采集文件

去掉15、16行的注释符

如果采用TCP传输协议同步,需要去掉19、20行的注释符

重启日志服务,关闭防火墙,使配置生效

systemctl restart rsyslog.service      ##重启日志服务
systemctl stop firewalld.service       ##关闭防火墙
systemctl disable firewalld.service    ##关闭防火墙开机自启

为了让我们实验结果更为清晰,我们清空日志内容,并指定日志内容,分别在接收端额发送端查看

> /var/log/messages    ##清空日志文件
logger test          ##指定文件test到日志中

4.日志采集格式的设定

配置的文件还是  /etc/rsyslog.conf

 vim /etc/rsyslog.conf     ##打开配置文件,设定采集格式

 可以设定的格式内容有:

%timegenerated%显示日志时间
%FROMHOST-IP%显示主机ip
 %syslogtag%显示记录目标
%msg%日志内容
\n 换行

例如:

$template LOCFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg% \n"
##  LOGFMT可以自定义,但必须是大写字母 
*.info;mail.none;authpriv.none;cron.none          /var/log/messages;LOCFMT
##定义之后要在相应的采集文件后面添加指定的文件采集格式

systemctl restart rsyslog.service 
##重启日志服务,使配置文件生效

测试:

发送端:

接收端:

5.时间同步服务

服务名称 : chronyd

服务端:

配置文件   /etc/chrony.conf

vim  /etc/chrony.conf   ##打开时间同步配置文件,配置相关参数

1)允许指定ip或者网络位相同的的客户端来同步本机时间

2)设定服务端的时间优先级为10(本机不同步任何主机的时间,本机作为时间源)

客户端:

配置文件   /etc/chrony.conf

配置内容为:

server  172.25.254.222  iburst  ##本机立即同步222主机的时间

配置完毕后,重启服务

systemctl restart chronyd.service   ##重启时间同步服务

测试:

1)更改服务端的时间,发现客户端的时间被同步更改

2)查看时间源,可以看到同步的时间来源

##可以看到时间源中Source mode=server;IP为所同步的服务器的IP

6.timedatectl 命令 

timedatectl                                      ##管理系统时间
timedatectl status                               ##显示当前时间信息
timedatectl set-timezone "Asia/Shanghai"         ##设置当前时区,更改当前时区分为东8区
 timedatectl set-time "2016-08-08 12:12"         ## 设置当前时间
timedatectl set-local-rtc 0/1                    ##设置是否使用utc时间
timedatectl list-timezones                       ##查看支持的时区

 timedatectl                                      ##管理系统时间

1)  timedatectl status                               ##显示当前时间信息


2) timedatectl set-timezone "Asia/Hong_Kong"         ##设置当前时区,更改当前时区为香港的时区


3) timedatectl set-time "2019-02-07 12:12"         ## 设置当前时间


4)timedatectl set-local-rtc 0/1                    ##设置是否使用utc时间


5)timedatectl list-timezones                       ##查看支持的时区

7.查看内存中的日志  journalctl

journalctl -n 5                   ##查看最近5条日志
journalctl -p err                 ##查看错误日志
journalctl -o verbose             ##查看日志的详细参数
journalctl --since "**:**"        ##查看从**:**开始的日志
journalctl --until "**:**"        ##查看到**:**为止的日志

1)journalctl -n 5                   ##查看最近5条日志


2) journalctl -p err                 ##查看错误日志

3) journalctl -o verbose             ##查看日志的详细参数

4) journalctl  --since  "00:00"        ##查看从00:00开始的日志

5) journalctl  --until  "00:02"        ##查看到00:02为止的日志

需要注意的是,默认systemd-journald(内存中的日志)不保存到硬盘中,

所以关机后再次开机只能看到本次开机之后的日志,上一次关机之前的日志是无法查看的

那么如何使用systemd-journald保存系统日志?

使用下列命令可以保存系统日志(一般情况下不建议使用):

mkdir /var/log/journal                 ##新建一个存放目录
chgrp systemd-journal /var/log/journal ##指定目录的所有组为systemd-journal
chmod g+s /var/log/journal             ##给用户所有组权限
killall -l systemd-journald            
ls /var/log/journal                    
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817  
reboot                                 ##重启虚拟机
ls /var/log/journal                    
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817 

重启:

 查看日志:

可以看到重启前的日志依然存在

注意:这种方法不建议使用的原因是:当你把大量的日志信息保存到硬盘中,日积月累,你的硬盘会被不断填充,最后导致系统不能正常运行。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值