Хочу поставить сформировать отправку zabbix trapp c удаленной linux машины.
Скрипт должен отправлять целое десятичное число на zabbix server.
В итоге отправка происходит, но zabbix server видит значение только как текст, а мне нужно что бы сервер видел его как целое 64битное число.
spoiler
sub zabbix_sender
{
my ($zabbixserver,$hostname,$item,$data) = @_;
my $timeout=10;
print "$data\n";
my $request=sprintf("\n%s\n%s\n%s\n\n",
encode_base64($hostname),encode_base64($item),encode_base64($data));
my $sock = new IO::Socket::INET ( PeerAddr => $zabbixserver, PeerPort => '10051', Proto => 'tcp', Timeout => $timeout);
die "Could not create socket: $@\n" unless $sock;
$sock->send($request);
my @handles=IO::Select->new($sock)->can_read($timeout);
if (scalar(@handles) > 0)
{
$sock->recv($result,1024);
# print "answer from zabbix server $zabbixserver: $result\n";
}
else
{
print "no answer from zabbix server\n";
}
$sock->close();
}
Нужно видимо как то формат данных поменять?