Nodeny, snmpd, cacti график число пользователей онлайн

Думаю если ты сейчас читаешь эту заметку, то не один раз видимо задумывался о мониторинге числа активных пользователей билинга в графическом виде. Чтож, на самом деле ничего нет проще, немого времени и конечно же желание познать кое-что новенькое )))
Начнем с написания скрипта, который нам будет предоставлять данную информацию.
Т.к. билинг написан на perl, то и скрипт тоже будет перловский, хотя никто вам не мешает использовать тот язык, который ближе, мне захотелось попробовать свои силы в perl.
Выглядит он так:

 #!/usr/bin/perl
use DBI;
my $host = "mysqlhost"; # MySQL-сервер нашего хостинга
my $port = "3306"; # порт, на который открываем соединение
my $user = "bill"; # имя пользователя
my $pass = "123456789"; # пароль
my $db = "bill"; # имя базы данных
$dbh = DBI->connect("DBI:mysql:$db:$host:$port",$user,$pass);
$sth = $dbh->prepare("SELECT count(id) FROM `users` where `auth` <> 'no'");
# готовим запрос
$sth->execute; # исполняем запрос
while ($ref = $sth->fetchrow_arrayref) {
print "$$ref[0]\n"; # печатаем результат
}
$rc = $sth->finish;
$rc = $dbh->disconnect;  # закрываемсоединение


Думаю расказывать то, что необходимо заменить параметры подключения к серверу БД и самой базе данных нет, поэтому настроив все это дело под себя, сохраняем его например в файлик getonline.pl и кладем в директорию, к которой имеется доступ демону snmpd, например в /tmp/
Приступим к настройке самого snmpd.

# ee /usr/local/etc/snmpd.config

и добавляем в него наш скриптик:

extend .1.3.6.1.4.1.2021.8 online /tmp/getonline.pl

рестартим демон:

# /usr/local/etc/rc.d/snmpd restart
Stopping snmpd.
Waiting for PIDS: 7195.
Starting snmpd.

и валим настраивать cacti в меню выбираем Data Templates добавляем новый и приводим его к такому виду:

В поле OID вставляем следующее значение: .1.3.6.1.4.1.2021.8.4.1.2.6.111.110.108.105.110.101.1 — это и есть оид нашего скрипта, проверить его можно snmpwalk-ом, но сейчас не об этом.
Далее открываем вкладку Graph Templates, заводим новый и приводим его к такому виду:

Далее, заходим в Devices, выбираем устройство с которым будем ассоциировать график и в Associated Graph Templates добавляем наш Nodeny OnLine Users, думаю смысла нет рассказывать как построить график.
Спустя некоторое время, в кактусе будет красоваться новый график:

Поделись с друзьями:

Опубликовано 17.10.2011 в 09:11 · Автор komivlad · Ссылка
Рубрики: FreeBSD, NoDeny, perl, Programming · Теги: , , , ,

4 комментария

Подписаться на комментарии по RSS

  1. Написал(-а) komivlad
    11.05.2012 в 16:11
    Ответить · Ссылка

    сейчас уже не помню как точно делал чтобы отображались авторизованными те у кого всегда онлайн, но факт что на форуме была тема, причем не левыми модулями а правкой пары строк в скриптах билинга

  2. Написал(-а) Игорь
    11.05.2012 в 15:03
    Ответить · Ссылка

    Спасибо за ответ, но в данном случае не подходит, так как авторизаторы не более чем у 20% клиентов. Остальные всегда онлайн и без авторизаторов.

    Нужен запрос MYSQL, чтобы делать выбдрку по наличию трафика за определенный срез времени.

    Похоже forum.nodeny.com.ua/index.php?topic=892.0

  3. Написал(-а) komivlad
    11.05.2012 в 14:24
    Ответить · Ссылка

    Приветствую!

    у нас у многих такая же ерунда, на форуме nodeny есть

    forum.nodeny.com.ua/index.php?topic=112.0

    т.е. там модифицируется немного скрипт, и то что описано в статье будет работать и для твоего случая.

  4. Написал(-а) Игорь
    11.05.2012 в 12:31
    Ответить · Ссылка

    Добрый день.

    С большим интересом прочитал статью. Попробовал сделать у себя, но столкнулся с проблемой . В MYSQL не силен.

    У нас в сети большая часть клиентов — всегда онлайн (привязка по MAC-IP).

    Как модифицировать запрос, чтобы реально вычислять людей с активностью по трафику .

    С уважением Игорь.

Подписаться на комментарии по RSS

Написать комментарий