系統:centos7.4.1708
環境:無互聯網環境
syslog使用端口爲 UDP 514php
將/etc/yum.repos.d目錄下除CentOS-Media.repo文件全部文件重命名
cd /etc/yum.repos.d
for i in `ls|grep -v CentOS-Media.repo`;do mv $i{,.bak};donehtml
修改CentOS-Media.repo
vim CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/usb1/ #設置本地掛載點
# file:///media/cdrom/ #該行註釋
# file:///media/cdrecorder/ #該行註釋
gpgcheck=0 #該行改成0,表示爲關閉檢查KEY
enabled=1 #該行改成1,表示爲開啓本地yum倉庫
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #該行默認便可linux
新建本地掛載點(該步驟可按需更改)
mkdir /mnt/usb{1..3} #這裏我新建了3個目錄vim
關閉防火牆
systemctl stop firewalld
systemctl disable firewalldcentos
關閉SELINUX
sed "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config服務器
===============================================================
rpm包下載地址:
http://www.rpmfind.net/linux/rpm2html/search.php?query=syslog
使用的rpm包下載地址
wget http://www.rpmfind.net/linux/centos/7.7.1908/os/x86_64/Packages/rsyslog-8.24.0-38.el7.x86_64.rpm
===============================================================url
安裝:
yum -y install rsyslog-8.24.0-38.el7.x86_64.rpmcentos7
配置rsyslog
vim /etc/rsyslog.conf
sed -i "s/^#\$ModLoad imklog/\$ModLoad imklog/" /etc/rsyslog.conf
sed -i "s/^#\$ModLoad immark/\$ModLoad immark/" /etc/rsyslog.conf
sed -i "s/^#\$ModLoad imudp/\$ModLoad imudp/" /etc/rsyslog.conf
sed -i "s/^#\$UDPServerRun 514/\$UDPServerRun 514/" /etc/rsyslog.conf
sed -i "s/^#\$ActionFileEnableSync on/\$ActionFileEnableSync on/" /etc/rsyslog.conf.net
在/etc/rsyslog.conf底部增長配置:
vim /etc/rsyslog.conf
$template IpTemplate,"/var/log/syslog/%FROMHOST-IP%/%$year%-%$month%-%$day%.log.log"
*.* ?IpTemplate
新增長的2行釋義:
第一行是定義了一個日誌接收存儲模板,名稱爲IpTemplate(可任意),"/var/log/syslog/%FROMHOST-IP%/%$year%-%$month%-%$day%.log.log"是日誌文件存儲路徑,用到了幾個變量,根據不一樣IP分了目錄,每一個IP目錄下天天會生成一個日誌文件
第二行是對任意類型調用這個名爲IpTemplate的模板rest
緊接着排除本機IP
fromhost-ip, !isequal, 「127.0.0.1」
?Remote
& ~
符號」& ~」表示了一個重定向規則,被用來告知rsyslog守護進程中止對日誌消息的進一步處理,而且不要在本地寫入。若是沒有使用該重定向規則,那麼全部的遠程消息都會在寫入上述描述的日誌文件以外同時被寫入到本地日誌文件,這就意味着日誌消息實際上被寫了兩次。使用該規則的另一個結果就是syslog服務器自己的日誌消息只會被以該機器主機名命名的專有文件中。
啓動/中止/重啓rsyslogsystemctl start rsyslogsystemctl stop rsyslogsystemctl restart rsyslog