Import of JFFNMS v0.8.3
[jffnms.git] / INSTALL
blobe6b5214a70c07fcab2e635704c877ab6d76b389a
1 'Just For Fun' Network Management System Version 0.8.x
2             By Javier Szyszlican
3 ======================================================
5 --------------------------------------------------------------
6 If you are a technical writer, want to be one, or happen to be 
7 inspired... We need your contribution with the Documentation.
8 --------------------------------------------------------------
10 Requirements:
11 =============
13 -Operating System:
14     . *NIX (Development is on GNU/Linux, It has been tested on FreeBSD and Solaris too)
15     . Windows 2000/XP also works (A good crond for windows will be useful). 
16         If you are installing on Windows please read the INSTALL.win32.txt file.
17     
18 -Apache ( > 1.3.x or > 2.0.x)
20 -MySQL ( > 3.23.x or > 4.0.x ) or PostgreSQL ( Tested with 7.4.6 )
22 -RRDtool (www.rrdtool.org) (> 1.0.33 )
24 -PHP  ( >= 4.1.2 or > 5.0.x )
25         Extensions: snmp, ssl, gd, sockets, mysql or pgsql, pcre, posix, ob, pcntl and session
27 -NET-SNMP utilities and trapd server (optional) 
29 -GNU Diff 
31 -TFTP Server (optional)
33 -JFF NMS Integration Packages (TACACS+ & Syslog) (optional, useful on routers) 
35 -Graphviz & WebFonts (http://www.graphviz.org) (optional)
37 -NMAP PortScanner > 2.54B (http://www.insecure.org/nmap/) for TCP Port Discovery (optional)
39 -Fping (http://www.fping.com) for Reachability (Only on Linux/*NIX)
41 -tmpwatch (http://linux.maruhn.com/sec/tmpwatch.html) (Only on Linux/*NIX)
42         Used for deleting all temporary files
45 Steps:
46 ======
48 . Compile and/or Install MySQL / PgSQL
50 . Compile and/or Install Apache
52 . Compile and/or Install Graphviz and WebFonts (optional)
54 . Compile and/or Install NMAP
55     
56     Nmap should be set-uid root if you want UDP port monitoring & discovery to work.
58     Execute: 
59         # chmod +s /usr/bin/nmap
60         # chmod a+x /usr/bin/nmap
62 . Compile and/or Install Fping
64     Verify that the user running the cron jobs, is able to execute fping and that it is set-uid root.
65      
66     Execute: 
67         # chmod +s /usr/sbin/fping
68         # chmod a+x /usr/sbin/fping
69     
70     And you should see something like this:
71         -rwsr-xr-x    1 root     adm         28291 May 31 22:14 /usr/sbin/fping
73 . Compile and/or Install RRDtool
74     
75 . Compile and/or Install PHP 
77         I M P O R T A N T
78         -----------------
80     PHP Modules Needed: sockets, snmp, gd, (pgsql and/or mysql), wddx (for satellites), pcre (syslog parsing)
82     Be sure to add the required modules to your /etc/php.ini file.
83     
84     Remember to verify that your modules are loaded with /admin/adm/test.php or the JFFNMS setup screen.
86     A N D
88     ---------------------------------------------------
89     ---------------------------------------------------
90     Change This in your php.ini file.
92     register_globals = On 
93     register_argc_argv = On 
94     error_reporting  =  E_ALL & ~E_NOTICE
95     allow_url_fopen = On
96     include_path = .:/usr/share/pear
97     short_open_tag = On
98     
99     ---------------------------------------------------
100     ---------------------------------------------------
102     Also check if your Apache is loading mod_php.
104     Any change to the PHP ini file (ie. /etc/php.ini) requires Apache to be restarted to take effect.
106 --------------------------------------------------------------
107 . Read the docs/* files, these are examples of configuration.
108 --------------------------------------------------------------
110 . Optional: Install Integration Packages tac_plus and msyslog (read the README and INSTALL files of each program).
111     Hints: 
112         -If you have problems with mysql when compiling (mysql.h lines ~245 & ~256) change DB to db (lowercase);
113         -If you have a linking problem with compress add -lz to the Makefile libraries      
114         -msyslog: Remember to change your init.d/syslog to the new binary and command line options. (read the example)
116 . Create User & Group
118         Note: replace apache by your Apache user (like apache, httpd, www-data, etc)
120         # groupadd jffnms
121         # useradd -g jffnms -d /opt/jffnms -s /bin/false -c 'JFFNMS User' jffnms
122         # usermod -G jffnms apache
124 . Unpack the release:
126         # tar xvzf jffnms-0.8.x.tar.gz 
128     You will get a directory called jffnms-0.8.x/ 
130         # mv jffnms-0.8.x /opt/jffnms
132 . Permissions
133         
134         # chown -R jffnms:jffnms /opt/jffnms
135         # chmod 770 /opt/jffnms
136         # chmod -R ug+rw /opt/jffnms
138 . Crontab
139         Install the JFFNMS crontab file 
141         # crontab -u jffnms /opt/jffnms/docs/unix/crontab
142         
143         Now modify the values at the top if they don't match your system:
145         # crontab -e -u jffnms 
147         Allow JFFNMS to run cron jobs (AFAIK only needed in Solaris)
149         # echo jffnms >> /etc/cron.allow
151 . Create the Databases
153     Manually create the database "jffnms", set the permissions and then import the schema and data.
154     
155     Replace the 'x' with the jffnms version number.
156     
157     MySQL:
158     ======
159         # mysql -u <mysql admin username> -p<password>
160         mysql> CREATE DATABASE jffnms;
161         mysql> GRANT ALL PRIVILEGES ON jffnms.* TO jffnms@localhost IDENTIFIED BY 'jffnms';
162         mysql> FLUSH PRIVILEGES;
163         mysql> quit
164     
165         # mysql -u jffnms -pjffnms jffnms < docs/jffnms-0.8.x.mysql
166     
167     PostgreSQL:
168     ===========
169         # psql template1 postgres
170         template1=# create user jffnms password 'jffnms' createdb;
171         template1=# \connect template1 jffnms
172         template1=# create database jffnms;
173         template1=# \q
174         
175         # psql jffnms jffnms < docs/jffnms-0.8.x.pgsql
176     
177     This will create the jffnms Tables and required records.  
180 . Configure Apache as follows (from docs/*): 
182     1. As a Virtual Host (if you control a DNS server):
184         <VirtualHost *>
185             ServerAdmin you@yournet.com
186             DocumentRoot /opt/jffnms/htdocs
187             ServerName nms.yournet.com
188             LimitRequestLine 20000
189         </VirtualHost>
191     2. As a sym-link (in Unix):
193         ln -s /opt/jffnms/htdocs /var/www/html/jffnms 
195         (or the path your Apache uses).
197     JFFNMS needs to be at the main Document Root, a VirtualHost or a SymLink. 
199 . Restart/Reload Apache, MySQL or PgSQL, xINETD (tftpd)
201 . PHP Module Load Errors are reported to /var/log/httpd/error_log (RedHat) or /var/log/apache/error_log (Gentoo)
203 . Point your browser to http://www.yourserver.com/jffnms or http://nms.yournet.com/ (depending on what you choose)
205         You should see the Setup screen, it should have auto-discovered your configuration.
206         Verify that everything is correct (OK, YES in green) before saving the config.
207     
208 . Point your browser (again) to http://www.yourserver.com/jffnms or http://nms.yournet.com/ (depending on what you 
209 choose)
211     Username: admin 
212     Password: admin
214     And now, you are inside the system.
217 . You can read the manual at http://www.jffnms.org
220 =========================================================================
221 If you need anything, contact us at: jffnms-users@lists.sourceforge.net
223 Thank You for trying 'Just For Fun' Network Management System
225 Don't forget to Donate to the project if you find it useful for your work.
226 =========================================================================
228 Javier Szyszlican aka SzYsZ
229 Buenos Aires, Argentina
230 javier@jffnms.org (please try the mailing list first) 
231 ICQ #397319