---
title: "Cacti для мониторинга ProFTPd сервера -простой график"
description: "Установил сервер FTP, все достаточно стандартно. Но вот захотелось смотреть статистику - детальную и..."
author: "empty_man"
published: "2010-02-07T22:04:03+00:00"
modified: "2010-02-07T22:04:03+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/cacti-dlya-monitoringa-proftpd-servera-prostoy-grafik-29871"
markdown_url: "https://yvision.kz/post/cacti-dlya-monitoringa-proftpd-servera-prostoy-grafik-29871/markdown"
site_name: "Yvision.kz"
---

# Cacti для мониторинга ProFTPd сервера -простой график

> Установил сервер FTP, все достаточно стандартно. Но вот захотелось смотреть статистику - детальную и...

Установил сервер FTP, все достаточно стандартно. Но вот захотелось смотреть статистику - детальную и общую. С детальной проблем не возникло - awstats мой выбор ) А вот с простым графиком - пользователи в онлайн в разерезе "авторизованные - анонимные" поначалу поставил в тупик, но все решилось за один вечер.

Для всего этого будем использовать cacti и туда же вставим ссылку на awstats чтобы все было в одном месте.

Установку Cacti не рассматриваю. Идем на cacti.net и на форуме качаем скрипт для определения пользователей online. После этого создаем

- Data input

- Data template

- Graph template

Data input - то как получаем данные для графика

В данном случае мы используем скрипт - unix_proftpd_who.pl вот он

#!/usr/bin/perl #===============================================================================

# # FILE: unix_proftpd_who.pl

# # USAGE: ./unix_proftpd_who.pl [--user|--host|--server] parameter

# # DESCRIPTION: Print out user|client|server count and total users count for cacti use

# # OPTIONS: ---

# REQUIREMENTS: Installed and configured ProFTPD

# BUGS: ---

# NOTES: ---

# AUTHOR: Dennis Yusupoff (dyr), denissia@mail.ru

# COMPANY: Smart-Telecom ISP

# VERSION: 1.0

# CREATED: 04.06.2009 18:46:55

# REVISION: --- #===============================================================================

use strict; use warnings; use Getopt::Long;

my $cmd = "/usr/local/bin/ftpwho"; my $args = " -v -o oneline";

my (%hash,$user,$client,$server,$help); my $total = 0;

GetOptions('user=s' => \$user, 'client=s' => \$client, 'server=s' => \$server, 'help|?' => \$help); &usage if $help; &usage if ( $user ? ($client || $server) : ($client && $server) ); #Allow only one parameter open(FH, "$cmd $args |") or die "Cannon execute command: $!\n"; while() { if ($client) { if (/client:\s(.+)\s\[(\d+\.\d+\.\d+\.\d+)\]/){ #$1 - client host name (ReverseDns) #$2 - client host ip $hash{$1}++; #Or by ip $hash{$2}++ unless ($1 eq $2); #Prevent to duplicate ip if UseReverseDNS is Off in proftpd.conf $total++; } }elsif ($server) { if (/server:\s(\d+\.\d+\.\d+\.\d+):(\d+)\s\((.+)\)/){ #$1 - server ip #$2 - server port #$3 - server name $hash{$1}++; $hash{$3}++ unless ($3 eq $1); #Prevent to duplicate servername if it equal ip $total++; } }else { if (/^\s*(\d+)\s(\w+)\s+.+client:\s(.+)\s\[(\d+\.\d+\.\d+\.\d+)\]/){ #$1 - ID #$2 - username $hash{$2}++; $total++; } } } close(FH);

if ($server) { print "selected:".($hash{$server} || 0); }elsif ($client) { print "selected:".($hash{$client} || 0); }elsif ($user) { print "selected:".($hash{$user} || 0); }else { print "selected:U"; }

print " total:$total\n";

sub usage { print "Usage: @_ [--user|--host|--server] parameter\n"; exit 0; } в системе должен быть установлен perl

Добавляем этот скрипт в папку установки cacti - обычно /usr/local/share/cacti/scripts/

после этого создаем **Data Input Methods**

скрипт имеет вводные параматры и выводные данные, поэтому создаем соответсвующие поля

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/P7sHLHcuuLLpsA2ajDRe51Io1YTr76.jpg)

вводные данные - их надо будет определить далее

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/CYHZ9IO4Mqi13cD7hzDU1r4qOIkqXp.jpg)

выводные данные - cacti требует чтобы все выводные данные отделялись знаком ":"

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/25lhwkGpROOV79183I8N6bf8kD8p3b.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/f9l2xnbV5bcOZFZ81d9tSFCiVO3czA.jpg)

Data template - как мы представляем то, что получаем

создаем новый data template- обращаю внимание на то, что у нас 2 поля вывода

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/7k3An2Oe2lCU7MD3U3xheMCbPkLqNF.jpg)

и второе поле

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/tcb5TASC2COYV9OAjmlOR07G7FddjK.jpg)

Graph template - как мы показываем то, что представляем. Ну тут уже все просто :)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/BYYhXFCIl1wneMCKf06qO36UjiX27Z.jpg)

вверху grath template items - как все будет видется -

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/EtAX9uxvwfRi9113cBA3Qj9lFoEeTX.jpg)

На графике я сделал так - total это area (залито все цветом), а anonymous это line1 (линия). Ведь total всегда либо больше, либо равно anonymous %) и получаем в принципе читаемый график.

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/mGw7m301XTyH3MyKs07l91Ms1cnhQ1.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/13FRoW0Y2Cj2nE6DsRy97IxW0GMIUE.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/BRnyCq7IkC3SoD8dQEKl6OQwoKVxMN.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/d9K66bQi73B2rZt7bR5GsDeugSekN7.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/5pfAK2i8zHJ3i1J4dF9Ny2oht6engj.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/1pfth88IwmotEJbZSEXBLHU456rCtW.jpg)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/pAy1LB9jxjV3eDWc52YIB34J8eVYVg.jpg)

Вот примерно такой график. Вообще правильнее назвать его надо - соединения с ftp сервером :)

![Cacti для мониторинга ProFTPd сервера -простой график](https://storage.yvision.kz/images/user/empty_man/4uw5tP4W0Jxxk85GZ24T7ugNzb4YrZ.jpg)

Ну вот и все...но тут есть один минус - точную статистику вы все равно не получите. Поясню, например я качаю download master с ftp файл - так вот он создает 5 секций и (в каждой! ) идет авторизация и получаем мы 5 анонимных пользователей с одного ip. Парсить же уникальные ip тоже не выход...а если сеть за шлюзом и nat - опять получаем вроде 1 ip но коннектов куча. Как вариант ограничить с одного ip по одному коннекту, но тогда попадают пользователи за nat. В итоге забил на это и оставил как есть, все равно более менее точная статистика есть в awstats, а данный график скорее быстрая пристрелка на нагрузку.

---

Source: [https://yvision.kz/post/cacti-dlya-monitoringa-proftpd-servera-prostoy-grafik-29871](https://yvision.kz/post/cacti-dlya-monitoringa-proftpd-servera-prostoy-grafik-29871)