. * * @package LibreNMS * @link http://librenms.org * @copyright 2017 Tony Murray * @author Tony Murray */ /** * Created by IntelliJ IDEA. * User: murrant * Date: 10/8/17 * Time: 2:16 AM */ namespace LibreNMS\Validations; use LibreNMS\Config; use LibreNMS\Validator; class DistributedPoller extends BaseValidation { protected static $RUN_BY_DEFAULT = false; /** * Validate this module. * To return ValidationResults, call ok, warn, fail, or result methods on the $validator * * @param Validator $validator */ public function validate(Validator $validator) { if (!Config::get('distributed_poller')) { $validator->fail('You have not enabled distributed_poller'); return; } if (!Config::get('distributed_poller_memcached_host')) { $validator->fail('You have not configured $config[\'distributed_poller_memcached_host\']'); } elseif (!Config::get('distributed_poller_memcached_port')) { $validator->fail('You have not configured $config[\'distributed_poller_memcached_port\']'); } else { $connection = @fsockopen(Config::get('distributed_poller_memcached_host'), Config::get('distributed_poller_memcached_port')); if (!is_resource($connection)) { $validator->fail('We could not get memcached stats, it is possible that we cannot connect to your memcached server, please check'); } else { fclose($connection); $validator->ok('Connection to memcached is ok'); } } if (!Config::get('rrdcached')) { $validator->fail('You have not configured $config[\'rrdcached\']'); } elseif (!is_dir(Config::get('rrd_dir'))) { $validator->fail('You have not configured $config[\'rrd_dir\']'); } else { Rrd::checkRrdcached($validator); } } }