Linux 自动化部署Rsyslog服务

Posted 雨中落叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Linux 自动化部署Rsyslog服务的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog客户端自动部署脚本,经测试使用正常

Rsyslog+Loganalyer+MySQL下部署日志服务器

管理多台Linux服务器的系统日志

Rsyslog+LogAnalyzer+MySQL部署日志服务器

利用rsyslog+mysql+loganalyzer部署日志服务器

rsyslog+loganalyzer+mysql部署日志服务器