NagiosXI 5.7 and Perfdata

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
Locked
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

NagiosXI 5.7 and Perfdata

Post by snapier3 »

Possible Bug in NagiosXI 5.7.1 Perfdata Collection

Check is configured for perfdata processing set to "On"
no-perfdata.PNG
Perfdata is available in the check, verified via the advanced settings tab.
perfdata-present.PNG
Service check does not indicate perfdata not are graph links present
perfdata-non-working.PNG
You do not have the required permissions to view the files attached to this post.
User avatar
lmiltchev
Bugs find me
Posts: 13589
Joined: Mon May 23, 2011 12:15 pm

Re: NagiosXI 5.7 and Perfdata

Post by lmiltchev »

Please follow ALL of the steps, outlined in the KB article below in order to troubleshoot your performance graph issues:

https://support.nagios.com/kb/article/n ... ems-9.html

Let us know if this helped. Thank you!
Be sure to check out our Knowledgebase for helpful articles and solutions!
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

Re: NagiosXI 5.7 and Perfdata

Post by snapier3 »

Code: Select all

ls /usr/local/nagios/var/spool/perfdata/ | wc -l
returns 3

Code: Select all

ls /usr/local/nagios/var/spool/xidpe/ | wc -l
returns 1

Super low count but, ran this anyway

Code: Select all

find /usr/local/nagios/var/spool/perfdata/ -type f -delete
Tailing of the log file shows no error in processing for npcd

Temp files are created a expected

Code: Select all

1594762707.perfdata.service  1594762708.perfdata.host
There is perfdata present to be processed, just not getting there

Code: Select all

# cat *.*
DATATYPE::SERVICEPERFDATA       TIMET::1594762710       HOSTNAME::linuxmonitor00        SERVICEDESC::lin--check-cadvisor--grafana7      SERVICEPERFDATA::process-0-pid=2007;0;0;0; process-0-parent-pid=1991;0;0;0; process-0-cmd=grafana-server;0;0;0; process-0-start-time=Jul13;0;0;0; process-0-running-time=00:01:36;0;0;0; process-0-cpu=0.1;0;0;0; process-0-mem=1.4;0;0;0; process-0-status=SLsl;0;0;0; process_count=1;0;0;0; total-cpu=0.1;0;0;0; total_mem=1.4;0;0;0;        SERVICECHECKCOMMAND::check-cadvisor!http://192.168.1.113!8888!v2.1!grafana7!--perfdata!!!   HOSTSTATE::UP   HOSTSTATETYPE::HARD     SERVICESTATE::OK        SERVICESTATETYPE::HARD  SERVICEOUTPUT::OK: CONTAINER UP, FOUND (1) TOTAL PROCESS/S FOR (grafana7).  LONGSERVICEOUTPUT::
Core Sees the Data
CorePerfData.PNG
XI Sees the Data
perfdata-present.PNG
Where to go from here?
You do not have the required permissions to view the files attached to this post.
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

Re: NagiosXI 5.7 and Perfdata

Post by snapier3 »

I finally found an error to work with

Code: Select all

No pattern match in function _parse(process-0-cmd=grafana-server;0;0;0; process-0-start-time=Jul13;0;0;0; process-0-running-time=00:01:36;0;0;0; process-0-cpu=0.1;0;0;0; process-0-mem=1.4;0;0;0; process-0-status=SLsl;0;0;0; process_count=1;0;0;0; total-cpu=0.1;0;0;0; total_mem=1.4;0;0;0; )
User avatar
lmiltchev
Bugs find me
Posts: 13589
Joined: Mon May 23, 2011 12:15 pm

Re: NagiosXI 5.7 and Perfdata

Post by lmiltchev »

Can you post the nagios.cfg and commands.cfg files from your Nagios XI server on the forum?
Be sure to check out our Knowledgebase for helpful articles and solutions!
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

Re: NagiosXI 5.7 and Perfdata

Post by snapier3 »

Nagios.cfg

Code: Select all

admin_email=root@localhost
admin_pager=root@localhost
translate_passive_host_checks=1
log_event_handlers=0
use_large_installation_tweaks=1
enable_environment_macros=0


# NDO 3 module
# Commented out by NDO 'make install-broker-line' on Mon Jul 13 22:34:46 UTC 2020
# Commented out by NDO 'make install-broker-line' on Tue Jul 14 19:04:44 CDT 2020
##broker_module=/usr/local/nagios/bin/ndo.so /usr/local/nagios/etc/ndo.cfg


# PNP settings - bulk mode with NCPD
process_performance_data=1
# service performance data
service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$\tSERVICEOUTPUT::$SERVICEOUTPUT$\tLONGSERVICEOUTPUT::$LONGSERVICEOUTPUT$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file-bulk
# host performance data
host_perfdata_file=/usr/local/nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tHOSTOUTPUT::$HOSTOUTPUT$\tLONGHOSTOUTPUT::$LONGHOSTOUTPUT$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file-bulk


# OBJECTS - UNMODIFIED
#cfg_file=/usr/local/nagios/etc/objects/commands.cfg
#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#cfg_file=/usr/local/nagios/etc/objects/templates.cfg
#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg


# STATIC OBJECT DEFINITIONS (THESE DON'T GET EXPORTED/IMPORTED BY NAGIOSQL)
cfg_dir=/usr/local/nagios/etc/static

# OBJECTS EXPORTED FROM NAGIOSQL
cfg_file=/usr/local/nagios/etc/contacttemplates.cfg
cfg_file=/usr/local/nagios/etc/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/contacts.cfg
cfg_file=/usr/local/nagios/etc/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg
cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/servicegroups.cfg
cfg_file=/usr/local/nagios/etc/hosttemplates.cfg
cfg_file=/usr/local/nagios/etc/servicetemplates.cfg
cfg_file=/usr/local/nagios/etc/servicedependencies.cfg
cfg_file=/usr/local/nagios/etc/serviceescalations.cfg
cfg_file=/usr/local/nagios/etc/hostdependencies.cfg
cfg_file=/usr/local/nagios/etc/hostescalations.cfg
cfg_file=/usr/local/nagios/etc/hostextinfo.cfg
cfg_file=/usr/local/nagios/etc/serviceextinfo.cfg
cfg_dir=/usr/local/nagios/etc/hosts
cfg_dir=/usr/local/nagios/etc/services

# GLOBAL EVENT HANDLERS
global_host_event_handler=xi_host_event_handler
global_service_event_handler=xi_service_event_handler



# UNMODIFIED
accept_passive_host_checks=1
accept_passive_service_checks=1
additional_freshness_latency=15
auto_reschedule_checks=1
auto_rescheduling_interval=30
auto_rescheduling_window=45
bare_update_check=0
cached_host_check_horizon=15
cached_service_check_horizon=15
check_external_commands=1
check_for_orphaned_hosts=1
check_for_orphaned_services=1
check_for_updates=1
check_host_freshness=0
check_result_path=/usr/local/nagios/var/spool/checkresults
check_result_reaper_frequency=10
check_service_freshness=1
command_file=/usr/local/nagios/var/rw/nagios.cmd
daemon_dumps_core=0
date_format=us
debug_file=/usr/local/nagios/var/nagios.debug
debug_level=0
debug_verbosity=1
enable_event_handlers=1
enable_flap_detection=1
enable_notifications=1
enable_predictive_host_dependency_checks=1
enable_predictive_service_dependency_checks=1
event_broker_options=-1
event_handler_timeout=30
execute_host_checks=1
execute_service_checks=1
high_host_flap_threshold=20.0
high_service_flap_threshold=20.0
host_check_timeout=30
host_freshness_check_interval=60
host_inter_check_delay_method=s
illegal_macro_output_chars=`~$&|'"<>
illegal_object_name_chars=`~!$%^&*|'"<>?,()=
interval_length=60
lock_file=/var/run/nagios.lock
log_archive_path=/usr/local/nagios/var/archives
log_external_commands=0
log_file=/usr/local/nagios/var/nagios.log
log_host_retries=1
log_initial_states=0
log_notifications=1
log_passive_checks=0
log_rotation_method=d
log_service_retries=1
low_host_flap_threshold=5.0
low_service_flap_threshold=5.0
max_check_result_file_age=3600
max_check_result_reaper_time=30
max_concurrent_checks=0
max_debug_file_size=1000000
max_host_check_spread=30
max_service_check_spread=30
nagios_group=nagios
nagios_user=nagios
notification_timeout=30
object_cache_file=/usr/local/nagios/var/objects.cache
obsess_over_hosts=0
obsess_over_services=0
ocsp_timeout=5
passive_host_checks_are_soft=0
perfdata_timeout=5
precached_object_file=/usr/local/nagios/var/objects.precache
resource_file=/usr/local/nagios/etc/resource.cfg
retained_contact_host_attribute_mask=0
retained_contact_service_attribute_mask=0
retained_host_attribute_mask=0
retained_process_host_attribute_mask=0
retained_process_service_attribute_mask=0
retained_service_attribute_mask=0
retain_state_information=1
retention_update_interval=60
service_check_timeout=60
service_freshness_check_interval=60
service_inter_check_delay_method=s
service_interleave_factor=s
soft_state_dependencies=0
state_retention_file=/usr/local/nagios/var/retention.dat
status_file=/usr/local/nagios/var/status.dat
status_update_interval=10
temp_file=/usr/local/nagios/var/nagios.tmp
temp_path=/tmp
use_aggressive_host_checking=0
use_regexp_matching=0
use_retained_program_state=1
use_retained_scheduling_info=1
use_syslog=1
use_true_regexp_matching=0
# Added by NDO 'make install-broker-line' on Mon Jul 13 22:34:46 UTC 2020
# Commented out by NDO 'make install-broker-line' on Tue Jul 14 19:04:44 CDT 2020
#broker_module=/usr/local/nagios/bin/ndo.so /usr/local/nagios/etc/ndo.cfg

# Added by NDO 'make install-broker-line' on Tue Jul 14 19:04:44 CDT 2020
broker_module=/usr/local/nagios/bin/ndo.so /usr/local/nagios/etc/ndo.cfg

Commands.cfg

Code: Select all

###############################################################################
#
# Commands configuration file
#
# Created by: Nagios CCM 3.0.6
# Date:       2020-07-14 19:04:53
# Version:    Nagios Core 4.x
#
# --- DO NOT EDIT THIS FILE BY HAND ---
# Nagios CCM will overwrite all manual settings during the next update if you
# would like to edit files manually, place them in the 'static' directory or
# import your configs into the CCM by placing them in the 'import' directory.
#
###############################################################################

define command {
    command_name    check-cadvisor
    command_line    $USER1$/check-cadvisor.py -t $ARG1$ -p $ARG2$ -v $ARG3$ -n $ARG4$ $ARG5$
}

define command {
    command_name    check-host-alive
    command_line    $USER1$/check_icmp -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}

define command {
    command_name    check-host-alive-http
    command_line    $USER1$/check_http -H $HOSTADDRESS$
}

define command {
    command_name    check-host-alive-tftp
    command_line    tftp $HOSTNAME$ 69
}

define command {
    command_name    check_bpi
    command_line    /usr/bin/php $USER1$/check_bpi.php $ARG1$
}

define command {
    command_name    check_capacity_planning
    command_line    $USER1$/check_capacity_planning.py $ARG1$ $ARG2$
}

define command {
    command_name    check_dhcp
    command_line    $USER1$/check_dhcp $ARG1$
}

define command {
    command_name    check_dir
    command_line    $USER1$/check_dir -d $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}

define command {
    command_name    check_dns
    command_line    $USER1$/check_dns -H $HOSTNAME$ $ARG1$
}

define command {
    command_name    check_docker
    command_line    $USER1$/check_docker.py $ARG1$
}

define command {
    command_name    check_dummy
    command_line    $USER1$/check_dummy $ARG1$ $ARG2$
}

define command {
    command_name    check_ec2
    command_line    $USER1$/check_ec2.py $ARG1$
}

define command {
    command_name    check_em01_humidity
    command_line    $USER1$/check_em01.pl --type=hum --hum=$ARG1$,$ARG2$ $HOSTADDRESS$
}

define command {
    command_name    check_em01_light
    command_line    $USER1$/check_em01.pl --type=illum --illum=$ARG1$,$ARG2$ $HOSTADDRESS$
}

define command {
    command_name    check_em01_temp
    command_line    $USER1$/check_em01.pl --type=temp --temp=$ARG1$,$ARG2$ $HOSTADDRESS$
}

define command {
    command_name    check_em08_contacts
    command_line    $USER1$/check_em08 $HOSTADDRESS$ C
}

define command {
    command_name    check_em08_humidity
    command_line    $USER1$/check_em08 $HOSTADDRESS$ H $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_em08_light
    command_line    $USER1$/check_em08 $HOSTADDRESS$ I $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_em08_rtd
    command_line    $USER1$/check_em08 $HOSTADDRESS$ R $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_em08_temp
    command_line    $USER1$/check_em08 $HOSTADDRESS$ T $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_em08_voltage
    command_line    $USER1$/check_em08 $HOSTADDRESS$ V $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_email_delivery
    command_line    $USER1$/check_email_delivery $ARG1$
}

define command {
    command_name    check_exchange_rbl
    command_line    $USER1$/check_bl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_file_service
    command_line    $USER1$/folder_watch.pl $ARG1$ $ARG2$ -f
}

define command {
    command_name    check_file_size_age
    command_line    $USER1$/folder_watch.pl $ARG1$ $ARG2$ -f
}

define command {
    command_name    check_ftp
    command_line    $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_ftp_fully
    command_line    $USER1$/check_ftp_fully "$ARG1$" "$ARG2$" "$ARG3$" $HOSTNAME$
}

define command {
    command_name    check_hpjd
    command_line    $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_http
    command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_icmp
    command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
}

define command {
    command_name    check_imap
    command_line    $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_json
    command_line    php $USER1$/check_json.php $ARG1$
}

define command {
    command_name    check_local_disk
    command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
    command_name    check_local_load
    command_line    $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
    command_name    check_local_mem
    command_line    $USER1$/custom_check_mem -w $ARG1$ -c $ARG2$ -n
}

define command {
    command_name    check_local_mrtgtraf
    command_line    $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
}

define command {
    command_name    check_local_procs
    command_line    $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

define command {
    command_name    check_local_swap
    command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$
}

define command {
    command_name    check_local_users
    command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$
}

define command {
    command_name    check_mailserver_rbl
    command_line    $USER1$/check_bl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_mongodb_database
    command_line    $USER1$/check_mongodb.py -H $HOSTADDRESS$ -A $ARG1$ -P $ARG2$ -W $ARG3$ -C $ARG4$ -u $ARG5$ -p $ARG6$ -d $ARG7$ -D
}

define command {
    command_name    check_mongodb_server
    command_line    $USER1$/check_mongodb.py -H $HOSTADDRESS$ -A $ARG1$ -P $ARG2$ -W $ARG3$ -C $ARG4$ -u $ARG5$ -p $ARG6$ -D --all-databases
}

define command {
    command_name    check_mountpoint
    command_line    $USER1$/check_mountpoints.sh $ARG1$
}

define command {
    command_name    check_nagiosxi_performance
    command_line    /usr/bin/php $USER1$/check_nagios_performance.php $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_nagios_performance
    command_line    $USER1$/check_nagios_performance -o $ARG1$ $ARG2$
}

define command {
    command_name    check_none
    command_line    /bin/true
}

define command {
    command_name    check_nrpe
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}

define command {
    command_name    check_nrpeversion
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$
}

define command {
    command_name    check_nt
    command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p $USER7$ -s $USER8$ -v $ARG1$ $ARG2$
}

define command {
    command_name    check_php_snmp_bandwidth
    command_line    $USER1$/get_snmp.php -H=$HOSTADDRESS$ -C=$ARG1$ -2 -I=$ARG2$ -u -w=$ARG3$ -c=$ARG4$ -d=$ARG5$
}

define command {
    command_name    check_ping
    command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

define command {
    command_name    check_pop
    command_line    $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_proc_usage
    command_line    $USER1$/check_proc_usage -p $ARG1$ $ARG2$
}

define command {
    command_name    check_radius_server_py
    command_line    $USER1$/check_radius.py -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_s3
    command_line    $USER1$/check_s3.py $ARG1$
}

define command {
    command_name    check_smtp
    command_line    $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_snmp
    command_line    $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_snmp_int
    command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -2 -n $ARG2$ -f -k -w $ARG3$ -c $ARG4$ $ARG5$
}

define command {
    command_name    check_ssh
    command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}

define command {
    command_name    check_tcp
    command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
}

define command {
    command_name    check_tftp_connect
    command_line    $USER1$/check_tftp.sh --connect $ARG1$
}

define command {
    command_name    check_tftp_get
    command_line    $USER1$/check_tftp.sh --get $ARG1$ '$ARG2$' $ARG3$
}

define command {
    command_name    check_udp
    command_line    $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
}

define command {
    command_name    check_vmware_api_guest
    command_line    $USER1$/check_vmware_api.pl -H "$HOSTADDRESS$" -f "$ARG1$" -N "$ARG2$" -l "$ARG3$" $ARG4$
}

define command {
    command_name    check_vmware_api_host
    command_line    $USER1$/check_vmware_api.pl -H "$HOSTADDRESS$" -f "$ARG1$" -l "$ARG2$" $ARG3$
}

define command {
    command_name    check_xi_by_ssh
    command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ $ARG1$ $ARG2$
}

define command {
    command_name    check_xi_deface
    command_line    $USER1$/check_http -H $HOSTADDRESS$ -r '$ARG1$' -u '$ARG2$' $ARG3$
}

define command {
    command_name    check_xi_domain_v2
    command_line    $USER1$/check_domain.php -d $ARG1$ $ARG2$ $ARG3$
}

define command {
    command_name    check_xi_host_http
    command_line    $USER1$/check_http -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_host_ping
    command_line    $USER1$/check_icmp -H $HOSTADDRESS$ -w $ARG1$,$ARG2$ -c $ARG3$,$ARG4$ -p 5
}

define command {
    command_name    check_xi_hyperv
    command_line    $USER1$/check_ncpa.py -H $HOSTADDRESS$ -t $_HOSTNCPA_TOKEN$ -P $_HOSTNCPA_PORT$ -M $ARG1$ -w $ARG2$ -c $ARG3$
}

define command {
    command_name    check_xi_java_as
    command_line    JAVA_ABS_PATH -Djava.class.path=$ARG2$:$USER1$/check_jvm.jar GenericASCheck $ARG1$
}

define command {
    command_name    check_xi_java_weblogic
    command_line    $USER1$/check_wlsagent.sh $ARG1$
}

define command {
    command_name    check_xi_mssql_database2
    command_line    $USER1$/check_mssql_server.php -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_mssql_query
    command_line    $USER1$/check_mssql -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_mssql_server2
    command_line    $USER1$/check_mssql_server.php -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_mysql_health
    command_line    $USER1$/check_mysql_health $ARG1$
}

define command {
    command_name    check_xi_mysql_query
    command_line    $USER1$/check_mysql_health $ARG1$
}

define command {
    command_name    check_xi_nagiosxiserver
    command_line    /usr/bin/php $USER1$/check_nagiosxiserver.php $ARG1$
}

define command {
    command_name    check_xi_ncpa
    command_line    $USER1$/check_ncpa.py -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_nna
    command_line    $USER1$/check_nna.py -H $HOSTADDRESS$ -K $ARG1$ $ARG2$
}

define command {
    command_name    check_xi_oraclequery
    command_line    . /usr/local/nagiosxi/etc/configwizards/oracle/oracle && $USER1$/check_oracle_health $ARG1$
}

define command {
    command_name    check_xi_oracleserverspace
    command_line    . /usr/local/nagiosxi/etc/configwizards/oracle/oracle && $USER1$/check_oracle_health $ARG1$
}

define command {
    command_name    check_xi_oracletablespace
    command_line    . /usr/local/nagiosxi/etc/configwizards/oracle/oracle && $USER1$/check_oracle_health $ARG1$
}

define command {
    command_name    check_xi_postgres
    command_line    $USER1$/check_postgres.pl $ARG1$
}

define command {
    command_name    check_xi_postgres_db
    command_line    $USER1$/check_postgres.pl $ARG1$
}

define command {
    command_name    check_xi_postgres_query
    command_line    $USER1$/check_postgres.pl $ARG1$
}

define command {
    command_name    check_xi_service_dns
    command_line    $USER1$/check_dns -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_dnsquery
    command_line    $USER1$/check_dns $ARG1$
}

define command {
    command_name    check_xi_service_ftp
    command_line    $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_hpjd
    command_line    $USER1$/check_hpjd -H $HOSTADDRESS$ -C $ARG1$
}

define command {
    command_name    check_xi_service_http
    command_line    $USER1$/check_http -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_http_cert
    command_line    $USER1$/check_http -H $HOSTADDRESS$ -C $ARG1$
}

define command {
    command_name    check_xi_service_http_content
    command_line    $USER1$/check_http -H $HOSTADDRESS$ --onredirect=follow -s "$ARG1$"
}

define command {
    command_name    check_xi_service_ifoperstatus
    command_line    $USER1$/check_ifoperstatus -H $HOSTADDRESS$ -C $ARG1$ -k $ARG2$ $ARG3$
}

define command {
    command_name    check_xi_service_ifoperstatusnag
    command_line    $USER1$/check_ifoperstatnag $ARG1$ $ARG2$ $HOSTADDRESS$
}

define command {
    command_name    check_xi_service_imap
    command_line    $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_ldap
    command_line    $USER1$/check_ldap -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_mrtgtraf
    command_line    $USER1$/check_rrdtraf -f /var/lib/mrtg/$ARG1$ -w $ARG2$ -c $ARG3$ -l $ARG4$
}

define command {
    command_name    check_xi_service_nagioslogserver
    command_line    $USER1$/check_nagioslogserver.php $ARG1$
}

define command {
    command_name    check_xi_service_none
    command_line    $USER1$/check_dummy 0 "Nothing to monitor"
}

define command {
    command_name    check_xi_service_nsclient
    command_line    $USER1$/check_nt -H $HOSTADDRESS$ -s "$ARG1$" -p 12489 -v $ARG2$ $ARG3$ $ARG4$
}

define command {
    command_name    check_xi_service_ping
    command_line    $USER1$/check_icmp -H $HOSTADDRESS$ -w $ARG1$,$ARG2$ -c $ARG3$,$ARG4$ -p 5
}

define command {
    command_name    check_xi_service_pop
    command_line    $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_smtp
    command_line    $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp
    command_line    $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_linux_load
    command_line    $USER1$/check_snmp_load_wizard.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_linux_process
    command_line    $USER1$/check_snmp_process_wizard.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_linux_storage
    command_line    $USER1$/check_snmp_storage_wizard.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_watchguard
    command_line    $USER1$/check_snmp_generic.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_win_load
    command_line    $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_win_process
    command_line    $USER1$/check_snmp_process.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_win_service
    command_line    $USER1$/check_snmp_win.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_snmp_win_storage
    command_line    $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_ssh
    command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}

define command {
    command_name    check_xi_service_status
    command_line    sudo /usr/local/nagiosxi/scripts/manage_services.sh status $ARG1$
}

define command {
    command_name    check_xi_service_tcp
    command_line    $USER1$/check_tcp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_udp
    command_line    $USER1$/check_udp -H $HOSTADDRESS$ $ARG1$
}

define command {
    command_name    check_xi_service_webinject
    command_line    $USER1$/check_webinject.sh $ARG1$
}

define command {
    command_name    check_xi_service_wmiplus
    command_line    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -m $ARG3$ $ARG4$
}

define command {
    command_name    check_xi_service_wmiplus_authfile
    command_line    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -A $ARG1$ -m $ARG2$ $ARG3$
}

define command {
    command_name    check_xi_sla2
    command_line    $USER1$/check_xi_sla.php $ARG1$
}

define command {
    command_name    check_xml
    command_line    php $USER1$/check_xml.php $ARG1$
}

define command {
    command_name    notify-host-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios Monitor XI Alert *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

define command {
    command_name    notify-service-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios Monitor XI Alert *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

define command {
    command_name    process-host-perfdata-file-bulk
    command_line    /bin/mv /usr/local/nagios/var/host-perfdata /usr/local/nagios/var/spool/xidpe/$TIMET$.perfdata.host
}

define command {
    command_name    process-host-perfdata-file-pnp-bulk
    command_line    /bin/mv /usr/local/nagios/var/host-perfdata /usr/local/nagios/var/spool/perfdata/host-perfdata.$TIMET$
}

define command {
    command_name    process-host-perfdata-pnp-normal
    command_line    /usr/bin/perl /usr/local/nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}

define command {
    command_name    process-service-perfdata-file-bulk
    command_line    /bin/mv /usr/local/nagios/var/service-perfdata /usr/local/nagios/var/spool/xidpe/$TIMET$.perfdata.service
}

define command {
    command_name    process-service-perfdata-file-pnp-bulk
    command_line    /bin/mv /usr/local/nagios/var/service-perfdata /usr/local/nagios/var/spool/perfdata/service-perfdata.$TIMET$
}

define command {
    command_name    process-service-perfdata-pnp-normal
    command_line    /usr/bin/perl /usr/local/nagios/libexec/process_perfdata.pl
}

define command {
    command_name    xi_host_event_handler
    command_line    /usr/bin/php /usr/local/nagiosxi/scripts/handle_nagioscore_event.php --handler-type=host --host="$HOSTNAME$" --hostaddress="$HOSTADDRESS$" --hoststate=$HOSTSTATE$ --hoststateid=$HOSTSTATEID$ --lasthoststate=$LASTHOSTSTATE$ --lasthoststateid=$LASTHOSTSTATEID$ --hoststatetype=$HOSTSTATETYPE$ --currentattempt=$HOSTATTEMPT$ --maxattempts=$MAXHOSTATTEMPTS$ --hosteventid=$HOSTEVENTID$ --hostproblemid=$HOSTPROBLEMID$ --hostoutput="$HOSTOUTPUT$" --longhostoutput="$LONGHOSTOUTPUT$" --hostdowntime=$HOSTDOWNTIME$
}

define command {
    command_name    xi_host_notification_handler
    command_line    /usr/bin/php /usr/local/nagiosxi/scripts/handle_nagioscore_notification.php --notification-type=host --contact="$CONTACTNAME$" --contactemail="$CONTACTEMAIL$" --type=$NOTIFICATIONTYPE$ --escalated="$NOTIFICATIONISESCALATED$" --author="$NOTIFICATIONAUTHOR$" --comments="$NOTIFICATIONCOMMENT$" --host="$HOSTNAME$" --hostaddress="$HOSTADDRESS$" --hostalias="$HOSTALIAS$" --hostdisplayname="$HOSTDISPLAYNAME$" --hoststate=$HOSTSTATE$ --hoststateid=$HOSTSTATEID$ --lasthoststate=$LASTHOSTSTATE$ --lasthoststateid=$LASTHOSTSTATEID$ --hoststatetype=$HOSTSTATETYPE$ --currentattempt=$HOSTATTEMPT$ --maxattempts=$MAXHOSTATTEMPTS$ --hosteventid=$HOSTEVENTID$ --hostproblemid=$HOSTPROBLEMID$ --hostoutput="$HOSTOUTPUT$" --longhostoutput="$LONGHOSTOUTPUT$" --datetime="$LONGDATETIME$"
}

define command {
    command_name    xi_service_event_handler
    command_line    /usr/bin/php /usr/local/nagiosxi/scripts/handle_nagioscore_event.php --handler-type=service --host="$HOSTNAME$" --service="$SERVICEDESC$" --hostaddress="$HOSTADDRESS$" --hoststate=$HOSTSTATE$ --hoststateid=$HOSTSTATEID$ --hosteventid=$HOSTEVENTID$ --hostproblemid=$HOSTPROBLEMID$ --servicestate=$SERVICESTATE$ --servicestateid=$SERVICESTATEID$ --lastservicestate=$LASTSERVICESTATE$ --lastservicestateid=$LASTSERVICESTATEID$ --servicestatetype=$SERVICESTATETYPE$ --currentattempt=$SERVICEATTEMPT$ --maxattempts=$MAXSERVICEATTEMPTS$ --serviceeventid=$SERVICEEVENTID$ --serviceproblemid=$SERVICEPROBLEMID$ --serviceoutput="$SERVICEOUTPUT$" --longserviceoutput="$LONGSERVICEOUTPUT$" --servicedowntime=$SERVICEDOWNTIME$
}

define command {
    command_name    xi_service_notification_handler
    command_line    /usr/bin/php /usr/local/nagiosxi/scripts/handle_nagioscore_notification.php --notification-type=service --contact="$CONTACTNAME$" --contactemail="$CONTACTEMAIL$" --type=$NOTIFICATIONTYPE$ --escalated="$NOTIFICATIONISESCALATED$" --author="$NOTIFICATIONAUTHOR$" --comments="$NOTIFICATIONCOMMENT$" --host="$HOSTNAME$" --hostaddress="$HOSTADDRESS$" --hostalias="$HOSTALIAS$" --hostdisplayname="$HOSTDISPLAYNAME$" --service="$SERVICEDESC$" --hoststate=$HOSTSTATE$ --hoststateid=$HOSTSTATEID$ --servicestate=$SERVICESTATE$ --servicestateid=$SERVICESTATEID$ --lastservicestate=$LASTSERVICESTATE$ --lastservicestateid=$LASTSERVICESTATEID$ --servicestatetype=$SERVICESTATETYPE$ --currentattempt=$SERVICEATTEMPT$ --maxattempts=$MAXSERVICEATTEMPTS$ --serviceeventid=$SERVICEEVENTID$ --serviceproblemid=$SERVICEPROBLEMID$ --serviceoutput="$SERVICEOUTPUT$" --longserviceoutput="$LONGSERVICEOUTPUT$" --datetime="$LONGDATETIME$"
}

###############################################################################
#
# Commands configuration file
#
# END OF FILE
#
###############################################################################
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

Re: NagiosXI 5.7 and Perfdata

Post by snapier3 »

Think I have this issue solved now.

In looking through the logic in "process_perfdata.pl" we get this function

Code: Select all

    my $string     = shift;
    my $tmp_string = $string;
    $string =~ s/^([^=]+)=([\d\.\-]+)([\w\/%]*);?([\d\.\-:~@]+)?;?([\d\.\-:~@]+)?;?([\d\.\-]+)?;?([\d\.\-]+)?;?\s*//;

    if ( $tmp_string eq $string ) {
        print_log( "No pattern match in function _parse($string)", 2 );
        return undef;
    }
A breakdown of that regex (https://regex101.com/)

Code: Select all

gm
~s matches the characters ~s literally (case sensitive)
\/ matches the character / literally (case sensitive)
^ asserts position at start of a line

1st Capturing Group ([^=]+)
Match a single character not present in the list below [^=]+
+ Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
= matches the character = literally (case sensitive)
= matches the character = literally (case sensitive)

2nd Capturing Group ([\d\.\-]+)
Match a single character present in the list below [\d\.\-]+
+ Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
\d matches a digit (equal to [0-9])
\. matches the character . literally (case sensitive)
\- matches the character - literally (case sensitive)

3rd Capturing Group ([\w\/%]*)
Match a single character present in the list below [\w\/%]*
* Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)
\w matches any word character (equal to [a-zA-Z0-9_])
\/ matches the character / literally (case sensitive)
% matches the character % literally (case sensitive)
;?
matches the character ; literally (case sensitive)
? Quantifier — Matches between zero and one times, as many times as possible, giving back as needed (greedy)

4th Capturing Group ([\d\.\-:~@]+)?
? Quantifier — Matches between zero and one times, as many times as possible, giving back as needed (greedy)
Match a single character present in the list below [\d\.\-:~@]+
;?
matches the character ; literally (case sensitive)

5th Capturing Group ([\d\.\-:~@]+)?
;?
matches the character ; literally (case sensitive)

6th Capturing Group ([\d\.\-]+)?
;?
matches the character ; literally (case sensitive)

7th Capturing Group ([\d\.\-]+)?
;?
matches the character ; literally (case sensitive)
\s*

matches any whitespace character (equal to [\r\n\t\f\v ])
\/ matches the character / literally (case sensitive)
\/ matches the character / literally (case sensitive)

Global pattern flags
g modifier: global. All matches (don't return after first match)
m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
The 2nd group is the culprit for my error.

Code: Select all

2nd Capturing Group ([\d\.\-]+)
Match a single character present in the list below [\d\.\-]+
+ Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
\d matches a digit (equal to [0-9])
\. matches the character . literally (case sensitive)
\- matches the character - literally (case sensitive)
My Performance data output contains strings

process-0-cmd=grafana-server
process-0-status=SLsl
process-0-start-time=Jul13

To workaround this I prepended the values in my scripting with a "."

perfdata.log

Code: Select all

 Found Performance Data for linuxmonitor00 / lin--check-cadvisor--grafana7 (process-zero-pid=2007 process-zero-parentpid=1991 process-zero-cmd=.grafana-server process-zero-starttime=.Jul13 process-zero-runningtime=00:03:09 process-zero-cpu=0.1 process-zero-mem=1.4 process-zero-status=.SLsl processcount=1 totalcpu=0.1 totalmem=1.4)
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] No Custom Template found for check-cadvisor (/usr/local/nagios/etc/pnp/check_commands/check-cadvisor.cfg)
2020-07-15 18:05:45 [780689] [2] Template is check-cadvisor.php
2020-07-15 18:05:45 [780689] [2] data2rrd called
2020-07-15 18:05:45 [780689] [2] Reading /usr/local/nagios/etc/pnp/rra.cfg
2020-07-15 18:05:45 [780689] [2] RRDs::create /usr/local/nagios/share/perfdata/linuxmonitor00/lin--check-cadvisor--grafana7.rrd RRA:AVERAGE:0.5:1:2880 RRA:AVERAGE:0.5:5:2880 RRA:AVERAGE:0.5:30:4320 RRA:AVERAGE:0.5:360:5840 RRA:MAX:0.5:1:2880 RRA:MAX:0.5:5:2880 RRA:MAX:0.5:30:4320 RRA:MAX:0.5:360:5840 RRA:MIN:0.5:1:2880 RRA:MIN:0.5:5:2880 RRA:MIN:0.5:30:4320 RRA:MIN:0.5:360:5840 DS:1:GAUGE:8460:U:U DS:2:GAUGE:8460:U:U DS:3:GAUGE:8460:U:U DS:4:GAUGE:8460:U:U DS:5:GAUGE:8460:U:U DS:6:GAUGE:8460:U:U DS:7:GAUGE:8460:U:U DS:8:GAUGE:8460:U:U DS:9:GAUGE:8460:U:U DS:10:GAUGE:8460:U:U DS:11:GAUGE:8460:U:U --start=1594854330 --step=60
2020-07-15 18:05:45 [780689] [2] /usr/local/nagios/share/perfdata/linuxmonitor00/lin--check-cadvisor--grafana7.rrd created
We have Data-Ish!
dataGuage.PNG
I say data-ish because it still wont give you pretty graphs in the Performance Data Explorer or Graph Explorer
PerformanceGraphs.PNG
graphExplorer.PNG
To overcome that issue there's only one fix. Only use numbers after the = sign in Nagios Performance Data.
You do not have the required permissions to view the files attached to this post.
scottwilkerson
DevOps Engineer
Posts: 19396
Joined: Tue Nov 15, 2011 3:11 pm
Location: Nagios Enterprises
Contact:

Re: NagiosXI 5.7 and Perfdata

Post by scottwilkerson »

Sorry we missed that on your first post, YES, you can only have numeric value after the =
See the following for the format
https://nagios-plugins.org/doc/guidelines.html#AEN200
Former Nagios employee
Creator:
Human Design Website
Get Your Human Design Chart
Locked