Page 2 of 3
Re: selected period need to show in performance graph
Posted: Fri Mar 08, 2019 11:59 am
by zaji_nms
thanks for your efforts
so only solution is feature request, to add PERIOD via TEMPLATE
same time, please do not forget to add DISPLAY_NAME via TEMPLATE
both will we additional feature to add at below X-Axis of the graph
regards
Re: selected period need to show in performance graph
Posted: Fri Mar 08, 2019 1:14 pm
by tgriep
FYI, we did find a solution to print out the last time the rrd file was updated. Put the following line at the bottom of the template and it will print the date / time to the graph..
Code: Select all
$def[1] .= "COMMENT:'".str_replace(':', '\:', date("Y-m-d H:i:s", "$NAGIOS_TIMET"))."'" ;
I will put in a feature request for the rest of what you want to display in the graphs.
Re: selected period need to show in performance graph
Posted: Thu Mar 14, 2019 12:44 am
by zaji_nms
great its done
$def[1] .= "COMMENT:Printed\ on\ '".str_replace(':', '\:', date("D d-M-Y H:i", "$NAGIOS_TIMET"))." (GMT+n)"."'" ;
upon your this solution, thinking may be there is a way to call external PHP code from this template (check_xi_service_mrtgtraf.php)
will pass the $hostname & $servicedesc from this Template to external PHP function and will return Display_Name
we will write that small external PHP code / function, sure with your some guideline/hint
Regards
Re: selected period need to show in performance graph
Posted: Thu Mar 14, 2019 1:59 pm
by tgriep
There is not a direct way to get the display_name from an external application so something would have to be written to get the name.
If you do an API call to get the servicestatus for a host, it will return a list of the services for that host and the display_name will be included as json.
You could use that to get the data into the php script so you can display it in the graph.
curl -XGET "
https://xxx.xxx.xxx.xxx/nagiosxi/api/v1 ... t&pretty=1" -k
Re: selected period need to show in performance graph
Posted: Thu Mar 21, 2019 6:08 am
by zaji_nms
dear tgriep
in /usr/local/nagios/share/pnp/templates
I have copied below files
hostservices.txt (left side host+service , one space , and right side is displayname)
router1giga1 connected_to_london
router1pos2 connected_to_paris
jnpr3xe-0/0/1 uplink-to-frakfurt
$ php ./fetchdispname.php jnpr3xe-0/0/1 <<<<<<<<<<<<<<<< has been written to fetch the DisplayName
uplink-to-frakfurt <<<<<<<<<<<<< tested working fine
now how to add this PHP code/function (fetchdispname.php) in MRTG template or any other place to show/print DisplayName in rrd / performance graph fetched by PHP Code (fetchdispname.php)
regards
Re: selected period need to show in performance graph
Posted: Thu Mar 21, 2019 12:02 pm
by tgriep
If the fetchdispname.php script in in the /usr/local/nagios/share/pnp/templates folder
You would add this to the mrtg template to get the display name. If you have any arguments needed for your script, you will have to pass them to it.
Code: Select all
$displayname = "php -q /usr/local/nagios/share/pnp/templates/fetchdispname.php";
As long as the permissions are good and the name of the macro it the same, it should work.
Re: selected period need to show in performance graph
Posted: Thu Mar 21, 2019 1:56 pm
by zaji_nms
dear tgriep
$opt[1] = "--vertical-label score -l0 --title \"Score for $hostname / $servicedesc\" ";
$displayname = "php -q /usr/local/nagios/share/pnp/templates/fetchdispname.php";
#
$def[1] .= "COMMENT:\" DispName $displayname \" ";
$def[1] .= "COMMENT:mAGIc'" .$displayname. "'" ; <<<<<<<<<<< tried this way but no success
it just diplaying as below
DispName php -q /usr/local/nagios/share/pnp/templates/fetchdispname.php
(means it just assigning right side string "php -q /usr....." to $displayname) not executing the code
to make the simple, I just change the code to three lines only,
more fetchdispname.php
<?php
return "MyMagicDISPname";
?>
tried to change the different group but no success
chown nagios:nagios fetchdispname.php
chown root:nagios fetchdispname.php
chown apache:nagios fetchdispname.php
chmod 755 fetchdispname.php
Looks your some more last efforts will fix this issue
regards
Re: selected period need to show in performance graph
Posted: Thu Mar 21, 2019 3:15 pm
by tgriep
I forgot to remove the double quotes, from the command.
Try this
Code: Select all
$displayname = php -q /usr/local/nagios/share/pnp/templates/fetchdispname.php;
or this
Code: Select all
$displayname = /usr/local/nagios/share/pnp/templates/fetchdispname.php;
This line should look like this
Code: Select all
$opt[1] = "--vertical-label score -l0 --title \"Score for $hostname / $servicedesc / $displayname\" ";
Also, make sure you set the $displayname variable before trying to display it.
Re: selected period need to show in performance graph
Posted: Fri Mar 22, 2019 4:30 am
by zaji_nms
dear tgriep
no, not giving the desired result
$opt[1] = "--vertical-label score -l0 --title \"Score for $hostname / $servicedesc\" ";
$displayname = php -q /usr/local/nagios/share/pnp/templates/fetchdispname.php;
$def[1] .= "COMMENT:\" DispName $displayname \" ";
displaying >>>>> 0php <<<<<< this is the result of $displayname
two possibilities
1) may be the code not running as should
or
2) the PHP code (fetchdispname.php) is not correct
if No.1 is wrong, can you please test in your Leb
if No.2 is wrong, can you please write few line code with static output as I mentioned earlier to make sure code is correct (as below similar).
more fetchdispname.php
<?php
return "MyMagicDISPname";
?>
regards
Re: selected period need to show in performance graph
Posted: Fri Mar 22, 2019 8:59 am
by tgriep
I added / edited these 2 lines to the top of the Graph Template
Code: Select all
$displayname = shell_exec( 'php /usr/local/nagios/share/pnp/templates/fetchdispname.php' );
$opt[1] = " --vertical-label \"Traffic $UNIT[1]\" -E --title \"Interface Traffic for $hostname / $servicedesc / $displayname\" ";
I had to change the fetchdispname.php script to the following
Code: Select all
<?php
print( "MyMagicDISPname");
?>
That printed MyMagicDISPname to the top line of graph.