IPAcco
IP Accounting Collector and Visualizer
for Cisco Routers

Version 0.2.0.1

Release Notes

0. Important note:

If you are upgrading from the previous version of IPAcco, please read this document before you start. There are some changes in this version that may make you IPAcco installation non-functioning if you ignore them!

1. What's New in This Release (since 0.2)

2. What's New in The Release 0.2

3. Upgrading from the Previous Version

If you are upgrading from the version 0.2, just unpack the distribution archive, compare the old and new directory contents and replace the files that were changed with the new versions.

If you are upgrading from the version 0.1.x then read on.

Upgrading procedure is basically similar to the procedure of clean installation.

3.1. Starting Upgrade

Unpack the distribution archive to the temporary directory of your choice. Later you will move the files to the locations they are intended to be (see below) but now let them be where they are. Review the README file included with the distribution.

If you are installing IPAcco on the Unix-like system with bash (Bourne Again SHell, which presents in most modern Unix's), you may choose to use the supplied bash script install.bash to ease the installation process. This script copies IPAcco files to their destination directories and performs some additional tasks. Alternatively you may do all these things manually. Anyway, some installation steps cannot be automated and should be performed manually. Currently there is no installation script for Windows.

All installation steps that can be performed automatically with the installation script are noted below.

3.2. Configuring the Router

Skip this step since your router is already prepared for work with IPAcco.

3.3. Creating the database

This step should also be skipped since the database already exists.

3.4. Running the Installation Script

Now it's the time to run the installation script if you decided to use it. If you decided not to use it, skip to the next chapter. Run install.bash and answer the questions it will ask. Most questions concern the destination directories for various IPAcco files.

Install.bash does not actually recognize the directory structure style used in your system. It simply supposes that all executables should be installed to /usr/bin and /usr/sbin, all configuration files – to the subdirectory of /etc, all php- and html-pages – to the subdirectory of /var/www/html and so on, as it used in Red Hat Linux, the system on which IPAcco was tested. The installer proposes these directories by default. Of course, if you prefer to install IPAcco to the subdirectories of the single directory you can enter the directory paths you prefer.

The installation script doesn't override the old version files. It turns them to backup copies instead. Therefore you should cleanup these backup files manually after you make sure the new version works well.

3.5. Setting Up the Data Collector Script

The data collector script is named ipacco-datapump.tcl in the current version (the name changed since the previous version) and is located initially in the datapump subdirectory of IPAcco distribution. To make this script work you should perform the following two steps.

  1. Copy or move the script to the directory you want it to live assign the appropriate access attributes to it. The destination directory could be /usr/sbin or /usr/local/ipacco/bin for Unix/Linux or C:\Program Files\IPAcco for Windows. You may also create a symbolic link to this script so that the script could be invoked with just a file name without .tcl extension (i.e. ln -s ipacco-datapump.tcl ipacco-datapump).

If you use the installation script it will do this for you.

  1. Copy or move the datapump configuration file (called ipacco-datapump.cfg) to the appropriate directory and assign the appropriate access attributes to it. The destination directory could be /etc/ipacco or /usr/local/ipacco/bin for Unix/Linux or C:\Program Files\IPAcco for Windows. By default ipacco-datapump.tcl searches for its configuration file in /etc/ipacco when running under Unix/Linux and in its own directory when running under Windows.

If you use the installation script it will do this for you.

If you've placed the configuration file to the non-default directory you will have to run the datapump script with -c option:

ipacco-datapump -c <actual-location>/ipacco-datapump.cfg

Now copy your actual configuration settings from the start of your old collector script (IpAccoDataPump.tcl) to the configuration file. Don't forget to change the format as appropriate.

    Now you should be able to run the script and see how it works. Enter tclsh ipacco datapump.tcl command at the command prompt. In Linux/Unix systems you may enter just ipacco datapump.tcl. In Windows this brief form should also work provided Tcl is properly installed, but I do not recommend to use it because in this case the interpreter would run in the separate window that will close immediately after the script termination, so you probably won't have time to read any diagnostic messages if something goes wrong.

    You should see the usual output of “show ip accounting” IOS command as you use to see in the previous version.

Except -c option mentioned above, ipacco-datapump accepts two more options. Both make them to run continuously, instead of performing one pass and terminating. The first option, -r does exactly this. Ipacco-datapump runs until being interrupted and periodically performs data collecting cycles. The period of these cycles is taken from the database (see below).

The second option, -d (“d” stands for “daemonize”) additionally suppresses all console output. It does not really daemonize the script, i.e. does not send it to the background since current Tcl implementations seem to lack the mechanism to do this. So if you want to run the script in the background, you should also (besides specifying -d) terminate the command line with “&” (in Unix shell) or use “start” command (in Windows).

  1. Then you need to schedule this script to run at regular intervals. You can either schedule the script with some external scheduler or let it schedule itself, i.e. run it in the background mode. In the last case the script will choose the right working cycle period value automatically. I personally prefer the second way.

    If you prefer the first way you should edit the scheduler settings for the collector script to reflect it new name.

If you system uses /etc/cron.d directory for cron scripts you may just copy the provided cron file from the /cron.d subdirectory of the distribution directory.

If you use the installation script it will do this for you.

And don't forget to remove the schedule for the old script!

If you prefer the second way you should somehow make the collector script to run automatically at the system startup. As the system startup procedures vary greatly from one OS to another I cannot provide a startup script for IPAcco data collector suitable for any system. But if your system uses SystemV-style initscripts the startup script provided in the /sysvinit subdirectory of the distribution directory may appear useful for you. Copy it into /etc/rc.d/init.d directory and, if your system supports chkconfig utility issue the following command:

chkconfig –add ipacco

If you use the installation script it will do this for you.

3.6. Deploying PHP Scripts

At last, you should setup the set of server-side PHP scripts that implement the Web-based user interface for IPAcco. If you do not use the installation scripts, backup file “Globals.php” manually, since you will need the settings it contains later. Replace the old PHP files with the new ones.

If you use the installation script it will do this for you.

Next, move you site-specific settings from the old “Globals.php” to the new “SiteDefs.php” file. Specifically you should copy the lines that look like the following:

define("DBSERVER", "ipacco");

define("DBNAME", "ipacco");

define("DBLOGIN", "ipacco-web");

define("DBPASSWORD", "ipacco=web");

Don't forget to cleanup the backup files manually after you make sure the new version works well.