observium & snmp service install

Debian Ubuntu Installation (RHEL and CentOS Installation参考官网http://www.observium.org/wiki/Installation,只是有些命令不同而已)


1, (可选项)Install the packages we need to run Observium:(官网上说要安装这些,因为服务器一般都已经安装php apache mysql 所以可以先跳过这个步骤,缺什么包再装,因为如果执行下面命令的话,会更新你之前装的包,但有时候是不需要而且是不能更新的。其中的php-pear库必须要安装,参考note3)

apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz php5-mcrypt php5-json subversion mysql-server mysql-client rrdtool fping imagemagick whois mtr-tiny nmap ipmitool python-mysqldb

2, (可选项)If you want to be able to monitor libvirt virtual machines, install libvirt-bin (beware: this pulls in a whole bunch of dependencies you otherwise probably wouldn't need on your server):
apt-get install libvirt-bin

3,Create a directory for Observium to live in:(目录什么的无所谓的啦)
mkdir -p /opt/observium && cd /opt

4,拿源码
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz

5,(可选项,而且也木有用户名密码)If you have a valid Observium [subscription], please use one of the automated SVN release repositories.
For the CURRENT revision:
svn co http://svn.observium.org/svn/observium/trunk observium
For the STABLE revision:
svn co http://svn.observium.org/svn/observium/branches/stable observium

6,Change into the new install directory:(必须,因为代码中的路径都是相对路径,windows中也必须)
cd observium

7,Copy the default configuration file and edit it for your system:(配置自己的)
cp config.php.default config.php

8,Create the MySQL database:
mysql -u root -p

mysql> CREATE DATABASE observium;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'
    -> IDENTIFIED BY '';

9,Setup the MySQL database and insert the default schema:(如果执行这一步,发现没有任何输出,就是有问题了,如果你调试的话,发现includes/functions.php文件中执行到include($config['install_dir'] . "/includes/pear/Net/IPv4.php");后面就没有了输出。那么请安装pear库)
php includes/update/update.php
It is OK to have some errors in the SQL revisions up to 006.(我是没遇到)

10,Create the directory to store RRDs in:(创建为你添加的device生成的图片什么的文件夹,确保有权限)
mkdir rrd
chown www-data:www-data rrd

11,If the server will be running *only* Observium, change /etc/apache2/sites-available/default to :

  DocumentRoot /opt/observium/html/
  ServerName  observium.domain.com
  CustomLog /opt/observium/logs/access_log combined
  ErrorLog /opt/observium/logs/error_log
  
    AllowOverride All
    Options FollowSymLinks MultiViews
  

12,Enable mod_rewrite for Observium's cleaner URLs:
a2enmod rewrite
apache2ctl restart

13,Add a first user, use level of 10 for admin:
cd /opt/observium
./adduser.php   

14,Add a first device to monitor:
./add_device.php   v2c
这里要说的话就比较多了,我也是花了n多时间在这上面,惭愧。。
首先你要了解snmp协议,到现在为止有 1,2c,3 这三个版本,windows机器上默认的应该是v2c。linux机器上默认的也应该是v2c(没论证),但添加v3支持也很容易。我是连接linux v2c没成功,然后是v3可以,具体还得仔细研究下。

15,Do an initial discovery and polling run to populate the data for the new device:(直接执行就好)
./discovery.php -h all
./poller.php -h all

16,Add cron jobs, create a new file /etc/cron.d/observium with the following contents:(如果你添加一个device,而没有执行上面的两个php文件,等5分钟就可以了)
33  */6   * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 *     * * *   root    /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 *     * * *   root    /opt/observium/poller-wrapper.py 1 >> /dev/null 2>&1
//Important!
//Please note that the below example includes a username, so will only work in /etc/crontab or /etc/cron.d/observium. It will NOT work in a user crontab edited with crontab -e.

到此,终于完工!可以去查看你添加的device的状态了。刚开始的话图片上面没有数据,等observium收集到数据就好了。小清新的有木有。。。



note1:linux snmp添加v3支持
service snmpd stop
net-snmp-create-v3-user
输入用户名回车
输入密码回车(注意密码必须大于等于8位)
输入需要进行md5进行加密的密码,也可以直接回车,密码就是你上面输入的密码
然后会出现提示:
adding the following line to /var/lib/net-snmp/snmpd.conf:
       createUser enocsnmpv3 MD5 "enocsnmpv3pw" DES enocsnmpv3pk
    adding the following line to /etc/snmp/snmpd.conf:
       rwuser enocsnmpv3
不过/etc/snmp/snmpd.conf文件的内容可能已经帮你加好了。
然后启动snmp服务:
service snmpd restart
测试一下:
snmpwalk -v3 -u用户名 -lauth -aMD5 -A"密码" -X"加密密码" localhost
会将你本机的信息输出,如果你/etc/snmp/snmpd.conf文件添加了 view    systemview    included   .1 那你就要等一点时间了,因为内容很多。(因为服务器设备的信息都是以.1开头)这里又说道了snmp的配置,参考note2


note2:snmp配置
//windows和linux snmp服务端口都是161
一,windows snmp配置
控制面板->程序->打开或关闭windows功能.找到简单网络管理协议(SNMP)并打勾(包括子节点)
接着在服务中找到snmp服务。如果安全选项->接受的社区名称中没有值,你可以选择添加一个(默认是public),权限只读就可以。
ok 完成
//这里有说道一个社区名称,这个名词的话相当于是密码。最好是不要用默认的public,选用自己才知道的字符串.
//另外snmp-trap服务 暂时不清楚其用途,不过在本项目中不需要开启该服务。
二,ubuntu snmp安装配置
1,
apt-get install snmpd
2,修改/etc/snmp/snmpd.conf
com2sec  paranoid  default         public  
#com2sec readonly  default         public

#com2sec  paranoid  default         public  
com2sec readonly  default         public
3,再重启服务
service snmpd restart
4,查看snmpd端口 
lsof -i:161
显示:
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME  
snmpd   32460 snmp    6u  IPv4 1300464995      0t0  UDP localhost:snmp 
//如果不仅仅是监控本机,而需要监控其他机器的话,则修改/etc/default/snmpd
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid  
须重启服务
//如果需要设为开机启动。在/etc/rc5.d文件中添加类似 S20snmpd的一样。S表示开机启动,如果不想设为开机启动则更改为K,后面的20应该是顺序吧。
三,linux rh snmp配置
1,
yum install -y net-snmp net-snmp-utils
2,
service snmpd start
提示:Starting snmpd: [  OK  ],则启动snmp服务成功。
3,将snmpd服务设为开机自启动。
chkconfig snmpd on
查看是否已经设置成功。
chkconfig --list | grep snmpd
4、验证snmp服务
  验证本机 (获取到主机名则ok)
snmpwalk -v 2c -c public localhost sysName.0
5,配置snmp服务
修改/etc/snmp/snmpd.conf文件

view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
前面加上  
view    systemview    included   .1
  (表示可以检测cpu,内存等其他设备)


note3:php-pear安装
一,windows
先到php目录下
1,php目录下如果存在PEAR/go-pear.phar。可以直接先尝试执行
php go-pear.phar
 如果没有提示php版本已经太新了,到这里就ok了
2,如果有提示,则
php  -d phar.require_hash=0 go-pear.phar
 按提示安装如果system不成功 尝试选择local
二,linux
wget http://pear.php.net/go-pear.phar
php go-pear.phar
如果出现12个选项的提示的话,输入all然后回车就可以了


note4:如果监听的是windows的机器,要查看syslog需要进行如下操作
windows日志不支持syslog格式,需要安装Evtsys_4.4.3_64-Bit.zip,下载地址为:http://code.google.com/p/eventlog-to-syslog/downloads/list
解压后是两个文件evtsys.dll(可能木有这个)和evtsys.exe
把这两个文件拷贝到 c:\windows\system32目录下。
打开Windows命令提示符(开始->运行 输入CMD)
evtsys –i –h 192.168.10.16   #(日志服务器的IP地址,如果不是局域网,则写外网ip)
参数说明:
-i 表示安装成系统服务
-h 指定log服务器的IP地址
如果要卸载evtsys,则:
net stop evtsys
evtsys -u
启动该服务:
net start evtsys



Error list:
1,mibs的错误
编辑/etc/snmp/snmp.conf文件添加
mibdirs /opt/observium/mibs
2,timeout:no respons from localhost
snmpwalk -v 2c -c public localhost
本机都连不上的,一般是以上配置问题,甚至是snmp服务没打开>_ 3,  连外网timeout:no respons from xxx
snmpwalk -v 2c -c public xxx
a,检查外网机器的snmp配置
b,服务是否启动,
c,然后就是防火墙。
   windows的话,除了本机的防火墙,还有网络的防火墙,这次就是死在客户服务器的网络的防火墙上的。
   linux rh的话,在/etc/sysconfig/iptables 添加如下行
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT 
   ubuntu的话(没验证),防火墙可能用的是ufw配置工具,开启upd 161端口,使用
ufw allow proto udp from xxx to any port 161
       使用
ufw enable|disable
来开启或关闭防火墙

你可能感兴趣的:(observium & snmp service install)