-
Notifications
You must be signed in to change notification settings - Fork 184
Smokeping common faults
These have two root causes:
- Data not reaching the RRD [round robin databases]
Run smokeping in debug mode and watch what it says - you'll probably find some good reasons stuff isn't working and be able to fix it yourself. Have smokeping report on your config with the --check option.
Like this:
smokeping --check
smokeping --debug
- Data is hitting the RRD's as confirmed by
--debug
& empty graph from the browser.
You see: the user smokeping is running (= is writing the data) as user root or smokeping. However, the thing that's creating the graphs has to read the data - and that's whatever process your web-server is running as. That's often apache or www, httpd or www-data.
[It depends on the apache [or how your distro sets it] configuration - or whatever other web-server you're using.]
For apache you could try:
apachectl -V | grep SERVER_CONFIG
apachectl -t -D DUMP_RUN_CFG | grep -E 'Root|User|Group'
So, make sure that both the user smokeping is running as, as well as the user the web-server is running as, both have rights to the RRD's.
[If you aren't sure what apache is running at, have a look at the apache config files. For example Ubuntu 12.04 has the user in /etc/apache2/envvars - and the user is www-data.]
So, to spoon-feed you - you'll need to chown the files to something like:
chown smokeping:www-data some-rrd-files*.rrd
Or to do many files at once from the parent directory:
find . -type f -name '*.rrd' | xargs chown smokeping:www-data
There is also a third possibility, although it’s not a root cause:
- New targets are getting blank graphs but old targets are being updated
If it’s just a new target that is showing blank graphs, make sure to restart the smokeping process or tell smokeping to reload its configuration.
- How do I check my smokeping/web server ACLs?
Try adding the path to your smokeping config in this shell script to review ACL/permissions - smokeperms.sh
This is what correct ACLs on a FreeBSD system look like assuming smokeping runs as user smokeping
and my webserver runs as user www
:
$ ./smokeperms.sh
# file: /usr/local/www/nginx/smokeping/cache
# owner: smokeping
# group: www
user::rwx
group::r-x
other::r-x
# file: /usr/local/www/nginx/smokeping/data
# owner: smokeping
# group: www
user::rwx
group::r-x
other::r-x
# file: /usr/local/var/smokeping
# owner: smokeping
# group: smokeping
user::rwx
group::r-x
other::r-x
- Why is the master polling a target I only want the slave to poll?
[Because you told it to? Or rather, because you didn't tell it not to! See: nomasterpoll in the docs, here: http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html ]
- Why are my graphs empty [for the slaves?]
[See 1 & 2 above if you didn't read them already...]
A master-slave has one additional wrinkle, though the principles are the same.
For slaves, smokeping IS NOT writing the data to the RRD files - they're getting pushed there by the web-server.
So, in master-slave mode you need to be sure that the user your web-server is running as [apache perhaps] has WRITE permissions to the RRD files.
The getfacl
utility will show you the permissions. Assuming apache is your webserver user, you can give the appropriate write permissions to the directory with setfacl
- setfacl -R -m u:apache:rw /var/lib/smokeping
Also, if you simply go mod the permissions and then you add new slave targets, those new slave RRD files won't have the right permissions.
So you either have to simply handle that, or tweak things so the new RRD's get created with the appropriate level of permissions.
Checking that data is being written properly follows these steps.
- check what the master is writing with
--debug
. [Master RRD data in] - the slaves will log problems writing in the web-server logs. [Slave RRD data in]
And the output of graphs will likely show the problem, also in the web-server logs. [Master and slave RRD data out]
[Though if you fix the writing problem you're probably not going to have a problem reading them. A clear sign of a slave write problem is if the master plots graph fine, but the slaves don't.]
- Your probe does not connect to the device and you find the following error in your syslog
Jul 20 09:55:34 monitor smokeping[24588]: OpenSSHJunOSPing connecting <ip>: ctl_dir /var/lib/smokeping/.libnet-openssh-perl/ is not secure
Reason: Issue #92
Solution:
Edit /usr/share/perl5/Smokeping/probes/OpenSSHJunOSPing.pm
and add the ctl_dir
parameter in line 104 below timeout => 60
.
The value of ctl_dir
must be a path and you can use one of the following options:
/tmp/.libnet-openssh-perl
-
/var/tmp/smokeping/.libnet-openssh-perl
- you need to create/var/tmp/smokeping
first (please keep in mind that RHEL based systems clear not accessed files in/var/tmp/
every 30 days) - you could also throw it in a smokeping folder in
/opt
or/home
Make sure only smokeping
and root
have write access to the directory (and all parents) where .libnet-openssh-perl
will be stored.