linux日志转储及脚本操作

74 篇文章 0 订阅
68 篇文章 0 订阅

日志转储

假设目前有两台主机:

server发送日志
client(lockey)接受日志并对日志进行处理
1.发送方的日志系统配置
  • vim /etc/rsyslog.conf
    在文件中包含 RULES 关键字的部分或者文件尾部添加以下内容

    *.*  @172.25.254.236
    
    *.*表示所有类型的所有级别的日志
    @172.25.254.236表示将日志通过UDP协议转储到主机172.25.254.236中
    
  • 重新启动日志系统服务

    systemctl restart rsyslog
    
2.接受方的日志系统配置
  • vim /etc/rsyslog.conf

    #Provides UDP syslog reception,
    $ModLoad imudp
    #表示开启日志接受的插件
    $UDPServerRun 514
    表示日志接受的UDP端口
    
  • 关闭系统的防火墙设置或者让日志转发服务能够通过

    systemctl stop firewalld
    #关闭防火墙
    
  • 重新启动日志系统服务

    systemctl restart rsyslog
    #关闭之后确认一下防火墙的状态
    

这里写图片描述

3.在发送方产生日志,监控接收方的接收情况,可以看到当发送方产生一条日志的时候,接收方就会显示出来
日志监控的命令:
tail -f /var/log/message

这里写图片描述

配置针对不同类型日志要运行的脚本程序

本示例脚本运行在接收端,即转储的日志也可以触发脚本事件,当然本机日志也是可以的

基本配置
*.* ^脚本的路径  #格式

示例配置
##表示对于产生的local3类型的所有级别的日志运行/tmp/log.sh脚本
local3.*    ^/tmp/log.sh        # ^号后跟可执行脚本或程序的绝对路径
                # 日志内容可以作为脚本的第一个参数.
                #  可用来触发报警

这里写图片描述

#!/bin/bash

if [ -f /tmp/test.txt ]
then
echo 'file exist' >>/tmp/test.txt
sed '/root/w /tmp/test.txt' /var/log/messages
else
touch /tmp/test.txt
fi
##脚本的作用是如果产生了一个local3类型的日志就判断是否存在文件test.txt,如果不存在则创建,如果存在则过滤出日志中含有root关键字的行保存到 /tmp/test.txt中
运行结果
1.当我们产生普通日志时只显示日志信息,脚本并没有执行;

当我生成一个local3.info日志时脚本执行,创建了一个名为test.txt的文件,接下来我们监控文件内容变化
这里写图片描述

2.监控生成的文件内容被脚本改变

tail -f test.txt

这里写图片描述

从上边的结果我们可以看到当脚本创建了文件之后如果继续产生local3.info日志,日志信息就会被过滤写入test.txt中去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值