Oxidized node refresh not working

Dear Community,

Recently I have a problem with “Oxidized node refresh” button. Oxidized integration is working, device configs are syncing. But there is an error when I want to refresh the configuration for just one specific node.

The popup screen says:
“An error occured while queuing refresh for an oxidized node (hostname: xy)”

In librenms.log:

[2020-08-15 02:56:24] production.ERROR: cURL error 28: Operation timed out after 10001 milliseconds with 0 out of -1 bytes received {“userId”:2,"exception
“:”[object] (Requests_Exception(code: 0): cURL error 28: Operation timed out after 10001 milliseconds with 0 out of -1 bytes received at /opt/librenms/ven
dor/rmccue/requests/library/Requests/Transport/cURL.php:422)

If I remember correctly this function worked earlier. Any help is appreciated!

Thanks for the great support!

If anyone knows which php file making this curl API request to Oxidized that would be great.

I can make an API request manualy. For example:
curl http://127.0.0.1:8888/node/next/10.43.9.11

So I think there could be an issue with LibreNMS doing this curl request.

Thanks

Is this refresh button working for anyone?
Maybe this problem only exists in my environment…

Thanks!

works perfectly here yes in multiple LibreNMS/Oxidized instances. So something must be different in your instance.

Thanks for checking!

I’ve already reinstalled the whole ruby-2.3.8 environment and Oxidized too (built from git) but it’s not working.

I’ve also noticed that “reload node list when adding new device” also doesn’t work. I have to get manually reload it every time a new device is added to Librenms.

I don’t know what could be the problem… This whole thing worked before…

The only error message I could find is this:

[2020-10-01 22:52:08] production.ERROR: cURL error 28: Operation timed out after 10002 milliseconds with 0 out of -1 bytes received {“userId”:2,"exception
“:”[object] (Requests_Exception(code: 0): cURL error 28: Operation timed out after 10002 milliseconds with 0 out of -1 bytes received at /opt/librenms/ven
dor/rmccue/requests/library/Requests/Transport/cURL.php:422)
[stacktrace]
#0 /opt/librenms/vendor/rmccue/requests/library/Requests/Transport/cURL.php(177): Requests_Transport_cURL->process_response(’’, Array)
#1 /opt/librenms/vendor/rmccue/requests/library/Requests.php(379): Requests_Transport_cURL->request(‘http://10.42.35…’, Array, ‘{“user”:"Prazsm…’,
Array)
#2 /opt/librenms/vendor/rmccue/requests/library/Requests.php(706): Requests::request(‘http://10.42.35…’, Array, ‘{“user”:"Prazsm…’, ‘PUT’, Array)
#3 /opt/librenms/vendor/rmccue/requests/library/Requests.php(383): Requests::parse_response(Array, ‘http://127.0.0…’, Array, ‘{“user”:"Prazsm…’, A
rray)
#4 /opt/librenms/vendor/rmccue/requests/library/Requests.php(274): Requests::request(‘http://127.0.0…’, Array, ‘{“user”:"Prazsm…’, ‘PUT’, Array)
#5 /opt/librenms/includes/functions.php(2557): Requests::put(‘http://127.0.0…’, Array, ‘{“user”:"Prazsm…’, Array)
#6 /opt/librenms/includes/html/forms/refresh-oxidized-node.inc.php(17): oxidized_node_update(‘10.160.63.232’, ‘LibreNMS GUI re…’, ‘PrazsmaryM’)
#7 /opt/librenms/html/ajax_form.php(26): include_once(’/opt/librenms/i…’)
#8 {main}
"}

do you have the same if you turn off versioning?
$config['oxidized']['features']['versioning'] = false;

yes i tried without versioning but same result :frowning:

[2020-10-02 10:29:57] production.ERROR: cURL error 28: Operation timed out after 10001 milliseconds with 0 out of -1 bytes received {“userId”:2,“exception”:"[object] (Requests_Exception(
code: 0): cURL error 28: Operation timed out after 10001 milliseconds with 0 out of -1 bytes received at /opt/librenms/vendor/rmccue/requests/library/Requests/Transport/cURL.php:422)
[stacktrace]

Really strange because basically the integration is working. LibreNSM is feeding Oxidized. LibreNMS can view stored configs, versions, etc.

I’ve also checked Oxidized API request manually. It works. I don’t think theres a problem with Oxidized.

Thanks!

noticed that part of the code checks for http proxy, you don’t happen to have that configured do you ?

$config['callback_proxy'] = 'proxy.domain.com';
$config['http_proxy']     = 'proxy.domain.com';

or a http_proxy in /etc/environment

You are awesome! That was the problem!

I always had http_proxy environment variable because this is the only way for me to keep LibreNMS updated.
But recently I’ve configured http_proxy in GUI also…

I never thought this could be wrong because API calls are going to 172.0.0.1. But as it seems that was the problem.

1 Like

Doesn’t appear to be working for me.

I do not have $config[‘http_proxy’] or $config[‘callback_proxy’] configured as I don’t use one.

http_proxy in /etc/environment isn’t in that file either.

Managed to resolve I just needed to add a trailing slash.

http://127.0.0.1:8888 – Didn’t work

http://127.0.0.1:8888/ – Works!

1 Like

So I found commenting out the proxy configs works to manually pull a new config from oxidized, but we need the libre proxy enabled to be able to send our notifications out to Opsgenie. Is there any way to refresh the config in the UI without going through the proxy?

EDIT: Ok I fixed this by removing the proxy from around line 2363 includes/functions.php:

if (! empty($oxidized_url)) {
//Requests::put(“$oxidized_url/node/next/$hostname”, , json_encode($postdata), [‘proxy’ => get_proxy()]);
Requests::put(“$oxidized_url/node/next/$hostname”, , json_encode($postdata));
return true;

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