F5 ロード バランサ用の Nagios 用の Perl プラグインを作成しています。プール名を、SNMP の OID に一致する 10 進形式に変換する必要があります。
my ( $PoolName ) = $ARGV[1];
my ( $rootOIDPoolStatus ) = '1.3.6.1.4.1.3375.2.2.5.5.2.1.2';
たとえば、これを に変換してから
に変換する必要があります$PoolName
。"/Common/Atlassian"
/.C.o.m.m.o.n./.A.t.l.a.s.s.i.a.n
47.67.111.109.109.111.110.47.65.116.108.97.115.115.105.97.110
それが変換されると、それらは1つの変数に取り込まれます
my ( $PoolStatus ) = "$rootOIDPoolStatus.$OIDPoolName"
私は Nagios 用に他の人の Perl プラグインを逆方向に設計しており、これは他の誰かが行っていることですが、どのような組み合わせを行っていても機能させることができませんでした。彼ら$name
は私のものだろう$PoolName
sub to_oid($) {
my $oid;
my ($name) = $_[0];
return "" if ( ! $name );
$oid = ( length $name ) . '.' . ( join '.', ( map { unpack 'C', $ } ( split '',$name ) ) );
return $oid;
}
$PoolName
OID に必要な 10 進形式に変換するために、Perl ロジックを構築または理解するのを手伝ってくれる人はいますか?