|
Меню
Статьи
Статистика
|
Хостов сегодня: 10 Хитов сегодня: 42 Статей: 29 |
шиномонтажное оборудование |
phpBB users onlineНаткнулся на интересный шаблон для кактуса, отображающий количество юзверей на форуме, работающем на движке phpbb. Ввиду большой популярности данного движка и самог окактуса, думаю такой шаблон будет полезен не только мне :)
Инфу для графиков будем выдирать из mysql базы естественно, где phpbb и хранит всю инфу.
Итак, первый скрипт. Находится на машине, где работает phpbb. Скрипт выдирает кол-во юзеров онлайн на форуме:
#!/usr/bin/perl
use DBI;
# Define the databaseconnection
my $dsn = 'DBI:mysql:db_name:db_hostname';
my $db_user_name = db_user;
my $db_password = db_pass;
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
my $sth;
# Fetch number of posts posted during the last hour
$sth = $dbh->prepare("SELECT COUNT(post_id) AS posts FROM phpbb_posts WHERE (post_time + 3600) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $posts1h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($posts1h)
print "posts1h:$posts1h ";
# Fetch number of posts posted during the last 3 hours
$sth = $dbh->prepare("SELECT COUNT(post_id) AS posts FROM phpbb_posts WHERE (post_time + 10800) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $posts3h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($posts3h)
print "posts3h:$posts3h ";
# Fetch number of posts posted during the last 24 hours
$sth = $dbh->prepare("SELECT COUNT(post_id) AS posts FROM phpbb_posts WHERE (post_time + 86400) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $posts24h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($posts3h)
print "posts24h:$posts24h ";
# Fetch number of topics posted during the last hour
$sth = $dbh->prepare("SELECT COUNT(topic_id) AS posts FROM phpbb_topics WHERE (topic_time + 3600) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $topics1h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($topics1h)
print "topics1h:$topics1h ";
# Fetch number of topics posted during the last 3 hour
$sth = $dbh->prepare("SELECT COUNT(topic_id) AS posts FROM phpbb_topics WHERE (topic_time + 10800) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $topics3h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($topics3h)
print "topics3h:$topics3h ";
# Fetch number of topics posted during the last 24 hour
$sth = $dbh->prepare("SELECT COUNT(topic_id) AS posts FROM phpbb_topics WHERE (topic_time + 86400) > UNIX_TIMESTAMP(NOW())");
$sth->execute();
my $topics24h = $sth->fetchrow_array();
$sth->finish();
# print out the result ($topics24h)
print "topics24h:$topics24h "; |
Для перла должен быть установлен модуль mysql. Вначале скрипта указываем настройки соединения с БД. Делаем запускаемым
| www#/usr/local/sbin/scripts> chmod +x forum_users.pl |
Пробуем запустить
www#/usr/local/sbin/scripts> perl forum_users.pl
guests:0 registered:4 total:4 www#/usr/local/sbin/scripts> |
Как видим на форуме 0 гостей, 4 зарегистрированных пользователя и всего 4. Вывод должен быть точно таким иначе кактус не поймёт, что от него хотят. guest, registered и total своего рода переменные, которые отдаём пулеру cacti.
У нас cacti находится на другой машине, поэтому пишем еще 1 скрипт на тачке с кактусом:
#!/usr/bin/perl
$ip=$ARGV[0];
chomp($ip);
$rdata=`/usr/bin/ssh -l root -i /root/.ssh/new_key $ip \"perl /usr/local/sbin/scripts/forum_users.pl"`;
chomp($rdata);
print $rdata;
exit(); |
Здесь просто вызываем первый скрипт на другой машине, используя авторизацию по ключам ssh.
Теперь заводим темплейты в админке кактуса.
Импортируем шаблоны. И заводим новый график.
Выглядит это примерно так
Добавлено: 2009-03-24 Просмотров: 571 Источник: www.unixnotes.ru
 |
|
Новое:
microdc2 консольный клиент DC++ Потребовалось раздавать юзерам сети контент с фтп сервака не только с помощью самого ftp сервера, но и через DC++ протокол. Added: 2009-08-25
FreeBSD net-snmpd Очень много возможностей Cacti работают только при работающем демоне SNMP. Загрузка сетевых карт, мониторинг дискового пространства, загруженность процессора/памяти и много Added: 2009-08-13
Копирование файла с фтп Начались проблемы с нехваткой места на биллинг сервере. Раньше все бекапы хранились на нём же, просто на другом диске. Основное Added: 2009-08-08
|