###############################################################################
# LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE
#
# Last Modified: 07-24-2018
#
# NOTE: This config file is intended to serve as an *extremely* simple 
#       example of how you can create configuration entries to monitor
#       the local (Linux) machine.
#
###############################################################################

###############################################################################
# HOST DEFINITION
###############################################################################

# Define a host for the local machine

define host {
    use             linux-server    ; Name of host template to use
                                    ; This host definition will inherit all variables that are defined
                                    ; in (or inherited by) the linux-server host template definition.
    host_name       localhost
    alias           localhost
    address         127.0.0.1
}

###############################################################################
# HOST GROUP DEFINITION
###############################################################################

# Define an optional hostgroup for Linux machines

define hostgroup {
    hostgroup_name  linux-servers   ; The name of the hostgroup
    alias           Linux Servers   ; Long name of the group
    members         localhost       ; Comma separated list of hosts that belong to this group
}

###############################################################################
# SERVICE DEFINITIONS
###############################################################################

# Define a service to "ping" the local machine

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}

# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Root Partition
    check_command           check_local_disk!20%!10%!/
}

# Define a service to check the number of currently logged in
# users on the local machine.  Warning if > 20 users, critical
# if > 50 users.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Current Users
    check_command           check_local_users!20!50
}

# Define a service to check the number of currently running procs
# on the local machine.  Warning if > 250 processes, critical if
# > 400 users.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Total Processes
    check_command           check_local_procs!400!500!RSZDT
}

# Define a service to check the load on the local machine. 

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Current Load
    check_command           check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}

# Define a service to check the swap usage the local machine. 
# Critical if less than 10% of swap is free, warning if less than 20% is free

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Swap Usage
    check_command           check_local_swap!50%!30%
}

# Define a service to check the swap usage the local machine. 
# Critical if less than 10% of swap is free, warning if less than 20% is free

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Memory Usage
    check_command           check_local_mem!30!20
}

# Define a service to check SSH on the local machine.
# Disable notifications for this service by default, as not all users may have SSH enabled.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     SSH
    check_command           check_ssh
}

# Define a service to check HTTP on the local machine.
# Disable notifications for this service by default, as not all users may have HTTP enabled.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     HTTP
    check_command           check_http
}

# Define a service to check status of httpd on the local machine.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Service Status - httpd
    check_command           check_xi_service_status!httpd!!!!!!
}
        
# Define a service to check status of mysqld on the local machine.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Service Status - mysqld
    check_command           check_xi_service_status!mysqld!!!!!!
}
        
# Define a service to check status of crond on the local machine.

define service {
    use                     local-service       ; Name of service template to use
    host_name               localhost
    service_description     Service Status - crond
    check_command           check_xi_service_status!crond!!!!!!
}
