Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
start:supervision:check_mk:quagga [2012/12/28 15:40] domi créée |
start:supervision:check_mk:quagga [2012/12/28 15:49] domi |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
Pour vérifier l'état des sessions BGP sur les routeurs Linux tournant [[http://www.quagga.net/|Quagga]] on utilise un plugin local pour ''check_mk'' qui va donc régulièrement interroger Quagga pour connaitre les sessions en cours, et leur état. Un fichier de configuration permet de définir, en spécifiant les numéros d'AS, les sessions à ignorer, ou celles qui sont critiques (un client, un transitaire, par exemple). Par défaut une session qui n'est pas active, et pour laquelle ce n'est pas volontaire (''shutdown'') donne un retour WARNING. | Pour vérifier l'état des sessions BGP sur les routeurs Linux tournant [[http://www.quagga.net/|Quagga]] on utilise un plugin local pour ''check_mk'' qui va donc régulièrement interroger Quagga pour connaitre les sessions en cours, et leur état. Un fichier de configuration permet de définir, en spécifiant les numéros d'AS, les sessions à ignorer, ou celles qui sont critiques (un client, un transitaire, par exemple). Par défaut une session qui n'est pas active, et pour laquelle ce n'est pas volontaire (''shutdown'') donne un retour WARNING. | ||
- | |||
- | Le script communiquant avec Quagga utilise expect. | ||
* ''DISABLEPWD'' est le mot de passe Quagga pour pouvoir se connecter | * ''DISABLEPWD'' est le mot de passe Quagga pour pouvoir se connecter | ||
Ligne 10: | Ligne 8: | ||
#!/bin/bash | #!/bin/bash | ||
+ | ## Neuronnexion - www.neuronnexion.coop - tech@nnx.com | ||
+ | ## Released under the terms of GNU/GPL | ||
+ | | ||
conf="/etc/check_mk/bgp.conf" | conf="/etc/check_mk/bgp.conf" | ||
script_expect="/usr/local/bin/bgp_summary localhost bgpd DISABLEPWD ENABLEPWD" | script_expect="/usr/local/bin/bgp_summary localhost bgpd DISABLEPWD ENABLEPWD" | ||
Ligne 58: | Ligne 59: | ||
</file> | </file> | ||
+ | Exemple de fichier de configuration. | ||
+ | <file bash /etc/check_mk/bgp.conf> | ||
+ | # Keywords : critical or exclude | ||
+ | # AS like ASXXXX | ||
+ | # Description is not an option ;) | ||
+ | |||
+ | # this one is a transit | ||
+ | critical:AS29075:Ielo | ||
+ | # this one keeps flapping | ||
+ | exclude:AS666:BadPeer | ||
+ | </file> | ||
+ | |||
+ | (en vrai, on a pas de session avec l'AS 666 ;-) | ||
+ | |||
+ | |||
+ | Le script communiquant avec Quagga utilise expect. | ||
+ | |||
+ | <file expect /usr/local/bin/bgp_summary> | ||
+ | #!/usr/bin/expect -f | ||
+ | |||
+ | # Utilisé par le check_mk_agent pour gérer la vue des sessions BGP | ||
+ | # Viva NNX | ||
+ | |||
+ | # Note: this script is NOT good example of writting code in Expect at all. | ||
+ | |||
+ | if { [llength $argv] != 4 } { | ||
+ | |||
+ | puts "Expect 'show ip bgp summary' script for Quagga services." | ||
+ | puts "Copyright (C) 2007 Matous Jan Fialka." | ||
+ | puts "Released under the terms of GNU/GPL.\n" | ||
+ | puts "Usage: hostname { service | port } disable_password enable_password\n" | ||
+ | puts "Example: qshru.exp localhost zebra secret password\n" | ||
+ | puts "Use with extreme caution! You have been warned..." | ||
+ | exit 1 | ||
+ | } | ||
+ | |||
+ | set hostname [lindex $argv 0] | ||
+ | set service [lindex $argv 1] | ||
+ | set disable_password [lindex $argv 2] | ||
+ | set enable_password [lindex $argv 3] | ||
+ | |||
+ | set disable_prompt "^*>" | ||
+ | set enable_prompt "^*#" | ||
+ | |||
+ | set disable_password_prompt "Password:" | ||
+ | set enable_password_prompt "Password:" | ||
+ | |||
+ | set terminal_length_command "terminal length 0" | ||
+ | set enable_command "enable" | ||
+ | set disable_command "disable" | ||
+ | set quit_command "quit" | ||
+ | set show_running_config_command "show running-config" | ||
+ | set show_ip_bgp_summary "show ip bgp summary" | ||
+ | |||
+ | set timeout 10 | ||
+ | |||
+ | set telnet /usr/bin/telnet | ||
+ | |||
+ | spawn "$telnet" "$hostname" "$service" | ||
+ | |||
+ | expect "$disable_password_prompt" | ||
+ | send "$disable_password\r" | ||
+ | |||
+ | expect "$disable_prompt" | ||
+ | send "$terminal_length_command\r" | ||
+ | |||
+ | expect "$disable_prompt" | ||
+ | send "$enable_command\r" | ||
+ | |||
+ | expect "$enable_password_prompt" | ||
+ | send "$enable_password\r" | ||
+ | |||
+ | expect "$enable_prompt" | ||
+ | send "$show_ip_bgp_summary\r" | ||
+ | #send "$show_running_config_command\r" | ||
+ | |||
+ | expect "$enable_prompt" | ||
+ | send "$disable_command\r" | ||
+ | |||
+ | expect "$disable_prompt" | ||
+ | send "$quit_command\r" | ||
+ | |||
+ | expect eof | ||
+ | puts "\nBye, bye..." | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | </file> |