INSTALL
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:7k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. REQUIREMENTS
  2.   A knowledgeable user.  This system is *not* entirely user friendly
  3.   yet.   You have been warned.  Use at your own risk.  yada yada yada.
  4.   Get and install:
  5.   
  6.     the mysql (http://www.mysql.com) database
  7.       it may work with other databases, but I haven't tried.
  8.     Apache (http://www.apache.org)
  9.     The following perl modules (http://www.cpan.org):
  10.       mod_perl
  11.       SNMP (from the net-snmp source tree: SRCTREE/perl/SNMP)
  12.       CGI
  13.       DBI
  14.       DBD::mSQL
  15.       GD::Graph
  16.     You may need more modules depending on your perl version, so sorry
  17.     in advance if I missed some.
  18.   Building and setting up mysql (a summary of what is needed.  See the
  19.   mysql documentation for further details):
  20.      ./configure
  21.      make
  22.      make install
  23.      scripts/mysql_install_db
  24.   
  25.      start it by running 'safe_mysqld'.
  26.      To run the sql commands listed in the following text, run
  27.      'mysql'.
  28. SQL REQUIREMENTS
  29.   The scripts used by this project automatically create, edit, delete, 
  30.   insert, update, etc everything necessary.  Because of this, you'll
  31.   need to set up a SQL user with the ability to modify the heck out of 
  32.   a database called "snmp" on your mysql server.  We'll call this user 
  33.   SQLUSER below, and its password SQLPASSWORD.  Replace these with
  34.   your appropriate information anytime you see them listed below.
  35. INSTALLING THE PERL MODULES
  36.   perl Makefile.PL
  37.   make
  38.   make install
  39.   Copy the red.gif, and green.gif graphics files to your apache
  40.   HTML-ROOT/graphics/.
  41. SETTING UP APACHE
  42.   (assumes you have mod_perl installed properly from above)
  43.   Idealy, it should be put behind a user/password database in your web
  44.   server (something that sets the REMOTE_USER environmental for CGI
  45.   scripts).  This will greatly enhance its operation so that different
  46.   users can be users of different groups of hosts, etc...  If this is
  47.   not done, everyone will use the user name "guest".
  48.   At the bottom of your httpd.conf file or in an apporpriate
  49.   VirtualHost directive put the following lines, appropriately
  50.   configuring the sql username, etc.  I strongly recommend turning on
  51.   SSL support for this as well.:
  52.     PerlModule netsnmp::manager
  53.     <Location /manage>
  54.          # put apache protection stuff here, like a password database etc!!!
  55.          SetHandler perl-script
  56.          PerlHandler ucdsnmp::manager
  57.          PerlSetVar hostname SQLHOST
  58.          PerlSetVar dbname snmp
  59.          PerlSetVar user SQLUSER
  60.          PerlSetVar pass SQLPASSWORD
  61.  # turn on password protection.  see apache htpasswd documentation.
  62.  # comment these out for unauthenticated access (generally a bad idea)
  63.  AuthType Basic
  64.          AuthName "SNMP manager access"
  65.          AuthUserFile /etc/httpd/conf/manager-passwd
  66.          require valid-user
  67.     </Location>
  68.    Restart apache after you've done the above.
  69. SETTING UP THE MYSQL UCD-SNMP DATABASES
  70.   Use the following perl script to set up the mysql database tables
  71.   required:
  72.     ./setupdb -u SQLUSER -p SQLPASSWORD -h SQLHOST
  73.   To display what this will do before you run it:
  74.     ./setupdb -v -n
  75. SETTING UP USERS OF THE SYSTEM
  76.   Now you need to add yourself as a user.  You'll want to use a
  77.   username that you configured for your apache password file (or
  78.   whatever), or the user "guest" if you didn't configure apache for
  79.   authenticated access.  The -a in this case grants "administrative"
  80.   rights to the group of hosts, and thus allows the user to add new
  81.   hosts to the group, delete hosts, etc.  Non-administrative users are 
  82.   mostly "read-only" type users.
  83.   The interface groups hosts together in "groups", and you put users
  84.   in these groups to assign responsiblity for them.  Groups are
  85.   created when a user gets assigned to one, so just pick a groupname
  86.   for now and use it below.  Maybe later you can add yourself to a new 
  87.   group using a similar command, and the web interface will change to
  88.   reflect that you are now in more than one group.  Use the same group 
  89.   name for multiple users that all belong to a single "group".
  90.   If you add an email address to the argument list the system will
  91.   mail that user every time it finds a problem or finds a problem that 
  92.   has been fixed.
  93.   *** DO NOT PICK A GROUP WITH THE NAME "default" ***
  94.     ./setupuser -u SQLUSER -p SQLPASSWORD -h SQLHOST -a GROUPNAME USERNAME [EMAILADDRESS]
  95. SETTING UP SNMP AUTHORIZATION INFORMATION
  96.   Now, you need to add in your default authorization information for
  97.   how to make SNMP requests to your host.  The parameter names you can 
  98.   pick come straight from the SNMP perl module, so see "perldoc SNMP"
  99.   for all the parameter names you can pick from.
  100.   Examples:
  101.     ./setupauth -u SQLUSER -p SQLPASSWORD -h SQLHOST Version 1 Community public
  102.     ./setupauth -u SQLUSER -p SQLPASSWORD -h SQLHOST Version 3 SecName 'v3user' AuthPass 'myv3passphrase' SecLevel authNoPriv
  103.   I also recommend adding a large default timeout (30 secs):
  104.     ./setupauth -u SQLUSER -p SQLPASSWORD -h SQLHOST Timeout 30000000
  105.   
  106.   If you want different parameters for a group, it'll inherit
  107.   everything from the default parameters specified above plus any more 
  108.   that you set or override:
  109.     ./setupauth -u SQLUSER -p SQLPASSWORD -h SQLHOST -g agroup Community private
  110.   Further, hosts can be given specific parameters as well if they're
  111.   really special:
  112.     ./setupauth -u SQLUSER -p SQLPASSWORD -h SQLHOST -m host Timeout 60000000
  113. COLLECTING THE DATA
  114.   The command you need to run to collect data is snmptosql, which will 
  115.   use the information defined above to fill your data base with all
  116.   sorts of useful information that you've asked it to collect.
  117.   Something like:
  118.     snmptosql -H SQLHOST -u SQLUSER -p SQLPASSWORD
  119.   should be put in cron to update a regular intervals.  I run mine
  120.   every 10 minutes.  Note that it will *not* scale to a large number
  121.   of hosts easily at the moment.  Start with no more than 20 or so to
  122.   begin with.
  123. USING THE SYSTEM
  124.   Most of the things you'll need to do can be done from the web
  125.   interface that you've just set up as /manager on some system in the 
  126.   step above.  Go to this web page to see what you can do.
  127. MONITORING HOSTS WITH IT (finally)
  128.   It's *not* entirely intuitive yet.  So, lets give you an example.  In
  129.   your snmpd.conf file, put a line that says "proc sendmail".  This will 
  130.   check to see if sendmail is running on your system.  Also put "disk /
  131.   10%" which will require the disk has at least 10% of free space.
  132.   Restart the snmpd (or kill -HUP).  See the snmpd.conf manual page
  133.   for some details.
  134.   Then, go to the above URL and click on the group name you want to
  135.   add a host to and enter the host name in the dialog box near the
  136.   bottom of the page (assuming you're logged in as an administrator
  137.   user setup using the -a flag to setupuser above).  Click on the
  138.   "setup group XXX" link at the bottom of the group's page and click
  139.   on all the check buttons (you can turn them all on even if you're
  140.   not really using them all) and hit the submit button.
  141.   Come back 10 minutes later, reload the group and click on the host
  142.   name.  You should see pretty red/green lights if there is or isn't a
  143.   problem.  It'll show you a few tables with the various bits of data
  144.   it collected (including how many sendmail processes are running, an
  145.   how much disk space is actually being used), etc.
  146. GRAPHING
  147.   To be written.