1 (edytowany przez wojtula 2015-09-11 22:26:12)

Temat: smartsnmpd - dla gargoyle 1.6

Witam,
chciałem wgrać snmpd na openwrt. Niestety za każdym razem coś nie pasowało w nim aby w pełni monitorować router z zewnątrz.
Czytałem, że dobrą paczką jest ww. "smartsnmpd". Niestety nie ma kompilacji na AA. Znalazłem jedynie na CC.
Udało mi się pobrać z Githuba i skompilować do Gargoyla AA 1.6.
(https://github.com/credosemi/smartsnmp)

Po pomyślnej instalacji uruchomiłem  smartsnmpd i od razu znalazłem błędy, których nie rozumiem.
Może są proste do obejścia? Bardzo proszę o podpowiedź.

Próba uruchomienia:

root@router:~# /etc/config/smartsnmp.conf:1: '=' expected near 'smartsnmpd'
-ash: /etc/config/smartsnmp.conf:1:: not found

Zawartość configa:
nano /etc/config/smartsnmp.conf

config smartsnmpd
        option port '161'
        option ro_community 'public'
        option rw_community 'private'
        option mib_module_path 'mibs'
        option objectid '1.2.3.4'
        option contact 'Me <me@example.org>'
        option location 'Shanghai'
        option services '72'

config smartsnmpd_module
        option oid    "1.3.6.1.2.1.1"
        option module 'system'

config smartsnmpd_module
        option oid    "1.3.6.1.2.1.2"
        option module 'interfaces'

config smartsnmpd_module
        option oid    "1.3.6.1.1"
        option module 'dummy'

2

Odp: smartsnmpd - dla gargoyle 1.6

Jest jest config dla uci, którego skrypty startowe przerabiają na postać zrozumiałą dla programów. Uruchom przez odpowiedni skrypt startowy z /etc/init.d/

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: smartsnmpd - dla gargoyle 1.6

Wystartował. Nie widzę błędów ani programu aby działał na jakimś procesie. Port 161 jest wolny od usług więc... nie wystartował poprawnie. Nie widzę nic w dmesg ani logread o tym...

4

Odp: smartsnmpd - dla gargoyle 1.6

Więc zobacz co on właściwie robi w tym inicie. Może jakieś enabled 1 musisz mieć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: smartsnmpd - dla gargoyle 1.6

oto init, nie ma enabled etc:

#!/bin/sh /etc/rc.common
# Copyright (C) 2014 OpenWrt.org

START=97

USE_PROCD=1
PROG=/usr/sbin/smartsnmpd
CONFIGFILE=/etc/smartsnmpd.conf

smartsnmpd_mib_module() {
    local cfg="$1"
    config_get OID "$cfg" oid
    config_get MODULE "$cfg" module
    echo "    ['$OID'] = '$MODULE'," >> $CONFIGFILE
}

start_service() {
    include /lib/functions

    config_load smartsnmpd

    procd_open_instance
    procd_set_param command $PROG -c $CONFIGFILE
    procd_set_param file $CONFIGFILE
    procd_set_param respawn
    procd_close_instance
    
    # before we can call xappend
    mkdir -p $(dirname $CONFIGFILE)

    echo "-- auto-generated config file from /etc/config/smartsnmpd" > $CONFIGFILE
    
    config_get PORT smartsnmpd port 161
    echo "port = $PORT" >> $CONFIGFILE
    
    config_get RO_COMMUNITY smartsnmpd ro_community 'public'
    config_get RW_COMMUNITY smartsnmpd rw_community 'private'
    echo "ro_community = '$RO_COMMUNITY'" >> $CONFIGFILE
    echo "rw_community = '$RW_COMMUNITY'" >> $CONFIGFILE

    config_get MIB_MODULE_PATH smartsnmpd mib_module_path '/usr/lib/lua/smartsnmp/mibs/'
    echo "mib_module_path = '$MIB_MODULE_PATH'" >> $CONFIGFILE

    echo "mib_modules = {" >> $CONFIGFILE
    config_foreach smartsnmpd_mib_module smartsnmpd_module 
    echo "}" >> $CONFIGFILE
}

6

Odp: smartsnmpd - dla gargoyle 1.6

/etc/smartsnmpd.conf utworzył się? Jeżeli tak to uruchom ręcznie go i zobacz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez wojtula 2015-09-12 09:43:18)

Odp: smartsnmpd - dla gargoyle 1.6

Nie ma takiego pliku.

Zmieniłem w init aby sięgał do tego configu. Niestety, nic nie dało.
Pusto na porcie 161 oraz w procesach:

root@router:~# nano /etc/init.d/smartsnmpd
root@router:~# /etc/init.d/smartsnmpd enabled
root@router:~# /etc/init.d/smartsnmpd start
root@router:~#
root@router:~# ps |g smart
 8474 root      1496 S    egrep -i smart
root@router:~# netstat -anp |g 161
root@router:~#

8

Odp: smartsnmpd - dla gargoyle 1.6

A widzisz,bo ten init nie jest kompletny. Nie masz funkcji start przecież.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez wojtula 2015-09-12 10:10:43)

Odp: smartsnmpd - dla gargoyle 1.6

Zgadza sie.
Jest start_service. Domniemam, że ta funkcja działa w CC. Wystarczy zatem zmienić ją na start() {

root@router:~# /etc/init.d/smartsnmpd start
/etc/rc.common: line 231: procd_open_instance: not found
/etc/rc.common: line 231: procd_set_param: not found
/etc/rc.common: line 231: procd_set_param: not found
/etc/rc.common: line 231: procd_set_param: not found
/etc/rc.common: line 231: procd_close_instance: not found

10

Odp: smartsnmpd - dla gargoyle 1.6

W AA nie ma procd do tego celu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: smartsnmpd - dla gargoyle 1.6

Rozumiem. Czyli nici z tej kompilacji?
To moja pierwsza i chyba... nieudana smile

12

Odp: smartsnmpd - dla gargoyle 1.6

Nie nici tylko napisz sobie odpowiedni init lub zrób od razu plik konfiguracyjny i uruchamiaj go z /etc/rc.local.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: smartsnmpd - dla gargoyle 1.6

Wydaje mi się, że prościej bedzie zrobić config.
Tylko jak... sprawdzę jak wygląda szkielet lub inny plik config.