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

原文地址:https://www.cnblogs.com/yuzly/p/10568292.html

时间: 2024-10-02 22:22:48

Linux 自动化部署Rsyslog服务的相关文章

Linux自动化部署操作系统

最近工作比较不是很忙,自己部署了一套Linux自动化部署操作系统,现将操作步骤记上,加深印象. 一.环境 准备两台虚拟机,其中一台已以Desktop.BASE SERVER 的方式安装好了,操作系统是CentOS6.5-x86_64,作为服务端使用:另一台只安装了虚拟机,未安装操作系统,用于自动化部署测试使用: 注:必须安装桌面图形化,要不然后面用到的kickstart无人值守的功能,没办法启动配置: 需要用到的主要软件: http dhcp xinetd tftp-server tftp sy

jenkins实现自动化部署及服务重启-初级

jenkins实现自动化部署及服务重启-初级 一.说明 部署jenkins 主要用于web界面化的代码上传.生产服务重启.还未涉及到svn中的代码打包,后期会配合开发同事一起完成此功能.使用jenkins而不是脚本执行主要作用是为了方便版本控制.减少人为失误导致.而jenkins主要是作为可视化的一个框架使用,核心还是各类脚本的执行.而此篇内容主要是讲解如果搭建jenkins,脚本内容将在后续逐个展示,因为作者运用jenkins比较粗浅,也在不断摸索中,此篇文章也是为菜鸟朋友们准备的,希望借鉴此

Linux 下部署 NFS 服务

Linux 下部署 NFS 服务 一般应用场景: 服务器端分配出共享的磁盘空间, 被一个或者多个客户端挂载,来实现数据共享,集中管理与维护和访问控制等. 步骤: 服务器端 - CentOS 7 安装必要的包: nfs-utils , rpcbindyum -y install nfs-utilsyum -y install rpcbind 配置 etc/exports 文件exports配置的参数选项比较多,具体细节用man去查看和了解.这里对主要4个参数做一个说明: all_squash :

[自动化] 部署Ansible服务及其常用的命令模块

Ansible简介: Ansible基于Python开发,默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,可同时支持多台主机进行管理.ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,能够实现批量运行命令.部署程序.配置系统等功能. Ansible的基本架构主要包括: (1)Ansible core核心引擎.(2)Host inventory 主机清单:用来定义Ansible管理的主机,默认是在Ansible配置文件

linux 自动化部署脚本

1 概述 在工作中,需要对环境中的机器打补丁或者安装软件.如果机器太多,有可能会漏掉机器,或者有些机器上版本不一致.如果能实现同一的部署,不仅能降低人为导致的错误,而且能大大提高工作效率 本文,我将介绍通过crontab设置定时任务,来实现自动化部署安装脚本,只需将脚本放在指定的路径下,就可以实现统一部署 2 环境准备 环境如下 A 环境中机器 服务器端: 192.168.32.75, 客户端: 两台CentOS6 :ip 192.168.32.61 和 ip 192.168.32.62 三台C

一次Linux自动化部署尝试

最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终于腾出时间来做这件事,记录一下. 先决条件 远程服务器已配置ssh免密码登录(因为免密码登录便于实现全自动化) 本地具备ssh环境(我的开发环境是windows,呜呜...我使用的是babun,还不错,推荐,当然了,我之前是因为其他原因安装了) Linux shell编程(其实这里用的很少),sed工具的使用 主要思路 主要就是

Linux下部署svn服务

系统环境:CentOS 6.5 安装svn的软件subversion [[email protected] ~]# yum install subversion -y 新建一个svn的用户,授权svn服务 [[email protected] ~]# useradd svn  [[email protected] ~]# passwd svn    #设置密码 创建一个初始仓库,使用svn用户 [[email protected]  ~]$ svnadmin create /home/svn/p

用shell脚本自动化部署dhcp服务,加图文验证

自动化dhcp服务shell脚本如下: #vim auto_dhcp.sh #!/bin/bash read -p "please input your ip: " IP     #设置dhcp服务器ip read -p "please input your gw: " GW     #设置dhcp服务器网关 IPNET=$(echo $IP |awk -F. '{print $1"."$2"."$3}')  #取网段号  I

Linux基于PXE实现系统自动化部署

一.前言: 通常为计算机安装操作系统的方式主要是,光盘安装和U盘安装:在企业生产环境中,会需要对多台客户机或服务器安装Linux操作系统,如果还用常规的方法去安装,费时又费力:PXE批量部署系统即可高效完成此类工作. 二.原理: 使用光盘(镜像)安装Linux操作系统过程:POST(加电自检)-->引导序列(通过BISO发现引导CD-ROM或U盘)--Bootloader(kernel+ramdisk)-->anaconda(安装程序) 1.自动化部署服务器所需环境: PXE:Preboot