Ansible 安全监控最佳实践

Ansible 安全监控最佳实践

我家里有几台服务器。我希望有一台计算机可以监控这些服务器上的活动,并在出现问题时通知我。因此,我在那里安装了 ansible。为了获得最大程度的安全性,ansible 将使用的用户将只具有它应该做的事情的权限,仅此而已。但是,我遇到了一个问题,我将在这个简单的案例中解释它。

假设我们想知道的温度/dev/sdahost1为了简单起见,我将使用hddtemp来收集数据,并使用用户monitor进行监控。该工具hddtemp需要特权用户才能执行,因此我允许它在 sudoers 中运行:

%monitor  ALL=NOPASSWD: /usr/sbin/hddtemp

但由于需要访问设备一,因此访问仍被拒绝/dev/sda。在 Debian 11 上,这些块设备位于组中disk

brw-rw----   1 root   disk      8,   0 sep  4 21:31 sda

于是我将用户添加monitor到该组。但错误消息已从以下内容变为:

/dev/sda (read) access denied

更改为:

/dev/sda access denied

我有两个问题:

  1. 我的做法合理吗,还是我想太多了
  2. 如果它是合法的,我该如何授予我的用户monitor访问我的硬盘温度的权限?访问块设备是否/dev/sda足够,还是我需要给它更多的东西来读取温度?

答案1

像 Ansible 这样的配置管理套件非常适合更新和维护服务器上的配置,但不太适合监控服务器。配置管理会定期检查服务器的配置,并调用命令来更改配置,但那只是在该服务器的“所需配置”发生变化时。使用监控时,您希望即使服务器配置没有更改,也能调用(监控)命令。

此外,监控需要以不同的间隔调用命令。有些命令每 30 分钟调用一次,而其他命令每 5 分钟调用一次。通常,失败会触发每分钟可配置的重试,直到连续 3 次或更多次尝试失败,然后才发送警报。配置管理不希望以不同的间隔运行多个状态检查/更改程序,更像是每 30 分钟或更短时间进行一次检查/更改。从这个额外的方面来看,配置管理套件并不适合监控。

正如评论所建议的那样,最好使用专门用于监控的软件套件进行监控。

相关内容