Page 1 of 1

Nas4Free cacti

Posted: 26 Sep 2013 21:24
by tsrodger
Есть ли у кого успешный опыт установки cacti на nas4free?
Попытка установки через pkg_add на full привела к сбою в работе основного web интерфейса...
Fatal error: Call to undefined function gettext() in /etc/inc/globals.inc on line 72
И с mysql проблемы: при запуске вылетает...

Пытался на основании вот этой инструкции http://i-notes.org/freebsd-ustanovka-i-nastrojka-cacti/ рекомендованной в соседнем топике

Re: Nas4Free cacti

Posted: 27 Sep 2013 07:09
by alexey123
Когда ставишь пакеты на полную версию, нужно учитывать, что некоторые из них, особенно содержащие php в графе Required To Run ломают NAS4free.
Починить можно попробовать, переустановив рнр
А вообще, нормальный способ установки дополнительного ПО- через jail

Re: Nas4Free cacti

Posted: 27 Sep 2013 08:44
by tsrodger
Про php, вектор понял, попробую еще раз на досуге...

Хм, мне не совсем понятно на сколько корректной будет работа cacti под Jail с той точки зрения, что это же изолированная "система"? Честно говорю, т.к. установить пока не удалось, то в детали настроек не углублялся, но не совсем понимаю как мониторить состояние всего оборудования (в подписи), например, температуру всех винтов...

Re: Nas4Free cacti

Posted: 27 Sep 2013 08:58
by alexey123
MRTG работает под джейлом, надо только некоторые скрипты запускать из под main NAS4free. Кактус мало чем отличается, только требует вдвое больше программок для работы.

Re: Nas4Free cacti

Posted: 28 Sep 2013 13:34
by tsrodger
Alexey огромное спасибо за ссылку по фиксу PHP: все исправил теперь работает ...

Отказался в итоге от установки под Jail, поставил под основной машиной, БД установлена на пуле...
Доволен аки питон =)

Вот, может кому-то будут полезны некоторые скрипты для Cacti

1) Температура жестокого диска (через smartctrl)
установка smartctrl

Code: Select all

pkg_add -r smartctrl
Сам скрипт в параметрах принимает путь к диску, для которого нужно получить температуру.
Код скрипта:

Code: Select all

#!/usr/bin/perl

open(PROCESS, "/usr/local/sbin/smartctl -a $ARGV[0] | /usr/bin/grep 'Temperature_Celsius' |");
foreach (<PROCESS>) {
        if ($_ =~ /([0-9]{2,}\sTemperature_Celsius\s*0x[0-9]{4,}\s*[0-9]{3,}\s*[0-9]{3,}\s*[0-9]{3,}[a-zA-Z_-\s]{3,})([0-9]{2,})(.*)/){
                print $2;
        }
}
close(PROCESS);
Пример вызова и результат:
perl hdd_temperature.pl /dev/ada0
35
2) объем свободной памяти, базируется на скрипте free для FreeBSD, входной параметр mem_free

Code: Select all

#!/usr/bin/perl

open(PROCESS, "/usr/local/bin/free | /usr/bin/grep -w $ARGV[0]|");
foreach (<PROCESS>) {
        if ($_ =~ /($ARGV[0].*\s)((.*[0-9])(MB))/) {
                print $3;
        }
}
close(PROCESS);
Результат выполнения:
perl freebsd_memory.pl mem_free
558

Re: Nas4Free cacti

Posted: 27 Oct 2013 16:35
by ab5031
alexey123 wrote:MRTG работает под джейлом, надо только некоторые скрипты запускать из под main NAS4free. Кактус мало чем отличается, только требует вдвое больше программок для работы.
Нужна помощь!
NAS4Free embedded (revision 847). Cacti установлен в jail, вроде работает, график температуры процессора уже рисует. Хочу прикрутить графики температуры дисков и оборотов вентиляторов. Для дисков есть рабочий perl-скрипт для сбора данных, но в embedded он не катит. Может кто поможет со sh-скриптом который будет собирать в файл температуры дисков? Пытался сам, но не осилил:

Code: Select all

#!/bin/sh

LOGFILE="/mnt/scripts/hddtemp.log"
for hdd in $(sysctl -n kern.disks); do
		devTemp=`smartctl -a /dev/$hdd | grep "Temperature_Celsius" | awk '{print $10}'`
		printf "$hdd" ":" "$((devTemp))" | log "$LOGFILE"			
done 
Где чего подправить нужно?

Re: Nas4Free cacti

Posted: 30 Oct 2013 13:58
by ab5031
ab5031 wrote: NAS4Free embedded (revision 847). Cacti установлен в jail, вроде работает, график температуры процессора уже рисует. Хочу прикрутить графики температуры дисков и оборотов вентиляторов. Для дисков есть рабочий perl-скрипт для сбора данных, но в embedded он не катит.
Короче
1. Добавил в sysctl.conf:

Code: Select all

security.jail.enforce_statfs: 2 # Возможность видеть клетке все смонтированные устройства
2. подмонтировал devfs NAS4Free в Jail:

Code: Select all

mount -t devfs devfs /path/to/jail/dev
и все заработало