2

Чем прочитать данные из  SNMP и записать в БД MySQL?

Собственно, вопрос названии темы. Есть некоторое оборудование с датчиками температуры и атмосферного давления, инфа отдаётся по SNMP. Требуется значения датчиков получать по крону и записывать в базу данных. Нашёл Perl-скрипт, который, судя по описанию, должен это делать. Создал базу, пользователя, предоставил привилегии, в изначальном скрипте подставил нужные значения, но он завершается с ошибкой can't execute request. Сам скрипт:


#!/usr/bin/perl

use strict;

use warnings;

use DBI;

use Net::SNMP;

# Параметры подключения с базе

my $database_login = 'pogoda';

my $database_passwd = 'Pogoda123';

my $database_name = 'pogoda';

# Подключаемся к базе

my $dbh = DBI -> connect("DBI:mysql:$database_name;host=localhost;", $database_login, $database_passwd) || die $DBI::errstr;

# Что будем оправшивать

my $snmp_host = '10.10.35.100'; # IP или hostname

my $snmp_community = 'public'; # SNMP Community

#Температура

my $snmp_oid_temperature = 'iso.3.6.1.4.1.17095.1.2.9.0'; # OID для опроса

#Атмосферное давление

my $snmp_oid_pressure = 'iso.3.6.1.4.1.17095.1.2.17.0'; # OID для опроса

# Пытаемся читать значение

# В -varbindlist должна быть ссылка на массив OID'ов

# В $result будет ссылка на хэш вида: OID => Значение

my $snmp_session = Net::SNMP->session(

-hostname => $snmp_host,

-community => $snmp_community,

-version => 1, # Явно указываем версию протокола

) or die "can't connect";

my $result = $snmp_session->get_request(-varbindlist => [$snmp_oid_temperature,$snmp_oid_pressure]) or die "can't execute request\n";

# Печатаем результат

print "$result->{$snmp_oid_temperature}\n$result->{$snmp_oid_pressure}\n";

# Пишем значения в базу

$dbh -> do("INSERT INTO netping1 SET temperature=\"$result->{$snmp_oid_temperature}\", pressure=\"$result->{$snmp_oid_pressure}\"") || die $DBI::errstr;


Т.к. я не ни разу не программист, не могу понять почему скрипт не отрабатывает. Что не так со скриптом? Ошибку в синтаксисе perl -c не нашёл. Все дополнения Perl, на которые он ругался, доустановлены.


Или существуют ли другие способы решить исходную задачу?

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества