Я новичок в cacti, поэтому, пожалуйста, простите меня, если мой вопрос звучит глупо, я изо всех сил старался найти решение проблемы, но все еще нуждается в помощи. Я хочу собрать количество строк в файле haproxy.log с удаленного внешнего компьютера (FE), я успешно добавил это устройство в кактусы, и теперь рисуются графики, такие как средняя загрузка. Я следил за этим: http://www.cacti.net/downloads/docs/html/how_to.html чтобы добавить график к этому устройству с помощью сценария оболочки, я добавил метод ввода данных, выбрав Script / Command в качестве типа ввода и /home/ubuntu/script.sh в качестве входной строки, а также добавил поле вывода. Затем я добавил источник данных без шаблона и выбрал FE в качестве хоста, затем, как упоминалось в ссылке, я добавил график, и до сих пор все выглядит нормально, проблема в том, что на графике ничего не отображается, файлы журнала кактусов (Debug mode) показывает следующее:
CMDPHP: опросчик [0] хост [5] DS [29] CMD: /home/ubuntu/script.sh, вывод: U 30.12.2011 12:35:07 - CMDPHP: опросчик [0] хост [5] DS [29] ВНИМАНИЕ: результат CMD недействителен. Частичный результат: U
Теперь я знаю, что сценарий должен распечатывать только результат, так как это одно поле вывода, мой сценарий содержит следующее
temp = $ (sudo ssh -i /home/ubuntu/key.pem user@1.1.1.1 '/var/log/haproxy.log | wc -l') echo $ temp
скрипт принадлежит ubuntu, поскольку на сервере cacti нет пользователя cacti, сервер cacti установлен кем-то другим, и теперь меня попросили позаботиться об этом.
Если я выполняю сценарий из командной строки сервера cacti, он работает нормально, и я выполняю его только как пользовательский ubuntu.
Пожалуйста, помогите мне, я не знаю, где я ошибаюсь.
Спасибо
По памяти опросчик кактусов работает как www-data
пользователь, следовательно, не будет иметь разрешения на чтение вашего закрытого ключа.
SSH - не лучший способ для cacti получать данные с удаленных машин. Есть множество альтернатив, но одна из них, с которой я добился успеха, - это использование SNMP для возврата данных с удаленного хоста обратно в cacti.
Демон SNMP в ubuntu может использовать exec
конфигурация для выполнения сценариев в ответ на определенные запросы SNMP. Пример, приведенный в ubuntu snmpd.conf
это:
exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq
Это вернет текущий mailq
вывод для любого клиента, который запрашивает .1.3.6.1.4.1.2021.53
. Вы должны иметь возможность настроить нечто подобное и настроить cacti для использования простого запроса SNMP для получения данных.
На мой взгляд, это намного проще, чем возиться с пользовательскими входами сценария.