NConf est une interface web d’administration des fichiers de configuration de Nagios. En attendant qu’on se penche sur son cas en détail
, vous pouvez suivre le tuto réalisé par Nicolargo pour l’installation.
Dans cette partie, nous ne traiterons que l’import des fichiers de conf( .cfg). Le tutorial de Nicolargo est très bien écrit, il ne manque que la partie import. Lors de l’installation de celui-ci, il n’est pas possible de synchroniser la configuration nagios avec l’interface graphique Nconf.
voici un exemple des fichiers de conf :
define command{
command_name check-host-alive-ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
}
define command{
command_name check_ssh
command_line $USER1$/check_ssh -p $ARG1$ $HOSTADDRESS$
}
define command{
command_name check_dhcp
command_line $USER1$/check_dhcp $ARG1$
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
define contact{
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
contact_name nagiosadmin
alias Nagios Admin
email salut@free.fr
}
define hostgroup{
hostgroup_name http-hostgroup
alias Http serveurs
}
define hostgroup{
hostgroup_name linux-hostgroup
alias Linux serveurs
}
define hostgroup{
hostgroup_name windows-hostgroup
alias Windows serveurs
}
define host{
name linux-server
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
retain_status_information 1
retain_nonstatus_information 1
check_period 24x7
check_interval 20
retry_interval 2
max_check_attempts 5
check_command check-host-alive-ping
notification_period 24x7
notification_interval 600
notification_options d,u,r
contact_groups admins
hostgroups linux-hostgroup
register 0
}
define host{
name windows-server
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
retain_status_information 1
retain_nonstatus_information 1
check_period 24x7
check_interval 20
retry_interval 2
max_check_attempts 5
check_command check-host-alive-ping
notification_period 24x7
notification_interval 600
notification_options d,r
contact_groups admins
hostgroups windows-hostgroup
register 0
}
# 'notify-host-by-email' command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 5
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 600
notification_period 24x7
register 0
}
define service{
name http-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 15
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 600
notification_period 24x7
register 0
}
Il n’est pas nécessaire d’importer les hosts.cfg et services.cfg car vous l’avez déjà dans votre configuration nagios.
On suppose que les fichiers de conf sont dans /usr/local/nagios/etc/
Aller dans la configuration Nconf et supprimer tous les modèles ( timeperiod, misccommand,checkcommand ,contact ,contactgroup ,hostgroup , service-template)
Je n’avais pas besoin du renseignement de l’OS des machines, je l’ai donc supprimer : aller dans “Attributes” et supprimer l’“ OS ”
Se placer dans le dossier bin : cd /usr/local/nconf/bin/
# ./add_items_from_cfg.pl -x 5 -s -c misccommand -n command_name -f /usr/local/nagios/etc/objects/misccommand.cfg # ./add_items_from_cfg.pl -x 5 -s -c checkcommand -n command_name -f /usr/local/nagios/etc/objects/checkcommand.cfg # ./add_items_from_cfg.pl -x 5 -s -c contact -n contact_name -f /usr/local/nagios/etc/objects/contacts.cfg # ./add_items_from_cfg.pl -x 5 -s -c contactgroup -n contactgroup_name -f /usr/local/nagios/etc/objects/contactgroup.cfg # ./add_items_from_cfg.pl -x 5 -s -c host-template -n name -f /usr/local/nagios/etc/objects/host_template.cfg # ./add_items_from_cfg.pl -x 5 -s -c hostgroup -n hostgroup_name -f /usr/local/nagios/etc/objects/hostgroup.cfg # ./add_items_from_cfg.pl -x 5 -s -c service-template -n name -f /usr/local/nagios/etc/objects/service_template.cfg
=⇒ A la fin, il ne faut aucune erreur pour passer l’étape suivante.
# ./add_items_from_cfg.pl -x 5 -c misccommand -n command_name -f /usr/local/nagios/etc/objects/misccommand.cfg # ./add_items_from_cfg.pl -x 5 -c checkcommand -n command_name -f /usr/local/nagios/etc/objects/checkcommand.cfg # ./add_items_from_cfg.pl -x 5 -c contact -n contact_name -f /usr/local/nagios/etc/objects/contacts.cfg # ./add_items_from_cfg.pl -x 5 -c contactgroup -n contactgroup_name -f /usr/local/nagios/etc/objects/contactgroup.cfg # ./add_items_from_cfg.pl -x 5 -c host-template -n name -f /usr/local/nagios/etc/objects/host_template.cfg # ./add_items_from_cfg.pl -x 5 -c hostgroup -n hostgroup_name -f /usr/local/nagios/etc/objects/hostgroup.cfg # ./add_items_from_cfg.pl -x 5 -c service-template -n name -f /usr/local/nagios/etc/objects/service_template.cfg
# vim nagios.cfg
############## NCONF ################# cfg_file=/usr/local/nagios/etc/Default_collector/extended_host_info.cfg cfg_file=/usr/local/nagios/etc/Default_collector/extended_service_info.cfg cfg_file=/usr/local/nagios/etc/Default_collector/hostgroups.cfg cfg_file=/usr/local/nagios/etc/Default_collector/hosts.cfg cfg_file=/usr/local/nagios/etc/Default_collector/servicegroups.cfg cfg_file=/usr/local/nagios/etc/Default_collector/services.cfg
* Ajouter un host “test”, avec les services associés.
* Cliquer sur “Generate Nagios config”
* S’il n’y pas de message d’erreur, vous pouvez lancer la commande suivante pour générer la conf nagios via Nconf : /usr/local/nconf/ADD-ONS# ./deploy_local.sh