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+Loganalyer+MySQL下部署日志服务器
Rsyslog+LogAnalyzer+MySQL部署日志服务器