尝试使用 collectd 的 exec 插件:
/etc/collectd.conf
:
...
LoadPlugin exec
...
<Plugin exec>
Exec "nobody:nobody" "/etc/collectd.d/redis_simple.sh"
</Plugin>
我将/etc/collectd.d/redis_simple.sh
其简化为:
#!/bin/bash
while sleep 10
do
echo "PUTVAL nfs/redis-6379/memcached_items-db0 interval=10 N:3043"
done
错误:
# /etc/init.d/collectd restart
Stopping collectd: [ OK ]
Starting collectd: Parse error in file `/etc/collectd.d/redis.sh', line 1308 near `<newline>': syntax error, unexpected EOL
yyparse returned error #1
configfile: Cannot read file `/etc/collectd.d/redis.sh'.
Parse error in file `/etc/collectd.d/redis_simple.sh', line 1329 near `<newline>': syntax error, unexpected EOL
yyparse returned error #1
configfile: Cannot read file `/etc/collectd.d/redis_simple.sh'.
= [ OK ]
[ OK ]
两个文件末尾肯定都有新行。没有窗口 EOL。日志中没有任何内容。/etc/collectd.d/redis_simple.sh 中没有第 1329 行。
任何帮助,将不胜感激。
答案1
听起来你需要将你的redis_simple.sh
(和redis.sh
)移出/etc/collectd.d
,这样 collectd 就不会尝试将它们解析为配置文件
或者:看看你的collectd.conf
,可能会有类似的东西Include "/etc/collectd.d/*"
,你可以用“替换Include "/etc/collectd.d/*.conf
”