• Linux 自动化部署Rsyslog服务


    Linux 自动化部署Rsyslog服务

    源码如下: 

    #/bin/bash
    #该脚本用于自动化部署Ryslog服务配置
    #作者:雨中落叶
    #博客:https://www.cnblogs.com/yuzly/
    echo "****************************
    1.部署Rsyslog服务器
    2.部署Rsyslog客户端
    ****************************"
    read -p "请输入部署选项:" Num
    case $Num in
    1)
      #部署服务端
      echo "****************************
      1.UDP传输方式
      2.TCP传输方式
      3.RELP传输方式
      ****************************"
      read -p "请选择传输方式:" N
      #关闭防火墙,避免影响实验
      service iptables stop &>/dev/null
      setenforce 0 &>/dev/null
      case $N in
      1)
        #修改配置文件,启用udp传输方式
        alterudp1=$(grep imudp  /etc/rsyslog.conf)
        alterudp2=$(grep UDPServerRun /etc/rsyslog.conf)
        #“"#"字符串截取,截取#右边的字符
        sed -i "s/$alterudp1/${alterudp1##*}/" /etc/rsyslog.conf
        sed -i "s/$alterudp2/${alterudp2##*}/" /etc/rsyslog.conf
        listen=$(grep YSLOGD_OPTIONS  /etc/sysconfig/rsyslog |awk -F= '{print $2}')
         #转义空格以及特殊字符
         sed -i "s/$listen/"-r514 -c2"/" /etc/sysconfig/rsyslog
         service rsyslog restart &>/dev/null
      ;;
      2)
        #修改配置文件,启用tcp传输方式
        altertcp1=$(grep imtcp /etc/rsyslog.conf)
        altertcp2=$(grep InputTCPServerRun /etc/rsyslog.conf)
        sed -i "s/$altertcp1/${altertcp1##*}/" /etc/rsyslog.conf
        sed -i "s/$altertcp2/${altertcp2##*}/" /etc/rsyslog.conf
        listen=$(grep YSLOGD_OPTIONS  /etc/sysconfig/rsyslog |awk -F= '{print $2}')
         sed -i "s/$listen/"-r514 -c2"/" /etc/sysconfig/rsyslog
         service rsyslog restart &>/dev/null
     
      ;;
      3)
        #修改配置文件,启用relp传输方式
        n=$(rpm -qa rsyslog-relp | wc -l)
        #根据返回的行数来判断是否安装rsyslog-relp服务
        if [ $n -eq 0 ]
        then
          echo "当前系统没有安装rsyslog-relp服务,正在安装,请稍等....."
          mount /dev/sr0 /mnt &>/dev/null
          #搭建本地yum仓库
          cd /etc/yum.repos.d
          cat >>yuzly.repo<<OK
    [yuzly]
    name=yuzly
    baseurl=file:///mnt
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    OK
    #cat 输入到文件的定界符结束符要顶格
         #清空yum缓存
         echo "正在清除yum缓存...."
         yum clean all &>/dev/null
         yum makecache &>/dev/null
         echo "yum缓存清除结束!"
         yum install rsyslog-relp -y &>/dev/null
         echo "rsyslog-relp服务安装完成!"
         #由于配置文件没有关于relp的配置,这里直接追加到文件的末尾
         echo '$ModLoad imrelp'>>/etc/rsyslog.conf
         echo '$InputRELPServerRun 2514'>>/etc/rsyslog.conf
         listen=$(grep YSLOGD_OPTIONS  /etc/sysconfig/rsyslog |awk -F= '{print $2}')
         sed -i "s/$listen/"-r2514 -c2"/" /etc/sysconfig/rsyslog
         service rsyslog restart &>/dev/null
    
        else
          echo '$ModLoad imrelp'>>/etc/rsyslog.conf
          echo '$InputRELPServerRun 2514'>>/etc/rsyslog.conf
         listen=$(grep YSLOGD_OPTIONS  /etc/sysconfig/rsyslog |awk -F= '{print $2}')
         sed -i "s/$listen/"-r2514 -c2"/" /etc/sysconfig/rsyslog
         service rsyslog restart &>/dev/null
        fi
      ;;
      *)
       echo "输入错误,请输入相应的数字!"
      ;;
      esac
    ;;
    2)
      #部署客户端
      echo "****************************
      1.UDP传输方式
      2.TCP传输方式
      3.RELP传输方式
      ****************************"
      read -p "请选择传输方式:" N
      #关闭防火墙,避免影响实验
      service iptables stop &>/dev/null
      setenforce 0 &>/dev/null
      case $N in
      1)
       read -p "请输入服务端的IP地址:" IP 
       echo "*.* @$IP">>/etc/rsyslog.conf
       service rsyslog restart
      ;;
      2)
       read -p "请输入服务端的IP地址:" IP
       echo "*.* @@$IP">>/etc/rsyslog.conf
       service rsyslog restart
      ;;
      3)
       n=$(rpm -qa rsyslog-relp | wc -l)
       #根据返回的行数来判断是否安装rsyslog-relp服务
       if [ $n -eq 0 ]
       then
          echo "当前系统没有安装rsyslog-relp服务,正在安装,请稍等....."
          mount /dev/sr0 /mnt &>/dev/null
          #搭建本地yum仓库
          cd /etc/yum.repos.d
          cat >>yuzly.repo<<OK
    [yuzly]
    name=yuzly
    baseurl=file:///mnt
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    OK
         #清空yum缓存
         echo "正在清除yum缓存...."
         yum clean all &>/dev/null
         yum makecache &>/dev/null
         echo "yum缓存清除结束!"
        yum install rsyslog-relp -y &>/dev/null
         echo "rsyslog服务安装完成!"
         #输入服务端的IP
         read -p "请输入服务端的IP地址:" IP
         echo '$ModLoad omrelp' >>/etc/rsyslog.conf
         echo "*.*  :omrelp:$IP:2514">>/etc/rsyslog.conf
         service rsyslog restart
      else
         #输入服务端的IP
         read -p "请输入服务端的IP地址:" IP
         echo '$ModLoad omrelp' >>/etc/rsyslog.conf
         echo "*.*  :omrelp:$IP:2514">>/etc/rsyslog.conf
         service rsyslog restart
      fi
      ;;
       *)
         echo "输入错误,请输入相应的数字!"
       ;;
      esac
    ;;
    *)
    echo "输入错误,请输入相应的数字!"
    ;;
    esac

    1.在服务端运行部署脚本,选择部署Rsyslog服务器,选择UDP传输方式   #服务器脚本端部署完之后,可以看相应的配置文件是否修改,这里省略了

     

    2.在客户端运行部署脚本,选择部署Rsyslog客户端,选择UDP传输方式,注意选择传输方式时必须与服务器端的传输方式相同

    3.在客户端输入一条测试命令,

    在客户端生成一条日志,看服务器是否接受到这个日志

      

    4.在服务器端用tail -f /var/log/messages追踪日志,下图可以看到,接受到服务端生成的日志

     

    5. 在服务端运行部署脚本,选择部署Rsyslog服务器,选择TCP传输方式

    6. 在客户端运行部署脚本,选择部署Rsyslog客户端,选择TCP传输方式 

    7.在客户端生成一条日志,看服务器是否接受到这个日志

     

    8.在服务器端用tail -f /var/log/messages追踪日志,下图可以看到,接受到服务端生成的日志

    9.在服务端运行部署脚本,选择部署Rsyslog服务器,选择RELP传输方式  

    10.在客户端运行部署脚本,选择部署Rsyslog客户端,选择RELP传输方式 

    11.在服务器端用tail -f /var/log/messages追踪日志,下图可以看到,接受到服务端生成的日志

    12.在客户端生成一条日志,看服务器是否接受到这个日志

     

    --------------------------------------------------------------------------------------------------------------

    Linux Rsyslog日志集中管理 https://www.cnblogs.com/yuzly/p/10573962.html

  • 相关阅读:
    利用Python编写简单的Web静态服务器(TCP协议)
    UDP-TCP介绍与区别
    Linux基本知识-命令
    Python中多线程与join()的应用
    Python实例---对一组含有四则运算,括号,空格的字符串进行计算
    分组查询注意事项
    oracle分页查询
    springMVC文件上传配置
    ssm网站页面乱码问题解决
    redis-server.exe闪退
  • 原文地址:https://www.cnblogs.com/yuzly/p/10568292.html
Copyright © 2020-2023  润新知