如何监控文件变化,比如密码修改导致 Shadow 文件变化 天天热资讯

来源: SRETalk2023-06-27 14:12:44
  

原始需求是如果系统的密码被修改,或者创建了新用户,就告警出来。本质上,只需要监控/etc/shadow文件变化即可。但是在指标监控体系里,这个事情就比较棘手,只能把文件的 mtime 作为指标的值上报,服务端再利用 delta 或者 increase 函数来判断 mtime 是否发生了变化。告警出来的文本也会比较简陋。

使用 catpaw 搭配 FlashDuty 则可以很好的解决这个问题。告警的样例效果如下:


(资料图片仅供参考)

下面我们来看看如何实现。

1. 下载 catpaw

最新版本是 0.6.0,下载地址是:https://download.flashcat.cloud/catpaw-v0.6.0-linux-amd64.tar.gz目前只提供了 linux-amd64 版本,如有其他版本的需求可以联系我。

解压后可以看到如下内容:

.├── catpaw├── conf.d│   ├── config.toml│   ├── p.exec│   │   └── exec.toml│   ├── p.filechange│   │   └── filechange.toml│   ├── p.http│   │   └── http.toml│   ├── p.journaltail│   │   └── journaltail.toml│   ├── p.mtime│   │   └── mtime.toml│   ├── p.net│   │   └── net.toml│   ├── p.ping│   │   └── ping.toml│   └── p.sfilter│       └── sfilter.toml└── scripts    ├── demo.sh    ├── df.sh    ├── greplog.sh    └── ulimit.sh11 directories, 14 files

其中catpaw是二进制文件,conf.d目录下是各个插件的配置文件,scripts目录下是一些示例脚本。

2. 主配置

这里最核心的配置是conf.d/config.toml,需要配置一下 flashduty.url,您需要先注册FlashDuty,注册地址是:https://console.flashcat.cloud/signup。

FlashDuty是一个事件 OnCall 中心,可以聚合各类监控系统的事件,比如 Zabbix、Prometheus、PagerDuty、云监控、蓝鲸、Nightingale、Elastalert 等等,然后统一进行事件聚合降噪、排班、认领、升级等等。

注册 FlashDuty 之后,系统会引导你创建协作空间,您可以在协作空间下面添加一个自定义集成:

完事点击这个自定义集成,就可以拿到 url 了,拷贝一下 url,贴到 catpaw 的conf.d/config.toml中即可。

3. 配置插件

监控文件变化,可以使用 filechange 插件,配置文件在conf.d/p.filechange/filechange.toml,样例如下:

[[instances]]time_span = "3m"filepaths = ["/etc/shadow"]check = "file changed"interval = "30s"[instances.alerting]## Enable alerting or notenabled = true## Same functionality as Prometheus keyword "for"for_duration = 0## Minimum interval duration between notificationsrepeat_interval = "5m"## Maximum number of notificationsrepeat_number = 3## Whether notify recovery eventrecovery_notification = true## Choice: Critical, Warning, Infodefault_severity = "Warning"
4. 启动 catpaw

我这里简单测试,使用 nohup 启动,如果生产环境,自然是建议 systemd 或者 supervisor 托管:

nohup ./catpaw &> stdout.log &
5. 测试

手工创建个用户,比如sudo useradd qinxiaohui,就会导致/etc/shadow文件发生变化,进而产生告警,大家可以自行尝试一下。效果如下:

关键词:

责任编辑:sdnew003

相关新闻

版权与免责声明:

1 本网注明“来源:×××”(非商业周刊网)的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,本网不承担此类稿件侵权行为的连带责任。

2 在本网的新闻页面或BBS上进行跟帖或发表言论者,文责自负。

3 相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。

4 如涉及作品内容、版权等其它问题,请在30日内同本网联系。