LibreNMS polling stops when REDIS is enabled in .env

Hi,

I get this error page when I enable redis in the .env for librenms. Following is the redis script that I have included. Polling stopped as soon as redis is included.

REDIS_HOST=10.28.132.61
REDIS_PORT=6379
REDIS_DB=0
CACHE_DRIVER=redis

(Attached is the screenshot of the web-gui error)

Following is the validate output from librenms.

[root@net-ksantosh ksantosh]# su - librenms
Last login: Tue Jul 20 12:09:16 IST 2021 on pts/0
-bash-4.2$ ./validate.php

Component Version
LibreNMS 21.7.0-8-ga45020c
DB Schema 2021_25_01_0127_create_isis_adjacencies_table (211)
PHP 7.3.29
Python 3.6.8
MySQL 10.4.20-MariaDB
RRDTool 1.4.8
SNMP NET-SNMP 5.7.2
====================================

[OK] Composer Version: 2.1.3
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database schema correct
[INFO] Detected Python Wrapper
[FAIL] We could not get memcached stats, it is possible that we cannot connect to your memcached server, please check
[WARN] Your local git contains modified files, this could prevent automatic updates.
[FIX]:
You can fix this with ./scripts/github-remove
Modified Files:
bootstrap/cache/.gitignore
logs/.gitignore
rrd/.gitignore
storage/app/.gitignore
storage/app/public/.gitignore
storage/debugbar/.gitignore
storage/framework/cache/.gitignore
storage/framework/cache/data/.gitignore
storage/framework/sessions/.gitignore
storage/framework/testing/.gitignore
storage/framework/views/.gitignore
storage/logs/.gitignore

Did you check the logs like it says?

Yes Sir. I have taken a snippet of the logs like it said and it’s a lengthy notepad. I just don’t know how to upload it here.

I didn’t find anything significant there other than the messages that it has polled devices in so many seconds and one entry where it says that it has polled zero devices.

Thanks.

Please find a snippet of the logs here:

https://p.libren.ms/view/624db7c8

Thanks,
Santosh Kotla

[2021-07-20 23:09:28] production.ERROR: Permission denied [tcp://10.28.132.61:6379]

I’m guessing you have selinux enabled

I just went through the config procedure as for Centos and I see that there is section where SELinux is configured. I am using CentOS 7 but the one mentioned in the installation manual is for CentOS 8. Do you think this would pose a problem?

Could SELinux be an issue?

Thanks,

what does your redis.conf and .env look like? I didn’t set redis_db=0 in my .env file. I am running redis/rrdcached/galera on centos 7 with 4 pollers.

I haven’t changed anything in the redis.conf. Just commented the bind statement so that the tool uses all network ports.

Below is the snippet of the .env file.

[root@net-ksantosh ksantosh]# cat /opt/librenms/.env
APP_KEY=base64:bUA62mcsJbBD1cTVaXISeiJjqGyUx8kRI8VYpjNv5ek=

DB_HOST=localhost
DB_DATABASE=librenms
DB_USERNAME=librenms
DB_PASSWORD=librenms

#REDIS_HOST=10.28.132.61
#REDIS_PORT=6379
#REDIS_DB=0
#CACHE_DRIVER=redis

#APP_URL=
NODE_ID=60eebcb42118b
LIBRENMS_USER=librenms

Thanks.

P.S - I overlooked that CentOS 8 was mentioned in the install document and pushed for a CentOS 8 upgrade last night.

[root@net-ksantosh ksantosh]# cat /etc/centos-release
CentOS Linux release 8.4.2105

So 10.28.132.61 is the master or is it standalone. You can try this. X.X.X.X/32 will be the IP address of the redis client/replica/slave.

If you think it is selinux or firewalld, you can disable them and restart your httpd/nginx and redis service.

systemctl stop firewalld
setenforce 0

Or you can keep the firewall enabled and add a rule for it and also add policies for selinux.

systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=6379/tcp
firewall-cmd --permanent --zone=public --add-source=X.X.X.X/32

sudo firewall-cmd --reload
systemctl stop firewalld

semanage port -a -t redis_port_t -p tcp 6379

semanage permissive -a redis_t

setsebool -P httpd_can_network_connect=1

systemctl restart httpd
systemctl start firewalld

php -m | grep redis

Thanks for the detailed suggestion nms.

Do you suggest that I change the REDIS_HOST to 10.28.132.61/32?

I don’t think the SELinux is the culprit because this issue was happening even when SELinux was disabled. Firewall has been disabled as well, as this instance will be working only in a private environment.

Scenario::
I am testing this before I deploy a poller in our PROD environment. We have a Librenms instance that is taking care of about 1300 devices in a DC in Reno. At present we are maxing out on the resources for this instance and the polling of the devices are not completing. I am planning to deploy poller in APAC and EMEA so that the respective devices in those geographies can be offloaded to the poller of that region.

This test instance I deployed is supposed to be a mock central server and then I will deploy a poller that offloads specified devices from this mock central server.

I hope you got an idea of what I am trying to achieve.

I don’t how 10.28.132.61/32 relates to your environment. Do you have only a single librenms instance running right now?

Yes. This is the only instance that I have right now and I am trying to st this up as a mock central server. Once this comes up fine, I will configure pollers to offload some work from the mock central server.

Thanks,
Santosh Kotla

@nms / @Jellyfrog / @murrant

I have tried to deploy everything again on a Ubuntu Server and I still run into the same issue. Whenever I enable REDIS in the .env, the WEB GUI stops working and asks me to check the logs. But I see that the devices are being polled and the stats are getting collected in the background?

Could it be possible that NGINX doesn’t get along well with REDIS-SERVER? I have been stuck with this problem for over 2 weeks and I tried to google different forums but never came to a proper solution. Any help from your side would be highly appreciated.

Thanks,
Santosh Kotla

P.S - This is the latest LIBRENMS logs from the UBUNTU instance that I installed over a raspberry pi4 box.

[2021-08-05 14:36:02] production.ERROR: Connection refused [tcp://localhost:6379] {“exception”:"[object] (Predis\Connection\ConnectionException(code: 111): Connection refused [tcp://localhost:6379] at /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php:155)
[stacktrace]
#0 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(128): Predis\Connection\AbstractConnection->onConnectionError()
#1 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(178): Predis\Connection\StreamConnection->createStreamSocket()
#2 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(100): Predis\Connection\StreamConnection->tcpStreamInitializer()
#3 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(81): Predis\Connection\StreamConnection->createResource()
#4 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(258): Predis\Connection\AbstractConnection->connect()
#5 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(180): Predis\Connection\StreamConnection->connect()
#6 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(288): Predis\Connection\AbstractConnection->getResource()
#7 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(394): Predis\Connection\StreamConnection->write()
#8 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(110): Predis\Connection\StreamConnection->writeRequest()
#9 /opt/librenms/vendor/predis/predis/src/Client.php(331): Predis\Connection\AbstractConnection->executeCommand()
#10 /opt/librenms/vendor/predis/predis/src/Client.php(314): Predis\Client->executeCommand()
#11 /opt/librenms/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(116): Predis\Client->__call()
#12 /opt/librenms/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(220): Illuminate\Redis\Connections\Connection->command()
#13 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php(38): Illuminate\Redis\Connections\Connection->__call()
#14 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cache/Lock.php(90): Illuminate\Cache\RedisLock->acquire()
#15 /opt/librenms/alerts.php(43): Illuminate\Cache\Lock->get()
#16 {main}
"}

You have configured a to use a redis server, and said server is not responding.

@Jellyfrog : Yes sir. I am trying to deploy REDIS so that I can make it talk to other pollers in the network. We are currently operating on a single instance of LibreNMS that is consuming humongous resources and it cant handle about 1300 devices on it’s own.

Earlier I thought that the server stopped polling but then I realized that it is somehow interfering with the Web GUI but the device polling and stats collection is happening in the background.

I have turned off the protected mode on the REDIS-SERVER conf and commented out the bind statement. It seems to have stopped blocking the web GUI from working and I see it working even when REDIS is mentioned in the .env file.

The same doesn’t seem to get along when I deployed it in the CentOS environment. This is the error log that I found on the CentOS deployment.

[previous exception] [object] (Predis\Connection\ConnectionException(code: 13): Permission denied [tcp://10.28.132.61:6379] at /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php:155)
[stacktrace]
#0 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(128): Predis\Connection\AbstractConnection->onConnectionError(‘Permission deni…’, 13)
#1 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(178): Predis\Connection\StreamConnection->createStreamSocket(Object(Predis\Connection\Parameters), ‘tcp://10.28.132…’, 4)
#2 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(100): Predis\Connection\StreamConnection->tcpStreamInitializer(Object(Predis\Connection\Parameters))
#3 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(81): Predis\Connection\StreamConnection->createResource()
#4 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(258): Predis\Connection\AbstractConnection->connect()
#5 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(180): Predis\Connection\StreamConnection->connect()
#6 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(288): Predis\Connection\AbstractConnection->getResource()
\7 /opt/librenms/vendor/predis/predis/src/Connection/StreamConnection.php(394): Predis\Connection\StreamConnection->write(’*2
\3
\ET
$5…’)
#8 /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php(110): Predis\Connection\StreamConnection->writeRequest(Object(Predis\Command\StringGet))
#9 /opt/librenms/vendor/predis/predis/src/Client.php(331): Predis\Connection\AbstractConnection->executeCommand(Object(Predis\Command\StringGet))
#10 /opt/librenms/vendor/predis/predis/src/Client.php(314): Predis\Client->executeCommand(Object(Predis\Command\StringGet))
#11 /opt/librenms/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(116): Predis\Client->__call(‘get’, Array)
#12 /opt/librenms/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(220): Illuminate\Redis\Connections\Connection->command(‘get’, Array)
#13 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(62): Illuminate\Redis\Connections\Connection->__call(‘get’, Array)
#14 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(97): Illuminate\Cache\RedisStore->get(‘checks_popup_ti…’)
#15 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php(418): Illuminate\Cache\Repository->get(‘checks_popup_ti…’)
#16 /opt/librenms/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Cache\CacheManager->__call(‘get’, Array)
#17 /opt/librenms/app/Checks.php(43): Illuminate\Support\Facades\Facade::__callStatic(‘get’, Array)
#18 /opt/librenms/app/Http/ViewComposers/LayoutComposer.php(52): App\Checks::postAuth()
#19 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php(124): App\Http\ViewComposers\LayoutComposer->compose(Object(Illuminate\View\View))
#20 /opt/librenms/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(392): Illuminate\View\Factory->Illuminate\View\Concerns\{closure}(Object(Illuminate\View\View))
#21 /opt/librenms/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(237): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}(‘composing: layo…’, Array)
#22 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php(177): Illuminate\Events\Dispatcher->dispatch(‘composing: layo…’, Array)
#23 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/View.php(120): Illuminate\View\Factory->callComposer(Object(Illuminate\View\View))
#24 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents()
#25 /opt/librenms/storage/framework/views/3a1e3c9b836cc6723962e6cc8198f744923dbfb0.php(11): Illuminate\View\View->render()
#26 /opt/librenms/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(107): require(’/opt/librenms/s…’)
#27 /opt/librenms/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(108): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem\{closure}()
#28 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire(’/opt/librenms/s…’, Array)
#29 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath(’/opt/librenms/s…’, Array)
#30 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/View.php(139): Illuminate\View\Engines\CompilerEngine->get(’/opt/librenms/r…’, Array)
#31 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\View\View->getContents()
#32 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents()
#33 /opt/librenms/vendor/laravel/framework/src/Illuminate/Http/Response.php(69): Illuminate\View\View->render()
#34 /opt/librenms/vendor/laravel/framework/src/Illuminate/Http/Response.php(35): Illuminate\Http\Response->setContent(Object(Illuminate\View\View))
#35 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(793): Illuminate\Http\Response->__construct(Object(Illuminate\View\View), 200, Array)
#36 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(763): Illuminate\Routing\Router::toResponse(Object(Illuminate\Http\Request), Object(Illuminate\View\View))
#37 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\Routing\Router->prepareResponse(Object(Illuminate\Http\Request), Object(Illuminate\View\View))
#38 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#39 /opt/librenms/app/Http/Middleware/RedirectIfAuthenticated.php(30): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\RedirectIfAuthenticated->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 /opt/librenms/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 /opt/librenms/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 /opt/librenms/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest(Object(Illuminate\Http\Request), Object(Illuminate\Session\Store), Object(Closure))
#49 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /opt/librenms/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#54 /opt/librenms/app/Http/Middleware/CheckInstalled.php(61): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\CheckInstalled->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#58 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#59 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#60 /opt/librenms/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#61 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#62 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#63 /opt/librenms/vendor/genealabs/laravel-caffeine/src/Http/Middleware/LaravelCaffeineDripMiddleware.php(11): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): GeneaLabs\LaravelCaffeine\Http\Middleware\LaravelCaffeineDripMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#67 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#68 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#69 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#70 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#71 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#72 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#73 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#74 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 /opt/librenms/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#77 /opt/librenms/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#78 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#79 /opt/librenms/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#80 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#81 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#82 /opt/librenms/html/index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#83 {main}
"}

I’m guessing selinux blocks it then.
However it’s unrelated to librenms

@Jellyfrog

I just checked the selinux status on the system. It is disabled.

[root@net-santosh01 ksantosh]# cat /etc/selinux/config

This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled

SELINUXTYPE= can take one of three values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted

Connection refused [tcp://localhost:6379] at /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php:155)

(Predis\Connection\ConnectionException(code: 13): Permission denied [tcp://10.28.132.61:6379] at /opt/librenms/vendor/predis/predis/src/Connection/AbstractConnection.php:155)

Connection refused would be firewall blocking or the service isn’t actually up and listening at 6379.

Permission denied would be selinux or user/group file permission from accessing the running service or required system files.

Hi @nms

I think this had to do something with the bind statement and the protection mode in the redis.conf. I went and commented the bind statement and turned the protection mode to ‘no’. That seemed to have done the trick.

Thanks,
Santosh Kotla

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.