Всем привет. Прошу тапками не закидывать и в сторону Zabbix не посылать.
Ситуация такая. Есть у меня скрипты для мониторинга параметров серверов. На SNMPv2 все рабортает, т.к. скрипту нужно передать всего 3 парамета «hostname», «snmp_port», «community».
В SNMPv3 всё иначе. Нужно передать 8 параметров:
$ifAlias = snmp3_get("$hostname:$snmp_port", "$security_name", "$security_level", "$auth_protocol", "$auth_passphrase", "$privacy_protocol","$privacy_passphrase", "$object_id", 7200000);
Из справки Cacti в Data Input Method я могу передать:
«If this field should be treated specially by host templates, indicate so here. Valid keywords for this field are ‘hostname, host_id, location, snmp_community, snmp_username, snmp_password, snmp_auth_protocol, snmp_priv_passphrase, snmp_priv_protocol, snmp_context, snmp_engine_id, snmp_version, snmp_port, snmp_timeout, external_id’»
Ко всему этому нужно передать «security_level».
Не могу понять как это сделать.
Я могу это сделать указав переменную в самом скрипте, но считаю данный способ не совсем правильным.
Пример скрипта:
<?php
/* do NOT run this script through a web browser */
if (!isset($_SERVER["argv"][0]) || isset($_SERVER['REQUEST_METHOD']) || isset($_SERVER['REMOTE_ADDR'])) {
die("<br><strong>This script is only meant to run at the command line.</strong>");
}
$no_http_headers = true;
$hostname = $_SERVER["argv"][1];
$snmp_port = $_SERVER["argv"][2];
$security_name = $_SERVER["argv"][3];
$auth_protocol = $_SERVER["argv"][4];
$auth_passphrase = $_SERVER["argv"][5];
$privacy_protocol = $_SERVER["argv"][6];
$privacy_passphrase = $_SERVER["argv"][7];
$object_id = ".1.3.6.1.4.1.2021.8.1.101.1";
$seclvl = "authPriv";
$ifAlias = snmp3_get("$hostname:$snmp_port", "$security_name", "$seclvl", "$auth_protocol", "$auth_passphrase", "$privacy_protocol", "$privacy_passphrase", "$object_id", 7200000);
echo $ifAlias;
?>