离线部署swatchdog以及使用
2023/06/04 16:03 投稿

转载文章请注明源地址:https://www.latiao.org/938.html

第一步:挂载本地源

mount -n /dev/cdrom /mnt/cdrom/
cat > /etc/yum.repos.d/yum.repo <<EOF
[APPSTREAM]
name=APPSTREAM
baseurl=file:///mnt/cdrom/AppStream
gpgcheck=0
enable=1
[BASEOS]
name=BASEOS
baseurl=file:///mnt/cdrom/BaseOS
gpgcheck=0
enable=1
EOF

第二步:dnf安装mod_ldap以及ruby

dnf install mod_ldap ruby -y

第三步:安装swatchdog

链接:https://pan.baidu.com/s/1sjfIqfX11sk7ST9sjIZDqA 
提取码:lt66

执行 shell;下载前面的百度云,解压
unzip SWATCHDOG.zip
chmod a+x swatchdog-install.sh  
./swatchdog-install.sh  (在最开始的百度云下载的文件/root/下执行)

第四步:安装完成,可以使用了,接下去举一个小例子

touch /root/swatch/log.conf   ##创建一个swatch的配置文件
##内容如下:大概含义就是,只要前后匹配到了含有rsync-test内容的文本,返回绿色##
watchfor /.*rsync-test.*/
	echo green
touch base.log   ##创建一个日志文件,可以理解成swatchdog会跟踪这个文件
touch base-alert.txt ##创建一个输出文件,当swtachdog抓到特定的内容的时候追加到这个文件
/usr/local/bin/swatchdog -c /root/swatch/log.conf -t /root/swatch/base.log --daemon >> /root/swatch/base-alert.txt   ##直接运行这一串语句。 大概含义就是说:在后台使用log.conf运行swatchdog,且读取的日志源文件是base.log,符合log.conf后会追加内容到 base.alert.txt

第五步:测试实际效果

首先我们追加一段不符合规则的内容到base.log。 没有产生任何反应

现在追加一个含有rsync-test内容的文本到base.log

我们观察发现,balababarsync-testlabala已经被返回成了绿色追加到了base-alert.txt。

我们可以简单得想象一下应用场景。 我们可以利用zabbix 或者其他监控软件来监控这个文件的状态,如果发现内容的追加,则触发告警。

或者说 swtachdog本身是支持执行脚本的。举例如下:

perlcode my $test1='.*test1.*';
perlcode my $test2='.*test2.*';
watchfor  /$test1/
	exec sh /root/swatch/test1.sh
watchfor /$test2/
	exec sh /root/swatch/test2.sh

匹配特定test的规则并执行sh脚本,脚本内容可以是snmptrap到某个监控服务器?或者是说自动发送邮件。可以说 swatch是运维必备工具。

其他更高级的用法,可以自行研究!