linux---日志的采集和远程同步

日志是可以直接看出系统中的错误,日志在内存里,由服务决定

1.日志采集规则

*.*     文件名称
日志类型.日志级别     日志存放文件


#日志类型

auth       #用户登陆日志(pam生产日志)

authpriv #服务认证日志(sshd认证)
kern       #内核日志
cron       #定时任务日志
lpr         #打印机日志
mail       #邮件日志
news      #新闻
user       #用户相关程序日志
local      #用户自定义日志

#日志级别
debug     #系统调试信息
info         #常规信息
warning  #警告信息
err          #报错(级别低,阻止了某个功能不能正常工作)
crit         #报错(级别高,组织整个软件或整个系统不能正常工作)
alert       #需要立即修改信息
emerg    #内核崩溃

none      #不采集任何日志信息

例如:

auth.debug   /var/log/westos     #将用户登陆的调试信息放到/var/log/westos
auth.*                                     

*.*         /var/log/log.all              #将所有日志的所有调试信息放到/var/log/log.all

#系统常用日志
/var/log/messages   #所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog    #邮件日志
/var/log/crog       #定时任务日志
/var/log/secure     #服务认证日志

实验步骤:
vim   /etc/rsyslog.conf          ##查看并修改采集日志文件配置,为了让我们把日志采用到指定位置

        *.*       /var/log/westos     #将所有日志的所有调试信息放到/var/log/westos(这个文件会自动生成)


ls   /var/log/westos
systemctl  restart  rsyslog.service     #重启rsyslog系统

cat   /var/log/westos 


2.日志的远程同步

   做实验前要清空其它没有的数据,以防出错

  > /var/log/messages    #清空日志

  >  /etc/rc.d/rc.local  #清空虚拟机一直产生的日志和脚本

实验步骤:

这个实验中自定义发送方和接受方,只要自己能记住就可以,但是千万不能混乱,可以用“ifconfig”查看IP

##在日志发送方

vim   /etc/rsyslog.conf

*.*    @172.25.254.128        #将所有日志的所有调试信息发送到接收方地址


systemctl  restart  rsyslog.service   #重启rsyslog服务器

systemctl  restart  sshd.service  #重启后在接收方才可以看到日志


##在日志接收方
vim /etc/rsyslog.conf
  15  $ModLoad imudp  #打开插件
  16  #$UDPServerRun 514  #打开插件接口

systemctl restart rsyslog.service  
systemctl stop firewalld      #关闭防火墙 

systemctl disable firewalld   #关闭防火墙对接收的屏蔽

cat  /var/log/messages      #查看从发送方发送过去的日志  

注意:1.更改完配置文件后一定要“systemctl restart rsyslog.service”重启服务器,否则后面的操作毫无意义

         2.一定要在接受方关闭防火墙,否则会对外来发送方发送的日志进行屏蔽


3.定义日志采集格式

$template 格式名称,“日志采集格式”

*.info;mail.none;authpriv.none;cron.none                /var/log/messages;格式名称

*.info;mail.none;authpriv.none;cron.none                /var/log/messages;westos


$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n" (在rules下写)
%timegenerated%  #日志生成时间
%FROMHOST-IP%    #日志来源主机的IP
%syslogtag%             #日志生成程序
%msg%                    #日志内容
\n                             #换行

实验步骤:

尽可能在接收方:vim  /etc/rsyslog.conf



4.journalctl

                      ##日志查看工具,直接查看内存中的日志
journalctl  -n  3    ##查看最近日志的前三行
journalctl  -p  err  ##查看日志中的错误
journalctl  -f       ##用户ctrl+c结束监控
journalctl  --since  时间点   --until  时间点
journalctl -o verbose   ##查看日志详细参数   例如:_PID=651  journalctl _PID=651

实验步骤:

systemctl status sshd   ##查看pid


systemctl restart sshd       ##重开启一个sshd,每重启一次PID就会不一样

journalctl -o verbose         在这里面找想看到的PID(用/_PID找关键字)


journalctl _PID=1255   ##查看PID=1255的日志


5.对systemd-journald管理

默认此程序只负责对日志进行查看而不对日志进行保存和采集

那么关机后再开机,对日志进行查看,只能查看到开机后的日志

系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到


如何让systemd-journald保存日志到硬盘中
mkdir /var/log/journal
chown  root.systemd-journal  /var/log/journal     ##更改文件所有人
chmod  g+s /var/log/journal     ##在目录中创建的文件都自动归属到目录所在组
killall -1 systemd-journald 

journalctl -n 3     ##查看日志前三行内容
date                    ##查看现在的时间
reboot                 ##退出系统
ssh [email protected]    ##再次连接

journalctl          ##查看日志


现在可以看到关机前的内容,这是因为把这些日志都保存到了硬盘里。就算关机重启日志也不会清空


6.时间同步

在服务器端共享时间:
vim /etc/chrony.conf
   29 local stratum 10   ##开启时间共享功能并设定共享级别
                                 ##这个参数开启后本机不去同步别人的时间到本机

   22 allow 172.25.254.0/24 ##允许那些客户端来访问本机共享的时间


systemctl restart chronyd    ##重启chronyd

在客户端:
vim /etc/chrony.conf

server 172.25.254.128 iburst   ##更改时的地址是服务端的地址

更改为

systemctl restart chronyd

chronyc sources -v

结果:


如果出现“^* ”就说明试验成功,已经和172.25.254.128的时间同步

7.时间修改

实验步骤:

timedatectl  list-timezones  ##查找所有时区时间
timedatectl  set-timezone Asia/Shanghai    ##修改时间为上海时间
timedatectl                  ##查看时间

date


timedatectl set-local-rtc 0   ##使用UTC时间

vim  /etc/adjtime


timedatectl set-local-rtc 1    ##使用当地时间

vim  /etc/adjtime


timedatectl set-time  “2018-11-11 11:11:11”    ##修改时间



猜你喜欢

转载自blog.csdn.net/argued_d/article/details/79943877