源码如下:
#/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
原文地址:https://www.cnblogs.com/yuzly/p/10568292.html