OVH Cloud OVH Cloud

[FreeBSD] plgrenouille et snmpd

3 réponses
Avatar
Michel Parlebas
-

L'installation de la version la plus récente de plgrenouille entraine
l'installation de snmpd et de snmptrapd.

Or, il n'y a pas de fichier snmpd.conf (ni snmptrapd.conf) istallé par
défaut et de ce fait, plgrenouille ne fonctionne pas.

Une idée pour configurer ces 2 démons ?

--
MP

3 réponses

Avatar
Michel Parlebas
Le Mardi 31 Août 2004 09:30, Michel Parlebas a posté :


L'installation de la version la plus récente de plgrenouille entraine
l'installation de snmpd et de snmptrapd.
Or, il n'y a pas de fichier snmpd.conf (ni snmptrapd.conf) istallé par
défaut et de ce fait, plgrenouille ne fonctionne pas.
Une idée pour configurer ces 2 démons ?



Je me réponds finalement à moi-même, ayant trouvé le moyen de faire
fonctionner plgrenouille !

d'abord, le fichier /usr/local/etc/snmp/snmpd.conf :

------------------------><8
# sec.name source community (password)
com2sec localhost 127.0.0.1 public
#
# group.name sec.model sec.name
group ReadWrite v1 localhost
group ReadWrite v2c localhost
group ReadWrite usm localhost
#
# incl/excl subtree mask
view all included .1 80
#
# context sec.model sec.level prefix read write notif
access ReadWrite "" any noauth exact all all all
----------------------><8

Ensuite, il y a un problème avec plgrenouille qui ne trouve pas
l'interface et l'adresse IP à utiliser. Il semble que ce soit un
problème qui survient avec certains modems-touteurs et pas avec les
modems. Pour ma part j'utilise une freebox en dhcp (fonctionnalités de
routage non activées) et je suis confronté à ce peroblème. J'ai donc
apporté une modif à plgrenouille afin d'imposer l'interface et
l'adresse IP (fixe) attribuée par Free...

# --------------------------- INTERFACE ----------------------------

sub interface_up() {
if($preferences{'interface'}) {
eval {
# will fail if the interface disappeared under us
my($dummy) = get_traffic_counters($preferences{'interface'});
};
if ($@) {
display_and_log('NOTICE', "L'interface $preferences{'interface'} a
disparu: $@");
delete $preferences{'interface'};
delete $vars{'ip'};
}
}
if(not $preferences{'interface'}) {
($preferences{'interface'}, $vars{'ip'}) autodetect_interface();
display_and_log('NOTICE', "$preferences{'interface'} sera
utilisé pour les mesures") if $preferences{'interface'};
}

###############
# Add these 2 next lines !!!
$preferences{'interface'} = 'ed0'; # Replace by your own interface
$vars{'ip'} = '82.xxx.xxx.xxx'; # Replace by your own IP address
######

return $preferences{'interface'};
}

# --------------------------- EVENT HANDLERS -------------------------

Avec cette modif, plgrenouille fonctionne parfaitement...

--
MP

Avatar
Michel Parlebas
Le Mardi 31 Août 2004 16:34, Michel Parlebas a posté :

Je me réponds finalement à moi-même, ayant trouvé le moyen de faire
fonctionner plgrenouille !


En investigant un peu plus loin, voici le dernier développement de la
modif proposée dans plgrenouille:


# --------------------------- INITIALISATION --------------------

my (%params);

sub init_vars() {
init_result_queue();
load_result_queue();
}

#####
my $CHECKIP ||= "$DATAPATH/checkip.tmp";
#####

# --------------------------- INTERFACE ------------------

sub interface_up() {
if($preferences{'interface'}) {
eval {
# will fail if the interface disappeared under us
my($dummy) = get_traffic_counters($preferences{'interface'});
};
if ($@) {
display_and_log('NOTICE', "L'interface $preferences{'interface'} a
disparu: $@");
delete $preferences{'interface'};
delete $vars{'ip'};
}
}
if(not $preferences{'interface'}) {
($preferences{'interface'}, $vars{'ip'}) = autodetect_interface();
display_and_log('NOTICE', "$preferences{'interface'} sera utilisé pour
les mesures") if $preferences{'interface'};
}

######
if($vars{'ip'} =~ /^(10|192|172).(d).(d)$/) {
open(IPPUBLIC, "<$CHECKIP");
while(<IPPUBLIC>) {
chomp;
$vars{'ip'} = $_;
}
close(IPPUBLIC);
}
######

return $preferences{'interface'};
}

# --------------------------- EVENT HANDLERS -------------------
...

Ne pas oublier, bien sûr, d'ajouter l'adresse IP publique dans le
fichier /var/spool/plgrenouille/checkip.tmp


Ca peut être fait par le petit programme checkip.sh suivant:

#---------------------------------------------------------
#!/bin/sh

TMP=/var/spool/plgrenouille/checkip.tmp
chown daemon:wheel $TMP

IF=$(netstat -rn -f inet|grep "default"|awk '{print $6}')
ifconfig $IF|grep "netmask"|awk '{print $2}' >$TMP

# ----------------------------------------------------------

--
MP

Avatar
Michel Parlebas
Le Mardi 31 Août 2004 16:34, Michel Parlebas a posté :

Je me réponds finalement à moi-même, ayant trouvé le moyen de faire
fonctionner plgrenouille !


En investigant un peu plus loin, voici le dernier développement de la
modif proposée dans plgrenouille:


# --------------------------- INITIALISATION --------------------

my (%params);

sub init_vars() {
init_result_queue();
load_result_queue();
}

#####
my $CHECKIP ||= "$DATAPATH/checkip.tmp";
#####

# --------------------------- INTERFACE ------------------

sub interface_up() {
if($preferences{'interface'}) {
eval {
# will fail if the interface disappeared under us
my($dummy) = get_traffic_counters($preferences{'interface'});
};
if ($@) {
display_and_log('NOTICE', "L'interface $preferences{'interface'} a
disparu: $@");
delete $preferences{'interface'};
delete $vars{'ip'};
}
}
if(not $preferences{'interface'}) {
($preferences{'interface'}, $vars{'ip'}) = autodetect_interface();
display_and_log('NOTICE', "$preferences{'interface'} sera utilisé pour
les mesures") if $preferences{'interface'};
}

######
if($vars{'ip'} =~ /^(10|192|172).(d).(d)$/) {
open(IPPUBLIC, "<$CHECKIP");
while(<IPPUBLIC>) {
chomp;
$vars{'ip'} = $_;
}
close(IPPUBLIC);
}
######

return $preferences{'interface'};
}

# --------------------------- EVENT HANDLERS -------------------
...

Ne pas oublier, bien sûr, d'ajouter l'adresse IP publique dans le
fichier /var/spool/plgrenouille/checkip.tmp


Dans le cas de la Freebox sous DHCP, ça peut être fait par le petit
programme checkip.sh suivant:

#---------------------------------------------------------
#!/bin/sh

TMP=/var/spool/plgrenouille/checkip.tmp
chown daemon:wheel $TMP

IF=$(netstat -rn -f inet|grep "default"|awk '{print $6}')
ifconfig $IF|grep "netmask"|awk '{print $2}' >$TMP

# ----------------------------------------------------------

--
MP