My tomcat application writes some value in a file under /usr/share/tomcat6/webapps/myApp/munin/. Permissions on this file are default (tomcat:tomcat ownership) 644. I wrote a very simple munin plugin to read those value, and it stands in /usr/share/munin/plugins/. Permissions there are (root:root) 755, like the other plugins. I also made a symlink in /etc/munin/plugins/.
If I use munin-run myApp_lookuptime, I get proper output for values, config and --debug. However, if I telnet, it gives me "Bad exit". munin-node.log says:
2013/05/03-14:35:08 [30657] Error output from myApp_lookuptime:
2013/05/03-14:35:08 [30657] /etc/munin/plugins/myApp_lookuptime: line 15: /usr/share/tomcat6/webapps/myApp/munin/myApp.LookupTime.log: Permission denied
2013/05/03-14:35:08 [30657] Service 'myApp_lookuptime' exited with status 1/0.
In /etc/munin/plugin-conf.d/munin-node, I wrote:
[myApp*]
user root
group root
But it still fails. From any dummy account on this server, I'm able to read that log, but still munin fails with "Permission Denied" error. What am I doing wrong?
Well, it was simple really. SELinux was blocking my plugins. So, either turn it off if your server is not public or learn to make rules if the server is public.
Here is a guide for CentOS: http://www.centos.org/docs/5/html/5.2/Deployment_Guide/sec-sel-enable-disable.html
After that, I rebooted, and my plugins worked like a charm.
Thank you, me.