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, думаю смысла нет рассказывать как построить график.
Спустя некоторое время, в кактусе будет красоваться новый график:

Оцените статью
( Пока оценок нет )

Добавить комментарий

  1. Игорь

    Добрый день.
    С большим интересом прочитал статью. Попробовал сделать у себя,но столкнулся с проблемой . В MYSQL не силен.
    У нас в сети большая часть клиентов — всегда онлайн (привязка по MAC-IP).
    Как модифицировать запрос , чтобы реально вычислять людей с активностью по трафику .
    С уважением Игорь.

    Ответить
  2. username

    Приветствую!
    у нас у многих такая же ерунда, на форуме nodeny есть
    http://forum.nodeny.com.ua/index.php?topic=112.0
    т.е. там модифицируется немного скрипт, и то что описано в статье будет работать и для твоего случая.

    Ответить
  3. Игорь

    Спасибо за ответ, но в данном случае не подходит, так как авторизаторы не более чем у 20% клиентов. Остальные всегда онлайн и без авторизаторов.
    Нужен запрос MYSQL , чтобы делать выбдрку по наличию трафика за определенный срез времени.
    Похоже http://forum.nodeny.com.ua/index.php?topic=892.0

    Ответить
  4. username

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

    Ответить