La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction, Architecture

Présentations similaires


Présentation au sujet: "Introduction, Architecture"— Transcription de la présentation:

1

2 Introduction, Architecture

3 Nagios? Une application Open Source (GPL) pour administrer votre système d’information Disponibles sur Linux, FreeBSD, Solaris, etc. Administre les serveurs et les services de votre SI Fournit une vision générale sur l’état des éléments de votre SI Vous alerte quand les choses vont dans le mauvais sens Vous permet de résoudre rapidement vos problèmes Elabore des rapports pour par exemple évaluer la Qualité de service, pour la gestion de contrat de service.

4 Déploiement Disponible depuis six ans
Pour les installations les plus importantes des milliers de serveurs et de services pris en compte Plus de150,000 téléchargements de la dernière version stable (1.2)

5 Design Un design modulaire
Un Daemon chef d'orchestre de la logique de monitoring et de la coordination des actions et du traitement Les CGIs permettent aux utilisateurs d’accéder aux information aux travers de navigateurs (firefox, mozilla, ie etc..) Des applications externes pour le monitoring de bas niveau Des commandes externes peut être déclenchées pour prendre en compte des alertes, des changements d’état ou tout simplement des informations de monitoring Possibilité d’intégrer facilement des 3rd-party applications

6 L’architecture

7 Nagios Que peut-on administrer? Les cibles du monitoring
Serveurs, stations, imprimantes, routers, etc. De façon plus générique, toute chose qui: A un adresse ou est associé à une adresse “atteignable” Nagios ne connaît pas et ne soucie pas des protocoles ou des adresses Pas limité au monitoring des équipements de réseau ou des services d’un système d’information Les cibles du monitoring “Hosts” “Services”

8 Les briques fondamentales
“Hosts” Une “ chose  ” physique (server, commutateurs, routers, imprimantes, etc.) Peut avoir des relations parents/enfants avec les autres “hosts” Fournit un ou plusieurs services “ Services ” “ Choses ” associées avec/ou fournit par un “host” Les “Tangibles services” (e.g. disque usage, le manque toner imprimante) Les “Intangible services” (e.g. HTTP, SMTP, IMAP, POP3, DNS)

9 Exemple d’admin par nagios

10 Vue “hosts” nagios de l’exemple

11 Vue “services” nagios de l’exemple

12 “Plugins ?” Comment sont monitorés les “hosts” et “services”?
Nagios ne comprend pas les adresses réseaux, les protocoles ou les services Nagios passe des information sur les objets qui doivent être contrôlés en utilisant des commandes externes (plugins) Les Plugins font le contrôle proprement dit sur les hosts and services et retourne l’information à Nagios Qu’est-ce un plugins? Shell ou un perl scripts, des exécutables, etc. Comprend les adresses réseaux, les protocoles, services, etc.

13 “Plugins” architecture

14 “Plugins” Quelles informations le plugins retournent? Du texte
Visualisé au travers d’une interface web, en notification, etc Un Return code Permet de déterminer l’état des objets 4 possible return codes donnant l’état: 0 = OK 1 = WARNING 2 = CRITICAL 3 = UNKNOWN

15 “Service Checks” Services Service checks
Les services sont la raison principale du monitoring Si un “host” n’offre pas de services utiles, pourquoi l’administrer Service checks Le contrôle (Checks) des services est effectué de façon régulière à intervalles programmés en utilisant les plugins Plusieurs services peuvent être contrôlés en parallèle 4 états possibles: OK, WARNING, CRITICAL, and UNKNOWN Vous pouvez tout monitorer a condition d’avoir un plugin : Simple: HTTP, IMAP, DNS, disk usage, etc. Plus complexe: Web transactions, detection de boucles de mail, etc.

16 “Service Checks”

17 “Host Checks” Hosts Host Checks Des “Containers” pour services
Comme avec les services, les checks sont fait en utilisant des plugins Checks sont effectués à la demande après un changement d’état d’un service Souvent le point critique est: le réel problème vient du service ou du host? Nécessite une information pertinente sur l’état de l’host Trois états possibles: UP, DOWN, et UNREACHABLE Peut déclencher une vérification de route

18 Host Route Vérification
Qu’est qui peut faire qu’un host n’est pas UP? L’host est DOWN La route vers l’host est bloquée par un ou plusieurs hosts (UNREACHABLE) Vérification de route Détermine si les “hosts” sont DOWN ou UNREACHABLE Peut-être consommateur en temps si le réseau est très dispersé Pourquoi si utile? Commode pour détermine la cause réelle quant les problèmes sont très dispersées Différents état des host peuvent être déterminés en appliquant différentes logiques de calcul ou de notification.

19 Host Route Vérification
Les relations logiques entre host - Le monde selon Nagios

20 Host Route Vérification
Le problème est détecté avec le 'Port Status' service sur le Switch2...

21 Host Route Vérification
Switch2 est alors contrôlé et trouvé NOT be UP...

22 Host Route Vérification
Le Check est propagé en amont jusqu’au Firewall1, qui aussi NOT UP...

23 Host Route Vérification
Le Check est propagé en amont jusqu’au Switch1, qui trouvé UP

24 Host Route Vérification
La joignabilité du Switch2 ne peut être connu - Firewall1 est DOWN est Switch2 est UNREACHABLE.

25 Host Route Vérification
Checks sont propagés aux enfants de SWITCH2, qui sont marqués comme UNREACHABLE

26 Host Route Vérification
Les autres enfants de Firewall1 sont contrôlés ensuite, et marqués UNREACHABLE

27 L’interface

28 Status map

29 Autre vue

30 Une vue sur l'état du SI

31 Les entités managées Les hosts Décrire toutes les entités managés, serveurs, stations, équipements Les hostsgroups Regroupements des machines par types (utilisés pour l'affichage, les rapports, etc..) Exemple: Les routeurs, les gateways, les serveurs windows, les linux, les serveurs web, etc... Les services: Les services qui vont être délivrés par la plate-forme Exemple: Ping

32 Exemple vue statistique

33 Vue histo d'un host

34 Alert summary rapport

35 Le log d’évenements

36 Exemple log d’event

37 Exemple d’un passage état warning

38 Les évenements

39 Les notifications

40 Les problèmes réseaux

41

42 In depth

43 Installation SNMP Debian fedora Fichier de configuration
apt-get install snmpd apt-get install snmp fedora yum install net-snmp Fichier de configuration /etc/snmp/snmpd.conf

44 Fichier de conf snmp Debien /etc/snmp/snmpd.conf
# sec.name source community #com2sec paranoid default public com2sec readonly default public #com2sec readwrite default private #### # Second, map the security names into group names: # sec.model sec.name group MyROSystem v paranoid group MyROSystem v2c paranoid group MyROSystem usm paranoid group MyROGroup v readonly group MyROGroup v2c readonly group MyROGroup usm readonly group MyRWGroup v readwrite group MyRWGroup v2c readwrite group MyRWGroup usm readwrite # Third, create a view for us to let the groups have rights to: # incl/excl subtree mask view all included view system included .iso.org.dod.internet.mgmt.mib-2.system # Finally, grant the 2 groups access to the 1 view with different # write permissions: # context sec.model sec.level match read write notif access MyROSystem "" any noauth exact system none none access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all none Dans ce fichier de conf on a validé le readonly avec le nom public et l'autorisation de lecteur (RO), après installation, c'est la section paranoid qui est validé.

45 Install/config nagios
Soit tarball, soit .deb débian, soit .rpm Les principaux fichiers de configuration: nagios.cfg décrit les paramètres principaux de nagios, en particulier ou se trouve les fichiers de configuration tel que hosts.cfg, service.cfg etc.. hosts.cfg décrit l’ensemble des hôtes service.cfg décrit l’ensemble des hôtes checkcommands.cfg décrit les commandes

46 hosts.cfg ############################################################################### # # HOSTS # Generic host definition template - This is NOT a real host, just a template! define host{ name generic-host ; The name of this host template notifications_enabled ; Host notifications are enabled event_handler_enabled ; Host event handler is enabled flap_detection_enabled ; Flap detection is enabled failure_prediction_enabled ; Failure prediction is enabled process_perf_data ; Process performance data retain_status_information ; Retain status information across program restarts retain_nonstatus_information ; Retain non-status information across program restarts register ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! } # Since this is a simple configuration file, we only monitor one host - the # local host (this machine). use generic-host ; Name of host template to use host_name debian alias debian address check_command check-host-alive-snmp max_check_attempts check_period x7 notification_interval 120 notification_period x7 notification_options d,r contact_groups admins host_name switchB alias switchB address parents debian check_period x7

47 service.cfg # Generic service definition template - This is NOT a real service, just a template! define service{ name generic-service ; The 'name' of this service template active_checks_enabled ; Active service checks are enabled passive_checks_enabled ; Passive service checks are enabled/accepted parallelize_check ; Active service checks should be parallelized obsess_over_service ; We should obsess over this service (if necessary) check_freshness ; Default is to NOT check service 'freshness' notifications_enabled ; Service notifications are enabled event_handler_enabled ; Service event handler is enabled flap_detection_enabled ; Flap detection is enabled failure_prediction_enabled ; Failure prediction is enabled process_perf_data ; Process performance data retain_status_information ; Retain status information across program restarts retain_nonstatus_information ; Retain non-status information across program restarts register ; DONT REGISTER THIS -ITS NOT A REAL SERVICE, JUST A TEMPLATE! } # Define a service to "ping" the local machine use generic-service ; Name of service template to use host_name R1 service_description PING is_volatile check_period x7 max_check_attempts normal_check_interval retry_check_interval contact_groups admins notification_options w,u,c,r notification_interval notification_period x7 check_command check_ping!100.0,20%!500.0,60% service_description FA0/0 max_check_attempts check_command check-router-interface-FA0-0

48

49 checkcommands.cfg # COMMAND DEFINITIONS # # SYNTAX: # define command{
# template <templatename> # name <objectname> # command_name <commandname> # command_line <commandline> # } # WHERE: # <templatename> = object name of another command definition that should be # used as a template for this definition (optional) # <objectname> = object name of command definition, referenced by other # command definitions that use it as a template (optional) # <commandname> = name of the command, as recognized/used by Nagios # <commandline> = command line Exemple define command{ command_name check_ping command_line $USER1$/check_icmp -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 } command_name check_dns command_line $USER1$/check_dns -H -s $HOSTADDRESS$ } # on cherche l’adresse de à partire dns préciser par -s command_name check_status_brother command_line $USER1$/check_snmp -H o C public

50 plugins Définition de la commande dans /usr/local/nagios/etc répertoire ou se trouve les fichiers de conf peut être changé par configuration) define command{ command_name check-router-interface-FA0-0 command_line $USER1$/test_interface-FA0-0 } Le fichier Test_interface-FA0-0 dans /usr/local/nagios/libexec (répertoire ou se trouve les plugins peut être changé par configuration) var=`/usr/local/nagios/libexec/check_snmp -H \ C public -P 1 -o IF-MIB::ifOperStatus.3` if [ $? -eq 1 ] then echo "SNMP no response" exit 1 fi echo $var | grep -i up > /dev/null if [ $? -eq 1 ] then echo "Status FA0/0 down" exit 2 else echo "Status FA0/0 up" exit 0 fi

51 Configuration apache ConfigNagiosApache2.conf #
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin <DirectoryMatch /usr/local/nagios/sbin> Options ExecCGI AllowOverride AuthConfig Order Allow,Deny Allow From All AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users require valid-user </DirectoryMatch> Alias /nagios /usr/local/nagios/share <DirectoryMatch /usr/local/nagios/share> Options FollowSymLinks AuthName "Me contacter pour login/password" # END FOR NAGIOS

52 Autorisations d'accès (1)
Niveau apache: Les deux directives permettent l'autenfication: AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Niveau nagios Dans le fichier cgi.cfg, on va utiliser l'autentification pour accèder au information, on positionne alors la variable: use_authentication=1. On peut alors donner des autorisations générales de 2 méthodes: Au travers de la suite de variables authorized_for_XXXX, par exemple authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin donne accès à tous les hosts En définissant des contacts, et des groupes de contacts

53 Autorisations d'accès (2)
Notion de contacts qui fait partie d'un groupe de contact: contacts.cfg contactsgroup.cfg Des hosts et des services qui ont des contacts hostgroups.cfg qui regroupe un ensemble de hosts avec un contactsgroup define hostgroup{ hostgroup_name windows alias windows PC contact_groups operateurP1 members prodXP,antoineXP,toure } Dans la définition d'un service il y a une ligne : contact_groups

54 Fichier de conf map /usr/local/nagios/etc/hostextinfo.cfg define hostextinfo{ host_name gw icon_image router.png icon_image_alt dlink statusmap_image router.gd2 2d_coords ,100 3d_coords ,50.0,75.0 } define hostextinfo{ host_name tournl icon_image redhat.png icon_image_alt La tour noire statusmap_image redhat.gd2 2d_coords ,200 3d_coords ,50.0,75.0 host_name tourbb icon_image windows.png icon_image_alt Windows XP machine de travail statusmap_image windows.gd2 2d_coords ,200 host_name toure icon_image_alt Machine palier etage 2d_coords ,300 host_name antoineXP icon_image_alt Machine antoine 2d_coords ,300 define hostextinfo{ host_name margeride icon_image icon_image_alt Test adresse IP Fixe statusmap_image 2d_coords ,0 3d_coords ,50.0,75.0 } host_name boursorama icon_image_alt Serveur du web 2d_coords ,0 host_name margerideservices icon_image website.png statusmap_image website.gd2 host_name margerideservicesu icon_image surfcontrol.png statusmap_image surfcontrol.gd2 Les icônes sont dans le répertoire : /usr/share/nagios/htdocs/images/logos

55 Exemple d’arborescence nagios
sparc:/usr/local/nagios# ls bin contrib etc libexec sbin share var sparc:/usr/local/nagios# ls bin nagios nagiostats sparc:/usr/local/nagios# ls contrib/ collect2.pl fifo_write fifo_write.c udpecho udpecho.c sparc:/usr/local/nagios# ls etc bigger.cfg-sample contacts.cfg hosts.cfg.save nagios.cfg-sample resource.cfg-sample c.cfg dependencies.cfg htpasswd.users ngraph.d s1.cfg cgi.cfg escalations.cfg minimal.cfg ngraph.ncfg s.cfg cgi.cfg-sample hostextinfo.cfg minimal.cfg-sample nrpe.cfg serviceext checkcommands.cfg hostextinfo.cfg.afaire misccommands.cfg nrpe_local.cfg services.cfg checkcommands.cfg-sample hostgroups.cfg misccommands.cfg-sample nsca.cfg timeperiods.cfg contactgroups.cfg hosts.cfg nagios.cfg resource.cfg sparc:/usr/local/nagios# ls libexec/ check_breeze check_file_age check_ircd check_nntps check_real check_swap test_interface-FA0-0 check_by_ssh check_flexlm check_jabber check_nt check_rpc check_tcp test_interface-FA1-0 check_clamd check_ftp check_load check_ntp check_sensors check_time urlize check_dhcp check_hpjd check_log check_nwstat check_simap check_udp utils.pm check_dig check_http check_mailq check_oracle check_smtp check_udp2 utils.sh check_disk check_icmp check_mrtg check_overcr check_snmp check_ups check_disk_smb check_ifoperstatus check_mrtgtraf check_ping check_spop check_users check_dns check_ifstatus check_nagios check_pop check_ssh check_wave check_dummy check_imap check_nntp check_procs check_ssmtp negate sparc:/usr/local/nagios# ls sbin avail.cgi extinfo.cgi history.cgi rrd2-graph.cgi status.cgi statuswrl.cgi tac.cgi cmd.cgi graphs.cgi notifications.cgi rrd2-system.cgi statusmap.cgi summary.cgi trends.cgi config.cgi histogram.cgi outages.cgi showlog.cgi statuswml.cgi tacalain.cgi sparc:/usr/local/nagios# ls share/ contexthelp images locale main.html nagiosgraphe.gif nagiosmap.gif robots.txt side.html stylesheets docs index.html logourl1.ico media nagiosliste.gif nagiostrends.gif savehtml ssi TPA.gif sparc:/usr/local/nagios# ls var/ archives downtime.dat nagios.lock ngraph.log retention.dat rw comments.dat nagios_grapher nagios.log objects.cache rrd status.dat


Télécharger ppt "Introduction, Architecture"

Présentations similaires


Annonces Google