首先安装Python环境(Python版本要求为Python2.6以上,不支持Python3)
yum install python-setuptools httpd php gcc python-devel mysql-devel net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml -y
MySQLdb为Python连接和操作MySQL的类库,如果您准备使用lepus系统监控MySQL数据库,那么该模块必须安装。
安装步骤如下:
# wget http://cdn.lepus.cc/cdncache/software/MySQLdb-python.zip
# unzip MySQLdb-python.zip # cd MySQLdb1-master/
# which mysql_config /usr/local/mysql/bin/mysql_config
# vim site.cfg 修改如下: mysql_config = /usr/local/mysql/bin/mysql_config
# python setup.py build
# python setup.py install
常见错误解决:
1).如果编译python出现如下问题
/usr/bin/ld: cannot find -lpython2.7 collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1
请按如下步骤处理:
A.检查并安装python-devel包
# yum -y install python-devel
B.将libpython2.7.so库文件建立软连接到/usr/lib下
32位服务器下执行
# ln -s /usr/local/Python2.7/lib/libpython2.7.so /usr/lib/libpython2.7.so
64位服务器下执行
# ln -s /usr/local/Python2.7/lib/libpython2.7.so /usr/lib64/libpython2.7.so
C.检查下/etc/ld.so.conf是否包含/usr/local/Python2.7/lib
#vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib
#/sbin/ldconfig
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/
下载安装oracle instant client
cx_oracle下载地址:https://pypi.org/project/cx-Oracle/5.1.3/#files
下面3个包下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
如果是64位的,请选择.*x86_64.rpm,否则是.*i386.rpm
如果是oracle 9i或更高,请选择Instant Client 11,如果是8或8i,请选择Instant Client 10
[root@westserver software]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm Preparing… ########################################### [100%] 1:oracle-instantclient11.########################################### [100%]
[root@westserver software]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm Preparing… ########################################### [100%] 1:oracle-instantclient11.########################################### [100%]
[root@westserver software]# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm Preparing… ########################################### [100%] 1:oracle-instantclient11.########################################### [100%]
[root@westserver home]# vim /root/.bash_profile ORACLE_HOME="/usr/lib/oracle/11.2/client64" PATH=$PATH:$ORACLE_HOME/bin export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH
修改完成后重新加载bash_profile文件
[root@westserver cx_Oracle-5.1.2]# source ~/.bash_profile
[root@westserver software]# vim /etc/ld.so.conf 加入
/usr/lib/oracle/11.2/client64/lib
执行ldconfig生效
[root@westserver software]# ldconfig
安装cx_oracle
# wget http://cdn.lepus.cc/cdncache/software/cx_Oracle-5.1.2.tar.gz
# tar zxvf cx_Oracle-5.1.2.tar.gz # cd cx_Oracle-5.1.2
# python setup.py build
# python setup.py install
pymongo为Python连接和操作MongoDB的类库,如果您准备使用lepus系统监控MongoDBs数据库,那么该模块必须安装。
安装步骤如下:
# wget http://cdn.lepus.cc/cdncache/software/pymongo-2.7.tar.gz
# tar zxvf pymongo-2.7.tar.gz
# cd pymongo-2.7
# python setup.py install
# wget http://cdn.lepus.cc/cdncache/software/redis-py-2.10.3.tar.gz
# tar zxvf redis-py-2.10.3.tar.gz
# cd redis-2.10.3/
# python setup.py install
安装pymssql需要的包:
freetds(http://www.filewatcher.com/m/freetds-0.82.tar.gz.1596755-0.html)
setuptools(https://pypi.python.org/pypi/setuptools)
pymssql(https://pypi.python.org/pypi/pymssql/)
安装步骤:
A. 安装freetds
#tar zxvf freetds-0.82.tar.gz #cd freetds-0.82 #./configure –prefix=/usr/local/freetds –with-tdsver=8.0 –enable-msdblib –enable-dbmfix –with-gnu-ld –enable-shared –enable-static #make && make install #echo "/usr/local/freetds/lib" » /etc/ld.so.conf.d/freetds.conf #ldconfig -v
B. 安装setuptools(setuptools包下载路径:https://pypi.org/project/setuptools/3.5.1/#files)
#tar zxvf setuptools-3.5.1.tar.gz #cd setuptools-3.5.1 # python setup.py install
C. 安装pymssql
#tar zxvf pymssql-2.1.0.tar.gz #cd pymssql-2.1.0 #python setup.py install
注:如果不安装freetds,会报如下错误:
error: command ‘gcc’ failed with exit status 1
ln -s /usr/local/freetds/lib/libsybdb.so.5 /usr/lib/
ln -s /usr/local/freetds/lib/libsybdb.so.5 /usr/lib64/
在lepus的安装文件包python目录中,你可以找到如下测试文件,测试上述驱动是否安装正确。
# python test_driver_mysql.py
MySQL python drivier is ok!
# python test_driver_oracle.py
Oracle python drivier is ok!
# python test_driver_mongodb.py
MongoDB python drivier is ok!
# python test_driver_redis.py
Redis python drivier is ok!
# cd /usr/local # git clone https://github.com/ruzuojun/lepus.git
# cd lepus # chmod +x lepus*
# ln -s /usr/local/lepus/lepus /usr/local/sbin/lepus
# ln -s /usr/local/lepus/lepus_monitor /usr/local/sbin/lepus_mointor
mysql> create database lepus default character set utf8;
mysql> grant select,insert,update,delete,create on lepus.* to lepus@'%' identified by '123';
mysql> flush privileges;
# mysql -uroot –p lepus < sql/lepus_table.sql
# mysql -uroot –p lepus < sql/lepus_data.sql
进入到安装目录/usr/local/lepus
# cd /usr/local/lepus/
# vim etc/config.ini
监控机MySQL数据库连接地址
[monitor_server] host="127.0.0.1" port=3306 user="lepus" passwd="123" dbname="lepus"
此时,你可以执行启动命令启动lepus采集进程
[root@ebs-cloud lepus]# lepus start lepus server start success!
[root@ebs-cloud lepus]# ps -ef|grep lepus
root 11553 1 0 14:40 pts/0 00:00:00 /bin/bash /usr/local/sbin/lepus start
root 11555 11553 0 14:40 pts/0 00:00:00 python lepus.py
root 11571 11555 0 14:40 pts/0 00:00:00 python lepus.py
root 11590 1851 0 14:40 pts/0 00:00:00 grep lepus
但是因为没有添加主机,所以查看日志会看到如下提示,属于正常提示。您也可以在部署完Lepus WEB控制台后再进行启动。
[root@ebs-cloud lepus]# tail -f logs/lepus.log
2015-08-03 13:09:09 [WARNING] check mongodb: not found any servers
2015-08-03 13:09:09 [INFO] check mongodb controller finished.
2015-08-03 13:09:12 [INFO] check redis controller started.
2015-08-03 13:09:12 [WARNING] check redis: not found any servers
2015-08-03 13:09:12 [INFO] check redis controller finished.
2015-08-03 13:09:15 [INFO] check os controller started.
2015-08-03 13:09:15 [WARNING] check os: not found any servers
2015-08-03 13:09:15 [INFO] check os controller finished.
2015-08-03 13:09:38 [INFO] alarm controller started.
2015-08-03 13:09:38 [INFO] alarm controller finished.
如果启动失败,可以通过记录的日志信息查看错误,通过log信息我们可以定位启动失败的问题:
# tail -f logs/lepus.log
import functions as func
File "./include/functions.py", line 285, in
mail_host = get_option('smtp_host') File "./include/functions.py", line 242, in get_option
conn=MySQLdb.connect(host=host,user=user,passwd=passwd,port=int(port),connect_timeout=5,charset='utf8')
File "/usr/lib64/python2.6/site-packages/MySQL_python-1.2.4-py2.6-linux-x86_64.egg/MySQLdb/__init__.py", line 81, in Connect return Connection(*args, **kwargs) File "/usr/lib64/python2.6/site-packages/MySQL_python-1.2.4-py2.6-linux-x86_64.egg/MySQLdb/connections.py", line 193, in __init__ super(Connection, self).__init__(*args, **kwargs2) `_mysql_exceptions.OperationalError: (1045, "Access denied for user 'lepus'@'localhost' (using password: YES)")`
到这里,Lepus采集程序安装完毕!
[root@lepus-server lepus]# cp -rf /usr/local/src/lepus_v3.7/php或web/* /var/www/html/ [root@lepus-server lepus]# cd /var/www/html/application/config/
[root@lepus-server config]# vim database.php
[root@lepus-server config]# /etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@lepus-server config]#
[root@lepus-server config]# service iptables stop iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ]
[root@lepus-server config]# setenforce 0
首先我们在被监控的数据库端执行授权,允许Lepus采集器服务器能连接到数据库,需要在被监控的数据库执行如下命令来授权。 这里我们解释下为什么需要super权限,是因为采集程序通过show slave status命令获取复制信息,该命令需要super权限才能执行。
mysql> grant select,process,super on *.* to 'lepus_monitor'@'ip' identified by 'password'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
授权后在WEB控制台点击配置中心->MySQL菜单来配置一个MySQL监控数据库,如下图所示,填写备监控数据库的IP、Port,远程授权用户密码,以及标签(标签只是用来备注该服务器的用途)等内容。 同时可以设置该数据库的监控和报警等配置信息,如下图所示:
配置完成后可以看到刚才配置的数据库实例已经出现在列表里面了。
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check mysql: not found any servers信息:
[root@MyCloudServer lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check mysql controller started.
2017-04-27 16:45:55 [WARNING] check mysql: not found any servers
2017-04-27 16:45:55 [INFO] check mysql controller finished.
当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:
2017-04-27 16:47:55 [INFO] check mysql controller started.
2017-04-27 16:48:05 [INFO] check mysql controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.
最后我们可以在MySQL监控菜单里发现我们添加的主机被监控了。
本章节将为大家介绍如何在Lepus系统里面添加Oracle监控实例。Lepus监控数据库是采用远程连接方式进去获取数据,所以无需要在数据库服务器端部署相关agent或计划任务。但是需要在数据库端进行授权访问,然后在WEB端配置实例就可以了。具体步骤如下所示:
首先我们在被监控的数据库端执行授权,允许Lepus采集器服务器能连接到数据库,需要在被监控的数据库执行如下命令来授权,Oracle需要的最小权限如下所示:
create user lepus_monitor identified by "password"; grant connect,resource to lepus_monitor; grant select on v_$parameter to lepus_monitor ; grant select on v_$sysstat to lepus_monitor ; grant select on v_$instance to lepus_monitor ; grant select on v_$database to lepus_monitor ; grant select on product_component_version to lepus_monitor ; grant select on v_$session to lepus_monitor ; grant select on v_$dataguard_stats to lepus_monitor ; grant select on dba_data_files to lepus_monitor ; grant select on dba_free_space to lepus_monitor ;
授权后在WEB控制台点击配置中心->Oracle菜单来配置一个Oracle监控数据库,如下图所示,填写被监控数据库的IP、Port,远程授权用户密码,数据源以及标签(标签只是用来备注该服务器的用途)等内容。 同时可以设置该数据库的监控和报警等配置信息,如下图所示:
配置完成后可以看到刚才配置的数据库实例已经出现在列表里面了。
这里的数据源,可以只写实例名即可,不用tnsname中的连接字符串
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check oracle: not found any servers信息:
[root@MyCloudServer lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check oracle controller started.
2017-04-27 16:45:55 [WARNING] check oracle: not found any servers
2017-04-27 16:45:55 [INFO] check oracle controller finished.
当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:
2017-04-27 16:47:55 [INFO] check oracle controller started.
2017-04-27 16:48:05 [INFO] check oracle controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.
最后我们可以在Oracle监控菜单里发现我们添加的主机已经被监控了。
本章节将为大家介绍如何在Lepus系统里面添加SQLServer监控实例。Lepus监控数据库是采用远程连接方式进去获取数据,所以无需要在数据库服务器端部署相关agent或计划任务。但是需要在数据库端进行授权访问,然后在WEB端配置实例就可以了。具体步骤如下所示:
首先我们在被监控的数据库端创建授权帐号,允许Lepus采集器服务器能连接到SQLServer数据库。
授权后在WEB控制台点击配置中心->SQLServer菜单来配置一个SQLServer监控数据库,如下图所示,填写备监控数据库的IP、Port,远程授权用户密码,以及标签(标签只是用来备注该服务器的用途)等内容。 同时可以设置该数据库的监控和报警等配置信息,如下图所示:
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check sqlserver: not found any servers信息:
[root@MyCloudServer lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check sqlserver controller started.
2017-04-27 16:45:55 [WARNING] check sqlserver : not found any servers
2017-04-27 16:45:55 [INFO] check sqlserver controller finished.
当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:
2017-04-27 16:47:55 [INFO] check sqlserver controller started.
2017-04-27 16:48:05 [INFO] check sqlserver controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.
最后我们可以在SQLServer监控菜单里发现我们添加的主机被监控了。
本章节将为大家介绍如何在Lepus系统里面添加Mongodb监控实例。Lepus监控数据库是采用远程连接方式进去获取数据,所以无需要在数据库服务器端部署相关agent或计划任务。但是需要在数据库端进行授权访问,然后在WEB端配置实例就可以了。具体步骤如下所示:
首先我们在被监控的数据库端创建授权帐号,允许Lepus采集器服务器能连接到Mongodb数据库。由于需要访问mongodb的serverStatus()函数,所以需要授予root角色,授权方式如下所示:
> use admin > db.createUser({user:'lepus',pwd:'password',roles:['root']})
授权后在WEB控制台点击配置中心->Mongodb菜单来配置一个Mongodb监控数据库,如下图所示,填写被监控数据库的IP、Port,远程授权用户密码,以及标签(标签只是用来备注该服务器的用途)等内容。 同时可以设置该数据库的监控和报警等配置信息,如下图所示:
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check mongodb: not found any servers信息:
[root@MyCloudServer lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check mongodb controller started.
2017-04-27 16:45:55 [WARNING] check mongodb : not found any servers
2017-04-27 16:45:55 [INFO] check mongodb controller finished.
当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:
2017-04-27 16:47:55 [INFO] check mongodb controller started.
2017-04-27 16:48:05 [INFO] check mongodb controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.
最后我们可以在MongoDB监控菜单里发现我们添加的主机被监控了。
本章节将为大家介绍如何在Lepus系统里面添加Redis监控实例。Lepus监控数据库是采用远程连接方式进去获取数据,所以无需要在数据库服务器端部署相关agent或计划任务。具体步骤如下所示:
在WEB控制台点击配置中心->Redis菜单来配置一个Redis监控数据库,如下图所示,填写被监控数据库的IP、Port,远程授权密码,以及标签(标签只是用来备注该服务器的用途)等内容。 同时可以设置该数据库的监控和报警等配置信息,如下图所示:
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check redis: not found any servers信息:
[root@MyCloudServer lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check redis controller started.
2017-04-27 16:45:55 [WARNING] check redis: not found any servers
2017-04-27 16:45:55 [INFO] check redis controller finished.
当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:
2017-04-27 16:47:55 [INFO] check redis controller started.
2017-04-27 16:48:05 [INFO] check redis controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.
最后我们可以在Redis监控菜单里发现我们添加的主机被监控了。
添加操作系统监控实例
该章节将向大家阐述如何在生产数据库服务器上部署OS资源的监控,包括CPU,磁盘等项目的监控和告警,Lepus是通过snmp协议进行对操作系统数据采集的!所以需要在监控器开启snmp服务。
下面将向大家说明操作系统SNMP服务协议的描述和启用方法。
1 什么是snmp 协议?
简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。它由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema),和一组资料物件。
2 在需要监控的linux系统下snmp服务配置
2.1 snmpd 服务安装
yum install net-snmp*
2.2 编辑snmpd.conf 配置文档
vim /etc/snmp/snmpd.conf
41行 将default改为监控服务器ip;2 将public改成lepus (备注: lepus是您在天兔配置文件里配置的通用实体,如果您配置的实体是其他名称,这里要做相应的修改)示例如下:
com2sec notConfigUser 10.0.10.10 lepus
62行 将systemview 改为all,供所有snmp访问权限
access notConfigGroup "" any noauth exact all none none
85行 将#注释符号去掉
view all included .1 80
2.3 启动 snmpd 服务
/etc/init.d/snmpd start
2.4 验证snmpd 服务
//snmpd 使用 tcp/udp 161 端口 grep 'Simple Net Mgmt Proto' /etc/services snmp 161/tcp # Simple Net Mgmt Proto snmp 161/udp # Simple Net Mgmt Proto lsof -i :161 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME snmpd 3734 root 11u IPv4 13174 UDP *:snmp ps -ef | grep 'snmpd' root 3734 1 0 09:34 ? 00:00:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a
2.5 修改snmpd 日志级别
//以上操作能够满足snmpd 服务正常使用,不过snmpd 默认日志级别将会在/var/log/message 写入大量snmp 信息,这样会影响我们察看系统日志,所以我们需要更改下!
Mar 1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:37535
Mar 1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:37535
Mar 1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:47836
Mar 1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:47836
//注释原有的OPTINOS,添加下面的一行,重启snmpd 服务即可。
vim /etc/init.d/snmpd #OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a" OPTIONS="-LS 4 d -p /var/run/snmpd.pid -a" /etc/init.d/snmpd restart Stopping snmpd: [ OK ] Starting snmpd: [ OK ]
2.6将SNMP服务设置开机启动
2.7 使用snmpwalk 命令验证,在监控机上执行以下命令
snmpwalk -v 1 -c lepus 192.168.1.10
snmpwalk -v 2c -c lepus 192.168.1.11
-v是指版本,-c 是指密钥,获取到系统信息则正常!
至此,您已经成功地开启了SNMP服务。
3.添加监控实例
SNMP安装完成后即可在天兔系统配置需要监控的主机。进入天兔系统WEB界面,进入服务器配置,操作系统配置栏目添加实例即可,如下图所示: