The requested URL /nagios/nagios/cgi-bin/status.cgi was not

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
trinetra
Posts: 7
Joined: Tue Sep 12, 2017 1:37 am

The requested URL /nagios/nagios/cgi-bin/status.cgi was not

Post by trinetra »

Hi all ,

Recently i have installed nagios core v4.3.4 on a centos server ( Centos 6.9 , 5GB RAM , 3 core ). The installation works perfectly fine when i launch from the direct public ip (no errors).
But when i put it behind a separate nginx and launch it using the domain name , i am getting errors as per the screenshot below. Below are my httpd.conf for nagios...really not sure how to fix this.
seeking your advice. Thanks in advance.

#httpd conf for nagios

Code: Select all

[root@m246nagios etc]# grep -v "#" /etc/httpd/conf.d/nagios.conf 

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">
   Options ExecCGI
   AllowOverride None
   <IfVersion >= 2.3>
      <RequireAll>
         Require all granted

         AuthName "Nagios Access"
         AuthType Basic
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
         Require valid-user
      </RequireAll>
   </IfVersion>
   <IfVersion < 2.3>
      Order allow,deny
      Allow from all

      AuthName "Nagios Access"
      AuthType Basic
      AuthUserFile /usr/local/nagios/etc/htpasswd.users
      Require valid-user
   </IfVersion>
</Directory>

Alias /nagios "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">
   Options None
   AllowOverride None
   <IfVersion >= 2.3>
      <RequireAll>
         Require all granted

         AuthName "Nagios Access"
         AuthType Basic
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
         Require valid-user
      </RequireAll>
   </IfVersion>
   <IfVersion < 2.3>
      Order allow,deny
      Allow from all

      AuthName "Nagios Access"
      AuthType Basic
      AuthUserFile /usr/local/nagios/etc/htpasswd.users
      Require valid-user
   </IfVersion>
</Directory>


# nagios home dir

Code: Select all

/usr/local/nagios/etc
# location of status.cgi

Code: Select all

/usr/local/nagios/sbin/status.cgi
Attachments
Screen Shot 2017-10-25 at 3.29.34 PM.png
User avatar
mcapra
Posts: 3739
Joined: Thu May 05, 2016 3:54 pm

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by mcapra »

I'd be interested in seeing your cgi.cfg. It's typically found here:

Code: Select all

/usr/local/nagios/etc/cgi.cfg
trinetra wrote:But when i put it behind a separate nginx and launch it using the domain name
Is there a particular reason you're doing this? Could we also see the nginx configuration? The gist of your problem is that something is appending an extra /nagios/ to your URLs when stuffing those pages into the iframe. It wouldn't surprise me if nginx was doing that.
Former Nagios employee
https://www.mcapra.com/
dwasswa

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by dwasswa »

Thanks @ mcapra ,

@ trinetra, did you try what we suggested?
trinetra
Posts: 7
Joined: Tue Sep 12, 2017 1:37 am

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by trinetra »

hi mcapra & dwasswa,

below is the config "/usr/local/nagios/etc/cgi.cfg"

Code: Select all

[root@m246nagios nagios]# grep -v "#" /usr/local/nagios/etc/cgi.cfg
main_config_file=/usr/local/nagios/etc/nagios.cfg
physical_html_path=/usr/local/nagios/share
url_html_path=/nagios
show_context_help=0
use_pending_states=1
use_authentication=1
use_ssl_authentication=0
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
default_statuswrl_layout=4
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
refresh_rate=90
result_limit=100
escape_html_tags=1
action_url_target=_blank
notes_url_target=_blank
lock_author_names=1
navbar_search_for_addresses=1
navbar_search_for_aliases=1
[root@m246nagios nagios]# 

# reason i put my servers behind nginx is to hide direct access to the servers and easier to manage a group of web interfacing servers behind nginx - following is my nginx config for nagios

Code: Select all

[root@m109-c64-nginx conf.d]# grep -v "#" nagios.xxx.xxx.conf 
server {
       listen         80;
       server_name    nagios.xxx.xxx;
       return         301 https://$server_name$request_uri;
}
server {
       listen 443;
       root html;

       server_name nagios.xxx.xxx;
       error_log /var/log/nginx/nagios-xxxxx-error.log warn;

        ssl                  on;
        ssl_certificate      /etc/nginx/ssl/xxxxxBundle.crt;
        ssl_certificate_key  /etc/nginx/ssl/xxxxx.key;
        ssl_session_timeout  5m;
        ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;

       location / {
                proxy_pass http://10.0.0.246/nagios/;
                proxy_redirect     off;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_cache_key         backend$request_uri;
                proxy_cache_valid       200 301 302 20m;
                proxy_cache_valid       404 1m;
                proxy_cache_valid       any 15m;
                proxy_cache_use_stale   error timeout invalid_header updating;

                proxy_http_version 1.1;
                proxy_set_header Connection $http_connection;
                proxy_set_header Origin http://$host;
                proxy_set_header Upgrade $http_upgrade;

        }
}


User avatar
mcapra
Posts: 3739
Joined: Thu May 05, 2016 3:54 pm

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by mcapra »

This isn't strictly Nagios Core related, but I think your location is inconsistent with your proxy_pass for this particular use case. I think the current problem is that your proxy is forwarding specifically to http://10.0.0.246/nagios/ on that address, eg if you access my_proxy_host:8989 it actually sets the reference to http://10.0.0.246/nagios/ per the proxy_pass setting. So when the links in the left-hand frame say /nagios/cgi-bin/status.cgi for the href, in the context of your proxy their full URI resolves to http://10.0.0.246/nagios//nagios/cgi-bin/status.cgi

The lazy way to fix this would be to explicitly include the /nagios location in your nginx conf:

Code: Select all

location /nagios {
                proxy_pass http://10.0.0.246/nagios/;
                # same TLS/Proxy settings as /
        }
The more appropriate way might be through rewrites or proxying /nagios to http://10.0.0.246/nagios and accessing Nagios Core's GUI through my_proxy_host:443/nagios instead of my_proxy_host:443. For the latter, like so:

Code: Select all

       location /nagios {
                proxy_pass http://10.0.0.246/nagios;
                proxy_redirect     off;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_cache_key         backend$request_uri;
                proxy_cache_valid       200 301 302 20m;
                proxy_cache_valid       404 1m;
                proxy_cache_valid       any 15m;
                proxy_cache_use_stale   error timeout invalid_header updating;

                proxy_http_version 1.1;
                proxy_set_header Connection $http_connection;
                proxy_set_header Origin http://$host;
                proxy_set_header Upgrade $http_upgrade;

        }
TL;DR iframes are weird sometimes and your proxy's paths should match the destination's paths. Admittedly I wrote that all up pretty quick and without a ton of spot checking, so if something doesn't make sense or sounds totally crazy let me know.
Former Nagios employee
https://www.mcapra.com/
dwasswa

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by dwasswa »

Thanks @mcapra ,@trinetra, please try what was suggested and give us an update if it solved your issue.

Also,please let us know if you have any questions.
trinetra
Posts: 7
Joined: Tue Sep 12, 2017 1:37 am

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by trinetra »

hi macpra,

yes, i have fix this now with the nginx config as mentioned by you .. thank you so much and also thanks to @dwasswa...
kindly close this thread as solved ( i don't see anywhere in the forum to 'mark as solved' ). thanks so much again @macpra @dwasswa :)
have a nice day !!


Code: Select all

location /nagios {
		#include /etc/nginx/auth/auth.conf;
                proxy_pass http://10.0.0.246/nagios/;
		#proxy_pass http://10.0.0.246/;
                proxy_redirect     off;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_cache_key         backend$request_uri;
                proxy_cache_valid       200 301 302 20m;
                proxy_cache_valid       404 1m;
                proxy_cache_valid       any 15m;
                proxy_cache_use_stale   error timeout invalid_header updating;

                proxy_http_version 1.1;
                proxy_set_header Connection $http_connection;
                proxy_set_header Origin http://$host;
                proxy_set_header Upgrade $http_upgrade;
kyang

Re: The requested URL /nagios/nagios/cgi-bin/status.cgi was

Post by kyang »

Sounds great! I'll be closing this topic as resolved!

If you have any more questions, feel free to create another thread!

Thank you for using the Nagios Support Forum!
Locked