sersync+rsync+inotify-tools集中日志,实时同步
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
用sersync+rsync+inotify-tools實時監(jiān)控文件變化,實時同步,將多臺業(yè)務(wù)主機(jī)日志集中到一臺服務(wù)器,便于研發(fā)實時grep、awk查看。
A服務(wù)器: 收集同步過來的文件
B服務(wù)器: 將產(chǎn)生的業(yè)務(wù)日志實時同步到A上
平臺:centos 7.4 x86_64
A服務(wù)器配置
yum install -y epel-release
yum install -y rsync
cp /etc/rsyncd.conf /etc/rsyncd.conf.bk
vi /etc/rsyncd.conf
uid=root
gid=root
#最大連接數(shù)
max connections=36000
#默認(rèn)為true,修改為no,增加對目錄文件軟連接的備份?
use chroot=no
#定義日志存放位置
log file=/var/log/rsyncd.log
#忽略無關(guān)錯誤
ignore errors = yes
#設(shè)置rsync服務(wù)端文件為讀寫權(quán)限
read only = no?
#認(rèn)證的用戶名與系統(tǒng)帳戶無關(guān)在認(rèn)證文件做配置,如果沒有這行則表明是匿名
auth users = rsync
#密碼認(rèn)證文件,格式(虛擬用戶名:密碼)
secrets file = /etc/rsync.pass
#這里是認(rèn)證的模塊名,在client端需要指定,可以設(shè)置多個模塊和路徑
[ultron]
#自定義注釋
comment ?= backend ultron
#B服務(wù)器同步過來的文件存放的路徑
path=/logcenter/backend/ultron
[inside]
comment ?= backend inside
path=/logcenter/backend/inside
#創(chuàng)建rsync認(rèn)證文件 ?可以設(shè)置多個,每行一個用戶名:密碼,注意中間以“:”分割
echo "rsync:123456" > /etc/rsync.pass
#設(shè)置文件所有者讀取、寫入權(quán)限
chmod 600 /etc/rsyncd.conf ?
chmod 600 /etc/rsync.pass ?
#啟動服務(wù)器B上的rsync服務(wù)
#rsync --daemon -v
rsync --daemon
#監(jiān)聽端口873
netstat -an | grep 873
#設(shè)置rsync為服務(wù)啟動項(可選)
echo "/usr/local/bin/rsync --daemon" >> /etc/rc.local
#要 Kill rsync 進(jìn)程,不要用 kill -HUP {PID} 的方式重啟進(jìn)程,以下3種方式任選
#ps -ef|grep rsync|grep -v grep|awk '{print $2}'|xargs kill -9
#cat /var/run/rsyncd.pid | xargs kill -9
pkill rsync
#再次啟動
/usr/local/bin/rsync --daemon
B服務(wù)器上的配置
yum install -y epel-release
yum install -y rsync inotify-tools
cd /alidata/server
tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86 sersync
cd sersync
#配置下密碼文件,因為這個密碼是要訪問服務(wù)器A需要的密碼和上面服務(wù)器A的密碼必須一致
echo "123456" > user.pass
chmod 600 user.pass
vi confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
?<host hostip="localhost" port="8008"></host>
?<debug start="true"/>
?<fileSystem xfs="false"/>
?<filter start="false">
?<exclude expression="(.*)\.php"></exclude>
?<exclude expression="^data/*"></exclude>
?</filter>
?<inotify>
?<delete start="true"/>
?<createFolder start="true"/>
?<createFile start="false"/>
?<closeWrite start="true"/>
?<moveFrom start="true"/>
?<moveTo start="true"/>
?<attrib start="false"/>
?<modify start="false"/>
?</inotify>
?
?<sersync>
?<localpath watch="/var/www/runtime/log"> <!-- 這里填寫服務(wù)器B要同步的文件夾路徑-->
?<remote ip="8.8.8.8" name="ultron"/> <!-- 這里填寫服務(wù)器A的IP地址和模塊名-->
<remote ip="8.8.8.8" name="inside"/> <!-- 這里填寫服務(wù)器A的IP地址和模塊名-->
?<!--<remote ip="192.168.28.39" name="tongbu"/>-->
?<!--<remote ip="192.168.28.40" name="tongbu"/>-->
?</localpath>
?<rsync>
?<commonParams params="-artuz"/>
?<auth start="true" users="rsync" passwordfile="/alidata/server/sersync/user.pass"/> <!-- rsync+密碼文件 這里填寫服務(wù)器B的認(rèn)證信息-->
?<userDefinedPort start="false" port="874"/><!-- port=874 -->
?<timeout start="false" time="100"/><!-- timeout=100 -->
?<ssh start="false"/>
?</rsync>
?<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--><!-- 修改失敗日志記錄(可選)-->
?<crontab start="false" schedule="600"><!--600mins-->
?<crontabfilter start="false">
?<exclude expression="*.php"></exclude>
?<exclude expression="info/*"></exclude>
?</crontabfilter>
?</crontab>
?<plugin start="false" name="command"/>
?</sersync>
?
?<!-- 下面這些有關(guān)于插件的設(shè)置可忽略了 -->
?<plugin name="command">
?<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /alidata/server/sersync/mmm.sh suffix-->
?<filter start="false">
?<include expression="(.*)\.php"/>
?<include expression="(.*)\.sh"/>
?</filter>
?</plugin>
?
?<plugin name="socket">
?<localpath watch="/home/demo">
?<deshost ip="210.36.158.xxx" port="8009"/>
?</localpath>
?</plugin>
?<plugin name="refreshCDN">
?<localpath watch="/data/htdocs/cdn.markdream.com/site/">
?<cdninfo domainname="cdn.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
?<sendurl base="http://cdn.markdream.com/cms"/>
?<regexurl regex="false" match="cdn.markdream.com/site([/a-zA-Z0-9]*).cdn.markdream.com/images"/>
?</localpath>
?</plugin>
</head>
啟動sersync服務(wù)
nohup ./sersync2 -r -d -o ./confxml.xml > ./sersync.log 2>&1 &
-d:啟用守護(hù)進(jìn)程模式
-r:在監(jiān)控前,將監(jiān)控目錄與遠(yuǎn)程主機(jī)用rsync命令推送一遍
-n: 指定開啟守護(hù)線程的數(shù)量,默認(rèn)為10個
-o:指定配置文件,默認(rèn)使用confxml.xml文件
?
轉(zhuǎn)載于:https://my.oschina.net/u/2404183/blog/1828450
總結(jié)
以上是生活随笔為你收集整理的sersync+rsync+inotify-tools集中日志,实时同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Microsoft 推出在AzureAp
- 下一篇: Solr7.3 Cloud On HDF