View Full Version : check_graph_xxx ne génère aucun graphique
fufu
12th April 2007, 13:29
Bonjour:
J'ai installé nagios 2.8 et oreon 1.4. Tout fonctionne correctement dans nagios et oreon sauf la génération des graphiques dans vue oreon -> sondes graphiques . Je m'explique ...
Donc j'ai mis un plugin check_graph_ping sur un hôte. Le plugin fonctionne bien il est ok. Ce plugin génère bien un fichier /usr/local/oreon/rrd/142_3188.rrd qui est en droit 644 (rw-r--r--). Oreon voit bien le service à grapher car il apparaît dans le menu déroulant mais quand je fais afficher le graph les valeurs restent à "nan".
Le chemin rrdtool est /usr/bin/rrdtool et il est bien configuré dans oreon. J'ai esayé de mettre des droits 777 sur /usr/local/oreon/rrd et les fichiers enfants sans succès.
La commande que je fais pour le check_graph_ping est:
$USER1$/check_graph_ping.pl -H $HOSTADDRESS$ -w 200,20% -c 500,40% -f -n $ARG1$ -g -S $ARG2$ (lancé avec argument "!3").
Voilà si vous pouviez éclairer ma lanterne cela m'aiderai beaucoup ^^
Merci d'avance
cmoi
12th April 2007, 15:22
Salut,
Et si tu fais un :
$>rrdtool info /usr/local/oreon/rrd/142_3188.rrd
Ca donne quoi?
fufu
12th April 2007, 15:53
Merci de me répondre.
Voilà ce que ca me donne en tapant ta commande:
rrd_version = "0003"
step = 300
last_update = 1176380190
ds[a].type = "GAUGE"
ds[a].minimal_heartbeat = 600
ds[a].min = NaN
ds[a].max = NaN
ds[a].last_ds = "UNKN"
ds[a].value = 0.0000000000e+00
ds[a].unknown_sec = 90
rra[0].cf = "AVERAGE"
rra[0].rows = 8640
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "MIN"
rra[1].rows = 8640
rra[1].pdp_per_row = 12
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 3
rra[2].cf = "MAX"
rra[2].rows = 8640
rra[2].pdp_per_row = 12
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = NaN
rra[2].cdp_prep[0].unknown_datapoints = 3
cmoi
12th April 2007, 16:09
Hmm ton "value" est a zéro...
Apparement oreon 1.4 a des plugins plus récent.
Quelle est la version de ton check_graph_ping.pl (./check_graph_ping.pl -V)
Moi j'ai pas l'option -f déjà. Je peux pas trop t'aider, essaye de voir au niveau des logs oreon : /usr/local/oreon/log/rrdtool.log.
Efface le fichier .rrd et lance un, voir plusieurs gros ping sur ta bécane pour tester. Attend et vérifie si le fichier .rrd se remplit.
Désolé je fais de mon mieux mais je suis un noob aussi :)
fufu
12th April 2007, 16:51
Bah déjà je te remercie de m'aider c'est déjà pas mal.
Donc j'ai fait ./check_graph_ping.pl -V et j'obtient:
check_graph_ping (nagios-plugins 1.4.7) 1.2
The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute
copies of the plugins under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
Bon maintenant le check_graph_ping a changé en une erreur (je ne sais pas pourquoi...) Voilà l'erreur
**ePN failed to compile /usr/local/nagios/libexec//check_graph_ping.pl: "Can't locate utils.pm in @INC (@INC contains: /srv/nagios/libexec /usr/local/nagios/bin /etc/perl /usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at (ev"
Pourtant il y a bien le fichier utils.pm dans /usr/local/nagios/libexec. Malgré cette erreur, le graphe ce trace mais je comprends pas pourquoi étant donné que j'ai rien touché .
cmoi
12th April 2007, 17:18
Etrange, j'ai la même version du plugin et j'ai pas l'option -f
pour le .pm il te manque pas des libs perl par hasard?
Mais bon je dois avouer que c'est bizarre tout ça :)
T'as du modifier quelque chose pour qu'il te sorte une erreur comme ca, c'est pas possible. Remémore toi ce que tu as pu modifier.
Sinon je vois pas trop désolé.
J'ai des erreurs plutôt étranges moi aussi t'inquiètes pas :D
julio
12th April 2007, 17:21
edite le plugin et au debut y a un chemin qui ne doit pas etre bon... c'est que tu as mal repondu aux questions lors de l'install..
fufu
13th April 2007, 12:26
Donc le plugin est repassé en mode OK ce matin quand je suis arrivé au boulot mais il ne graphez pas. Pour l'install d'oreon je suis sûr que mes chemins sont correct.
Je vais modifier le fichier comme julio me la proposé et je reposterai pour ca.
fufu
13th April 2007, 15:54
Après être passé à la nouvelle nagios 2.9, tout fonctionne correctement (je ne sais pas pourquoi non plus). Il me reste encore un grand mistère du SNMP à découvrir:
lorsque je fais à partir de mon serveur nagios: snmpwalk -v2c -c public 10.57.50.2 .1 , (10.57.50.2 = @IP nagios)
cela fonctionne pas
Toujours à partir de mon serveur nagios lorsque je fais snmpwalk -v2c -c public localhost .1, cela fonctionne.
Je cherche mais bon c'est pas très grave je veux pas trop tracer de graphiques pour mon serveur nagios. Le reste fonctionne très bien pour le reste de mes serveurs.
Merci tout le monde pour votre aide ^^
cmoi
13th April 2007, 17:06
Fais voir ton snmpd.conf s'il te plait.
fufu
16th April 2007, 09:51
Salut,
Désolé du temps d'absence. Voila mon snmpd.conf:
# sec.name source community
com2sec readonly default public
#com2sec readonly default public
#com2sec readwrite default private
####
# Second, map the security names into group names:
# sec.model sec.name
group MyROSystem v1 readonly
group MyROSystem v2c readonly
group MyROSystem usm readonly
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
group MyRWGroup v1 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 .1 80
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 all none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
# -----------------------------------------------------------------------------
################################################## #############################
# System contact information
#
# It is also possible to set the sysContact and sysLocation system
# variables through the snmpd.conf file. **PLEASE NOTE** that setting
# the value of these objects here makes these objects READ-ONLY
# (regardless of any access control settings). Any attempt to set the
# value of an object whose value is given here will fail with an error
# status of notWritable.
syslocation Unknown (configure /etc/snmp/snmpd.local.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)
# Example output of snmpwalk:
# % snmpwalk -v 1 -c public localhost system
# system.sysDescr.0 = "SunOS name sun4c"
# system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4
# system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55
# system.sysContact.0 = "Me <me@somewhere.org>"
# system.sysName.0 = "name"
# system.sysLocation.0 = "Right here, right now."
# system.sysServices.0 = 72
# -----------------------------------------------------------------------------
################################################## #############################
# Process checks.
#
# The following are examples of how to use the agent to check for
# processes running on the host. The syntax looks something like:
#
# proc NAME [MAX=0] [MIN=0]
#
# NAME: the name of the process to check for. It must match
# exactly (ie, http will not find httpd processes).
# MAX: the maximum number allowed to be running. Defaults to 0.
# MIN: the minimum number to be running. Defaults to 0.
#
# Examples:
#
# Make sure mountd is running
#proc mountd
# Make sure there are no more than 4 ntalkds running, but 0 is ok too.
#proc ntalkd 4
# Make sure at least one sendmail, but less than or equal to 10 are running.
#proc sendmail 10 1
# A snmpwalk of the prTable would look something like this:
#
# % snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.2
# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1
# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2
# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3
# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd"
# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd"
# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail"
# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0
# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0
# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1
# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0
# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4
# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10
# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0
# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0
# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1
# enterprises.ucdavis.procTable.prEntry.prErrorFlag. 1 = 1
# enterprises.ucdavis.procTable.prEntry.prErrorFlag. 2 = 0
# enterprises.ucdavis.procTable.prEntry.prErrorFlag. 3 = 0
# enterprises.ucdavis.procTable.prEntry.prErrMessage .1 = "No mountd process running."
# enterprises.ucdavis.procTable.prEntry.prErrMessage .2 = ""
# enterprises.ucdavis.procTable.prEntry.prErrMessage .3 = ""
# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0
# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0
# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0
#
# Note that the errorFlag for mountd is set to 1 because one is not
# running (in this case an rpc.mountd is, but thats not good enough),
# and the ErrMessage tells you what's wrong. The configuration
# imposed in the snmpd.conf file is also shown.
#
# Special Case: When the min and max numbers are both 0, it assumes
# you want a max of infinity and a min of 1.
#
# -----------------------------------------------------------------------------
J'ai pas mis le reste parce que c'est tout commenté.
Merci de ton aide,
cmoi
16th April 2007, 10:34
Hmmm, ca m'a l'air OK.
Fais un ptit :
$>netstat -na | grep 161
Et renvoie le résultat pour voir si ton server snmp écoute bien sur l'adresse de ton interface réseau.
fufu
16th April 2007, 12:55
Donc j'ai tapé la commande pour savoir si le port est à l'ecoute. Il est bien en écoute en UDP sur 161:
udp 0 0 127.0.0.1:161 0.0.0.0:*
Le truc c'est que quand je tape localhost ca tourne et pas quand je tape l'adresse ip de celui-ci. Peut être une sécurit" du snmp ...
cmoi
16th April 2007, 13:14
Oui c'est normal. Ton server SNMP écoute qu'en locale.
Il faut qui tu lui dise d'écouter sur l'adresse privée de ton interface.
Pour ce faire, edit /etc/default/snmpd et tu rajoutes l'IP de ton interface réseau à la ligne :
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1 192.168.0.1'
Un coup de restart de ton server SNMP et ca devrait être bon.
fufu
16th April 2007, 15:03
Bah merci écoute tout fonctionne maintenant correctement . Ca fait plaisir :)
Je le note pour la prochaine fois ^^
Merci à tous de votre aide
fufu
20th April 2007, 15:45
Bon je relance le sujet puisque les graphiques qui se généraient à peu près correctement ne génère plus. Les valeurs restent à Nan et les rrd se génère bien au sein de /usr/local/oreon/rrd mais ne s'actualise pas. Pourtant dans oreon j'ai bien les valeurs qui changent.
cmoi
20th April 2007, 17:05
Ton service ods est bien up?
/etc/init.d/ods status
fufu
23rd April 2007, 09:46
Bonjour,
Quand je lance la commande je peux voir que mon service est up:
PID TTY TIME CMD
19766 pts/1 00:00:00 ods.pl
supervision-reseau:/home/supervision/logiciel# /etc/init.d/ods start
Starting ODS Collector : ods_daemon
Error : /usr/local/oreon/ODS/var/ods.pid already Exists.
Donc apparemment il est lancé
cmoi
23rd April 2007, 09:54
Quel est la dernière date de modification des .rrd? Vérifies si tu as des trucs suspects dans le "/usr/local/oreon/ODS/var/ods.log" et le nagios.log.
fufu
23rd April 2007, 11:03
Lorsque j'ai fait /etc/init.d/ods start les graph se sont remis à fonctionner. Pourtant il était bien démarré ...
Enfin bon je récrirai quand ca ne marchera plus ^^
fufu
23rd April 2007, 15:23
Donc voilà mais graph (en attachement) (ne prétez pas attention au trou sur le test CPU c'est normal)
Donc on peut voir que mes graphs fonctionnent sauf le traffic.
Voilà la commande que j'ai mise: $USER1$/check_graph_traffic.pl -H 10.57.50.9 -i 1677689 -w 80-c 98 -C public -v 2c -g -S $ARG6$ --rrd_step 300(dans oreon donc ARG6 auto renseigné)
Une fois exporté dans nagios j'ai Traffic In : 5.72 kb/s (0.0 %), Out : 209.39 b/s (0.0 %) - Total RX Bits In : 18.49 GB, Out : 2.35 Gb Donc le plugin fonctionne bien. Le fichier se crée bien (3_1005.rrd).
Lorsque je fais rrdtool info 3_1005.rrd j'obtiens:
supervision-reseau:/usr/local/oreon/rrd# rrdtool info 3_1005.rrd
filename = "3_1005.rrd"
rrd_version = "0003"
step = 300
last_update = 1177330901
ds[a].type = "GAUGE"
ds[a].minimal_heartbeat = 600
ds[a].min = NaN
ds[a].max = NaN
ds[a].last_ds = "UNKN"
ds[a].value = NaN
ds[a].unknown_sec = 101
ds[b].type = "GAUGE"
ds[b].minimal_heartbeat = 600
ds[b].min = NaN
ds[b].max = NaN
ds[b].last_ds = "UNKN"
ds[b].value = NaN
ds[b].unknown_sec = 101
rra[0].cf = "AVERAGE"
rra[0].rows = 8640
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
rra[1].cf = "MIN"
rra[1].rows = 8640
rra[1].pdp_per_row = 12
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 4
rra[1].cdp_prep[1].value = NaN
rra[1].cdp_prep[1].unknown_datapoints = 4
rra[2].cf = "MAX"
rra[2].rows = 8640
rra[2].pdp_per_row = 12
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = NaN
rra[2].cdp_prep[0].unknown_datapoints = 4
rra[2].cdp_prep[1].value = NaN
rra[2].cdp_prep[1].unknown_datapoints = 4
Je comprends pas pourquoi ca graph pas.
furtif
24th April 2007, 12:59
Sous fédora, ou ce trouve le fichier correspondant à /etc/default/snmpd ?
Et comment connaitre le numero de l'interface ?
Merci
furtif
24th April 2007, 13:28
Autre question :
Nagios/Oreon sont installé sur une machine d'un réseau différent de la machine que je souhaite interrogée. Sur cette machine j'ai installer snmpd, puis dans le fichuer /usr/default/snmpd j'ai rajouter l'ip de la machine Negios/Oreon
Probleme : La machine ne permet aucune communication. Que faut t'il faire pour que deux machines distantes communiques entre elles ?