Systemperl Theory of operation
Copyright (c)2002 Jim Massey. All rights reserved
revision 4/18/2002

DESIGN GOALS:

A program is needed to bring together the various network monitoring tools available on a linux type sever, serving clients(hosts) and users logged in to the server. The program needs to be usable over a network connection to enable, a somewhat, remote as well as local administration tool. The program should include functionality for user and group monitoring, including the ability to stop user procccess. The program should/will make use of network monitoring tools LAST, ARP, WHO, USERS as well as configuration files such as HOSTS, DHCP.LEASES, DHCP.CONF and the GDM display manager.

PROGRAM OPERATION SPECS:

The program is written in Perl 5 making use of Tk for the gui, DBI and DBD::Pg for Posgresql access. The design will make use of Postgres if postmaster is running but will operate without it, with some loss of functionality. The DB backend stores, at least, information to build dhcp.conf and /etc/hosts files.

You must have Tk and the DBD and DBI installed as systemperl calls these. Also to use postgres it is assumed that postmaster uses postgres as the user(you can change this by editing $postgres_users in systemperl at the top of the program). You will also need the net_clients.pgdump for your db template(it will have some bogus data in it).

Of course you will need Postgresql installed and working for DB functionality. The program will take care of providing data entry screens, but is not meant for db maintenance - just data entry and validation. There are psql and pgaccess(among others) available for maintenance chores.

To take advantage of the abiltiy to reset a remote boot workstation managed by GDM you must have the customized GDM-kiosk that is available in my software directory. This customized version of the GDM display manager writes a file to /var/log/gdm/accounting that contains the pid of each gdm slave proccess managing a display.

USAGE:

Start systemperl by typing /path_to_program/systemperl.pl in an xterm. The program will print debug and other stuff to the xterm it was started from, for now anyway.

Systemperl consists of 2 windows, Main Window(titled System User management systemperl) and Dhcp Viewer(titled Systemperl DHCP VIEWER).

Main Window:

systemperl1.png

Across the top of the main window is a drop down menu bar consisting of 3 dropdown menus File, Options, Help.

The program initally displays a window consisting of 3 main boxes:

The menu bar has three menus, File - lets you exit the program, Options - has three choices,

· View Users Reports - displays a sreen that can display system USERS and LAST ouput or ARP and WHO. The reports displayed in this window are selected by clicking the labeled buttons.

· View User Processes - this is the window that is initialy displayed showing GDM accounting and user proccesses with uid >= 500. Gives the ablity to dbl click on a user proccess to kill it.

· DHCP Window - pops up the dhcp viewer. This window keeps the program focus while displayed. It is used to view dhcp.leases, dhcp.conf, hosts and to edit dhcp.conf, hosts and to enter information into the net_clients databse(postgres).

The last menu option Help - this option will contain, hopefully, helpful information.

DHCP Viewer:

systemperl2.jpeg

From this window you can perform many useful taskes:

· View dhcp.leases(deault), dhcp.conf, hosts

· Edit dhcp.conf, hosts, add a host entery directly to dhcp.conf and build dhcp.conf or hosts from the net_clients database

· Use database Entry Forms. These forms gather information that can be used to build a dhcp.conf file or a hosts file and stores the data in the net_clients db. The data is later used to build dhcp.conf or hosts

The DHCP viewer is the current focus of development and features/functionality may change. For this reason I am not going to spend much effort in details here - for now. The basic idea of what everything does should be obvious from the labels on each item, at least I think so.

Some items/functionality of note are:

· Under the Edit menu the choice Add Client Directly will bring up the Add client form. Fill out the form and click the Add Client button, this client will be appended to your current dhcp.conf file. The client will be added as its own group.

· The menu Entry Forms contains several items. Each item relates to a table in the net_clients db. All the menu choices here will add rows to the net_clients db. The net_clients db is read, by choosing Build dhcp.conf from the Edit menu, and assembled into a dhcp.conf file.

· The Build DHCP.CONF menu option reads the net_clients db and builds a dhcp.conf file. The file should be formatted for usage by bootp clients. The newly built file is then displayed in a edit capable window and may be edited further. The new file is only saved when the Save DHCP.CONF button is clicked and is written to /etc/dhcp.conf. You should backup your dhcp.conf before messing with this.


Send comments to:
massey@stlouis-shopper.com
Web site - http://stlouis-shopper.com/~jtjsoftware