Linux 自动化部署Rsyslog服务
Linux 自动化部署Rsyslog服务
源码如下:
#/bin/bash
#该脚本用于自动化部署Ryslog服务配置
#作者:雨中落叶
#博客:https://www.cnblogs.com/yuzly/
echo "****************************
.部署Rsyslog服务器
.部署Rsyslog客户端
****************************"
read -p "请输入部署选项:" Num
case $Num in
)
#部署服务端
echo "****************************
.UDP传输方式
.TCP传输方式
.RELP传输方式
****************************"
read -p "请选择传输方式:" N
#关闭防火墙,避免影响实验
service iptables stop &>/dev/null
setenforce &>/dev/null
case $N in
)
#修改配置文件,启用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
;;
)
#修改配置文件,启用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 ;;
)
#修改配置文件,启用relp传输方式
n=$(rpm -qa rsyslog-relp | wc -l)
#根据返回的行数来判断是否安装rsyslog-relp服务
if [ $n -eq ]
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=
gpgcheck=
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
;;
)
#部署客户端
echo "****************************
.UDP传输方式
.TCP传输方式
.RELP传输方式
****************************"
read -p "请选择传输方式:" N
#关闭防火墙,避免影响实验
service iptables stop &>/dev/null
setenforce &>/dev/null
case $N in
)
read -p "请输入服务端的IP地址:" IP
echo "*.* @$IP">>/etc/rsyslog.conf
service rsyslog restart
;;
)
read -p "请输入服务端的IP地址:" IP
echo "*.* @@$IP">>/etc/rsyslog.conf
service rsyslog restart
;;
)
n=$(rpm -qa rsyslog-relp | wc -l)
#根据返回的行数来判断是否安装rsyslog-relp服务
if [ $n -eq ]
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=
gpgcheck=
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服务的更多相关文章
- Linux 自动化部署DNS服务器
Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加 ...
- Linux自动化部署尝试
Linux自动化部署尝试 最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终 ...
- Linux简单部署svn服务
最近需要练习一下svn的命令行使用方法,以便编写自动化部署的脚本,但是不敢用正式的svn库进行练习,所以自己部署了一个svn服务,用来练习 1.安装svn server 我用的是ubuntu $apt ...
- Linux下部署Samba服务环境的操作记录
关于Linux和Windows系统之间的文件传输,很多人选择使用FTP,相对较安全,但是有时还是会出现一些问题,比如上传文件时,文件名莫名出现乱码,文件大小改变等问题.相比较来说,使用Samba作为文 ...
- Linux 自动化部署
1.pexpect Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Py ...
- 在linux上部署tomcat服务
在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...
- linux系统日志及其rsyslog服务
日志是系统用来记录系统运行时候的一些相关消息的纯文本文件 /var/log下保存着大量的纯文本日志文件 日志的目的是为了保持相关程序的运行状态,错误消息,为了对系统运行进行错误分析使用 1.内核消息 ...
- Linux编译部署vsftp服务
部署vsftp服务 Hostname OS IP Software Vsftpsvr RHEL-5.8 10.0.0.58 yum install -y vsftpd yum install –y ...
- Kickstart + http Linux自动化部署服务端
设备需要开启Network Boot功能.具体PXE技术就另外提,本文主要讲解配置. 在搭建该服务器之前需要关闭SELinux和iptables不然可能dhcp服务都起不来,客户端收不到IP地址,无法 ...
随机推荐
- 让Python代码更快运行的 5 种方法
不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和 ...
- OJ:访问 const 成员函数问题
Description 补足程序使得其输出结果是: 40 #include <iostream> #include <string> using namespace std; ...
- SpringBoot系列——mail
前言 邮件是许多项目里都需要用到的功能,之前一直都是用JavaMail来发,现在Spring框架为使用JavaMailSender接口发送电子邮件提供了一个简单的抽象,Spring Boot为它提供了 ...
- TensorFlow(3)CNN中的函数
tf.nn.conv2d()函数 参数介绍: tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=Non ...
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codi ...
- eclipse使用svn
主干(trunk).分支(branch ).标记(tag) 用法示例 + 图解 以svn为例,git的master相当于trunk,dev分支相当于branches --------------- ...
- 46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1)
内核版本 : Linux 3.10.14 rc红外接收类型: GPIO 类型的NEC红外编码 本章内容 1) rc体系结构分析 2) 分析红外platform_driver平台驱 ...
- C- unsigned :1之位域分析
1.首先回忆结构体 我们都知道定义一个结构体可以这样的方式定义: struct Point { float x; float y; } point; //等价于: struct Point point ...
- 【转】消除代码中的 if-else/switch-case
在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去实现.做的不好的会直接把实现的代码放在 if-else/swit ...
- Spring之AOP的注解配置
配置过程可以简单的分为3步: 1,业务类配置 在业务类前加入,将业务类交由Spring管理 @Component("s") 这个表示,这个业务类的Bean名字为 s . 2,将切点 ...