Страница 1 из 1

snmp+внешний скрипт+cacti

Добавлено: 2011-02-26 10:37:51
CarTer
Всем доброе время суток!
Встала задача снимать с сервера авторизации количество поднятых ng интерфейсов и отображать все это дело в cacti.
Был написан скрипт, который выводит количество интерфейсов:
ng_iface.sh

Код: Выделить всё

#!/bin/sh
ifconfig | grep 'ng' | grep 'UP' -c
В snmpd.conf добавлена следующая строчка:

Код: Выделить всё

extend-sh .1.3.6.1.4.1.2021.8 ng_iface /scripts/ng_iface.sh
Так вот при опросе этого oid'а выводится информация в кавычках с типом STRING

[root@PPPoE-Srv-1 /home/antony]# snmpwalk -v2c -c kisskiss localhost .1.3.6.1.4.1.2021.8

Код: Выделить всё

UCD-SNMP-MIB::extEntry.0 = INTEGER: 1
UCD-SNMP-MIB::extTable.2.1.2.8.110.103.95.105.102.97.99.101 = STRING: "/scripts/ng_iface.sh"
UCD-SNMP-MIB::extTable.2.1.3.8.110.103.95.105.102.97.99.101 = ""
UCD-SNMP-MIB::extTable.2.1.4.8.110.103.95.105.102.97.99.101 = ""
UCD-SNMP-MIB::extTable.2.1.5.8.110.103.95.105.102.97.99.101 = INTEGER: 5
UCD-SNMP-MIB::extTable.2.1.6.8.110.103.95.105.102.97.99.101 = INTEGER: 2
UCD-SNMP-MIB::extTable.2.1.7.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.2.1.20.8.110.103.95.105.102.97.99.101 = INTEGER: 4
UCD-SNMP-MIB::extTable.2.1.21.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.3.1.1.8.110.103.95.105.102.97.99.101 = STRING: "369"
UCD-SNMP-MIB::extTable.3.1.2.8.110.103.95.105.102.97.99.101 = STRING: "369"
UCD-SNMP-MIB::extTable.3.1.3.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.3.1.4.8.110.103.95.105.102.97.99.101 = INTEGER: 0
UCD-SNMP-MIB::extTable.4.1.2.8.110.103.95.105.102.97.99.101.1 = STRING: "369"
Возможно ли сделать, чтобы вывод этого параметра был без кавычек с типом INTEGER?

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-26 13:59:00
Капитан
shell работает только с типом string
для преобразования используйте конструкцию типа:
expr ' '

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-26 21:48:31
CarTer
Можно по подробней (пример) как преобразовать из string в integer. Желательно на моем скрипте.

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-27 0:26:35
Капитан
попробуйте
'ifconfig | grep ng | grep UP -c'

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-27 8:14:11
CarTer
Попробовал в snmpd.conf прописать extend .1.3.6.1.4.1.2021.8 ng_iface /bin/expr 25, все равно при опросе выдает

Код: Выделить всё

UCD-SNMP-MIB::extEntry.0 = INTEGER: 1
UCD-SNMP-MIB::extTable.2.1.2.8.110.103.95.105.102.97.99.101 = STRING: "/bin/expr"
UCD-SNMP-MIB::extTable.2.1.3.8.110.103.95.105.102.97.99.101 = STRING: "'25'"
UCD-SNMP-MIB::extTable.2.1.4.8.110.103.95.105.102.97.99.101 = ""
UCD-SNMP-MIB::extTable.2.1.5.8.110.103.95.105.102.97.99.101 = INTEGER: 5
UCD-SNMP-MIB::extTable.2.1.6.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.2.1.7.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.2.1.20.8.110.103.95.105.102.97.99.101 = INTEGER: 4
UCD-SNMP-MIB::extTable.2.1.21.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.3.1.1.8.110.103.95.105.102.97.99.101 = STRING: "25"
UCD-SNMP-MIB::extTable.3.1.2.8.110.103.95.105.102.97.99.101 = STRING: "25"
UCD-SNMP-MIB::extTable.3.1.3.8.110.103.95.105.102.97.99.101 = INTEGER: 1
UCD-SNMP-MIB::extTable.3.1.4.8.110.103.95.105.102.97.99.101 = INTEGER: 0
UCD-SNMP-MIB::extTable.4.1.2.8.110.103.95.105.102.97.99.101.1 = STRING: "25"

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-28 22:10:41
CarTer
Столько тем про установку cacti и прикручиванию скриптов, и ни кто не может толком объяснить как прикрутить скрипт (какие параметры он должен выдавать и в каком формате, для snmp 5.5) к snmp по средством функции extend, так чтобы он обрабатывался в cacti.
Люди добрые помогите!!!

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-02-28 22:42:30
rmn
CarTer писал(а):Столько тем про установку cacti и прикручиванию скриптов, и ни кто не может толком объяснить как прикрутить скрипт (какие параметры он должен выдавать и в каком формате, для snmp 5.5) к snmp по средством функции extend, так чтобы он обрабатывался в cacti.
Люди добрые помогите!!!
видимо, у тебя уникальная машина. У меня на любой стринги выдаются без кавычек. snmp ставится, как зависимость к php52:

Код: Выделить всё

gw1# pkg_info | grep snmp
net-snmp-5.5_4      An extendable SNMP implementation
php52-snmp-5.2.17   The snmp shared extension for php
может вместо extend заюзать exec, если мой пьяный мосг правильно понял, о чем речь? :)

Код: Выделить всё

gw1# cat /usr/local/share/snmp/snmpd.conf | grep exec
#  exec NAME PROGRAM [ARGS ...]
exec echotest /bin/echo hello world
exec online_users /usr/local/freebit/get_online
exec in_packet_size /usr/local/freebit/get_packet_size in
exec out_packet_size /usr/local/freebit/get_packet_size out
exec nat_sessions /usr/local/freebit/get_nat_sessions

Re: snmp+внешний скрипт+cacti

Добавлено: 2011-03-01 14:31:24
CarTer
Большое спасибо за функцию exec, именно с ней данные выдаются без кавычек, хотя тип остался STRING
Есть предположение что скрипты написанные на bash всегда выдает все данные с типом STRING.
Есть ли возможность выложить какой-нибудь рабочий простой скрипт для обработки какти со строчкой применения в snmpd.conf