我以前曾设定过,Cacti 插件在 Linux Debian 上,允许通过 SNMP/rndc 查询收集 DNS 统计信息,以生成美丽的图形。
直到几周前它还运行良好... :-(
所以问题是该文件命名统计信息像往常一样具有其特定的用户/组文件权限。但是 Cacti poller 用户没有读取它所需的文件权限...
工作流程如下:
- Cacti 轮询器调用
bind-stats.sh
脚本 - 此脚本执行
snmpget
主机名 - 调用
snmpget
脚本runstats.sh
- 最后
runstats.sh
执行以下操作:- 删除旧的命名统计信息
- 会
rndc stats
产生新的命名统计信息文件。 - 读取并解析命名统计信息带有 Perl 模板的文件
控制台输出:
mdw05:~# /usr/share/cacti/site/scripts/bind-stats.sh example.serverfault.com snmpCommunity
cat: /var/cache/bind/named.stats: Permission denied
mdw05:~#
mdw05:~# ls -l /var/cache/bind/named.stats
-rw-r----- 1 bind bind 4.8K Jul 23 10:54 /var/cache/bind/named.stats
mdw05:~#
因此,我该如何配置 Bindrndc
命令来更改默认文件权限以允许脚本runstats.sh
读取此文件……?
我已经尝试将 SNMP 和/或 Cacti 用户添加为绑定群组,但它不起作用>_<
感谢您的帮助。
绑定统计信息:
#!/bin/sh
# $1 hostname $2 community
/usr/bin/snmpget -v 2c -Ovq -c $2 $1 .1.3.6.1.4.1.18689.0.1.4.1.2.14.100.110.115.99.97.99.104.101.45.115.116.97.116.115.1 | sed 's/"//g'
snmpd配置文件:
## cacti polling (http://docs.cacti.net/usertemplate:host:bind9.7)
extend .1.3.6.1.4.1.18689.0.1 dnscache-stats /usr/local/sbin/cacti_bind9.7/runstats.sh
运行统计信息:
#!/bin/sh
rm -f /var/cache/bind/named.stats
rndc stats
cat /var/cache/bind/named.stats | perl /usr/local/sbin/cacti_bind9.7/dnsstats.pl
答案1
为此使用 sudo。将其添加到 /etc/sudoers
snmp ALL=NOPASSWD: /usr/local/sbin/cacti_bind9.7/runstats.sh
并将 snmpd.conf 扩展行修改为:
扩展 .1.3.6.1.4.1.18689.0.1 dnscache-stats /usr/bin/sudo /usr/local/sbin/cacti_bind9.7/runstats.sh
问候,
鲁本。