Назад | Перейти на главную страницу

сбой удаленного сбора данных haproxy через cacti

Я новичок в 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 для получения данных.

На мой взгляд, это намного проще, чем возиться с пользовательскими входами сценария.