前言
- zabbix 3.4 + DBforBIX 2.2-beta 监控 Oracle、Mysql
- 前置条件:已安装 zabbix 3.4 (【Zabbix】yum方式安装zabbix)
- 前置条件:能够安装、配置agent(【zabbix】安装、配置agent,配置被监控端)
DBforBIX介绍
官网:http://www.smartmarmot.com/
授权:GNU General Public License V.3
项目git:https://github.com/smartmarmot/DBforBIX
安装文档:http://www.smartmarmot.com/wiki/index.php?title=DBforBIX2
- DBforBIX 是 Zabbix 下的数据库监控工具。
- DBforBIX 可以看视作 Orabbix, PostBIX, MySQLBIX and DB2Bix 的集成。
- DBforBIX 可以监控的数据库有: Oracle、MySQL Server、PostgreSQL、MS SQL Server、DB2、Sybase Anywhere、HP Allbase
- DBforBIX 是java应用,通过jdbc监控数据库,并将采集到的数据发送给Zabbix Server。如下图:
版本选择
dbforbbix 2.2-beta
环境介绍
安装 DBforBIX 2.2-beta ,并监控 Oracle、Mysql的环境如下:
应用 | 版本 | OS | IP |
---|---|---|---|
Zabbix(已安装) | 3.4 | Redhat 7.0 | 192.168.200.212 |
jdk(已安装) | 1.8 | Redhat 7.0 | 192.168.200.212 |
dbforbbix(未安装) | 2.2-beta | Redhat 7.0 | 192.168.200.212 |
Oracle(已安装) | 12c | Redhat 7.0 | 192.168.200.213 |
Mysql(已安装) | 5.0 | Redhat 7.0 | 192.168.200.213 |
步骤1:下载DBforBIX
有两个地方可以下载,如下:
sourceforge下载地址:https://sourceforge.net/projects/dbforbix/files/
git下载地址:https://github.com/smartmarmot/DBforBIX
# 注意:以下均使用root账户进行操作。独立建帐户时,自行处理差别
mkdir /opt/dbforbix
cd /opt/dbforbix
wget https://excellmedia.dl.sourceforge.net/project/dbforbix/dbforbix-2.2-beta-linux64.tar.gz
步骤2:将DBforBix解压到/opt/dbforbix目录
cd /opt/dbforbix
tar -zxvf dbforbix-2.2-beta-linux64.tar.gz
步骤3:修改 DBforBix 配置文件 config.properties
- DBforBIX 是java应用,通过jdbc监控数据库。因此,需要设置 DBforBix 的 jdbc配置。
- DBforBIX 可以同时监控多个数据库。因此,DBforBix 的 jdbc配置也是可以多个。
- DBforBix 的 jdbc配置语法:DB.DB<编号>.<属性名>,如:DB.DB1.Url、DB.DB4.Url。
- DBforBix 提供了配置文件样例:/opt/dbforbix/conf/config.properties.sample
- 将 config.properties.sample 改名为 config.properties,然后编辑config.properties文件
cd /opt/dbforbix/conf/
cp config.properties.sample config.properties
vi config.properties
-------------------------------------------------------------------------
#zabbix server ip
ZabbixServer.1.Address=192.168.200.212
#zabbix server的默认端口:10051
ZabbixServer.1.Port=10051
# 修改DB.DB1:DBforBIX 连 oracle 配置
DB.DB1.Type=oracle
# zabbix中配置的host name。
DB.DB1.Name=zabbix_server213
DB.DB1.Url=jdbc:oracle:thin:@10.1.16.211:12131/srie
# ZABBIX账户的创建参考官方安装手册
DB.DB1.User=ZABBIX
DB.DB1.Password=123456
DB.DB1.MaxWait=10
DB.DB1.MaxSize=10
DB.DB1.MaxIdle=1
DB.DB1.ItemFile=oracle
DB.DB1.Persistence=FALSE
# 修改DB.DB4:DBforBIX 连 mysql 配置 (不监控Mysql则不用配置DB.DB4)
DB.DB4.Type=mysql
# zabbix中配置的host name。
DB.DB4.Name=zabbix_server213
DB.DB4.Url=jdbc:mysql://192.168.200.213:3306/
# ZABBIX账户的创建参考官方安装手册
DB.DB4.User=ZABBIX
DB.DB4.Password=123456
DB.DB4.MaxWait=10
DB.DB4.MaxSize=10
DB.DB4.MaxIdle=1
DB.DB4.ItemFile=mysql
DB.DB4.Persistence=FALSE
注:数据库账户,可以先用最大权限的账户。先保证DBforBIX能够工作,再调整权限。
步骤4:在 DBforBix 中添加jdbc驱动
- DBforBIX 是java应用,通过jdbc监控数据库。因此,需要jdbc驱动才能工作。
- dbforbbix 2.2-beta 中未提供jdbc驱动。因此,监控Oracle和Mysql时,所需的Oracle和Mysql需要自己手动添加驱动。
- 将oracle和mysql驱动拷贝到/opt/dbforbix/lib目录:
/opt/dbforbix/lib/mysql-connector-java-5.1.18.jar
/opt/dbforbix/lib/ojdbc7-12.1.0.1.jar
步骤5:启动DBforBIX
- 按照安装手册上的启动方式(linux7.0,未尝试Initd启动,仅尝试Systemd启动),没有启动。尝试多次,后放弃。
- 直接执行脚本 dbforbix.sh ,未成功。缺少jsvc所致。
- 安装好jsvc后,但是脚本dbforbix.sh还是未成功(此时,脚本执行无异常,但无dbforbix进程在运行)。遂放弃。
- 使用java -jar启动dbforbix(DBforBIX 是java应用,所以可以使用此方式启动),成功(启动成功后,可以看到程序运行过程中打印的日志不停地刷屏)。能够成功启动的脚本如下:
cd /opt/dbforbix
java -Xbootclasspath/a:/opt/dbforbix/lib/mysql-connector-java-5.1.18.jar:/opt/dbforbix/lib/ojdbc7-12.1.0.1.jar -jar dbforbix.jar -a start -C /opt/dbforbix
注1:mysql和oracle驱动路径如果不一样,需要修改。
注2:至此,DBforBIX已经能够正常工作,但,仅表示DBforBIX已经能够正常工作。还需要让zabbix server能够接受并处理DBforBIX提供的数据。向zabbix server中导入DBforBIX提供的Oracle和Mysql模板,并启用模板后,zabbix 3.4 + DBforBIX 2.2-beta才算正常工作。
步骤6:导入模板
- 向zabbix server中导入DBforBIX提供的Oracle和Mysql模板
- 通过 zabbix web可以导入。
- 模板在dbforbbix 2.2-beta安装包中。
步骤7:启用模板,监控数据库
- 建立名为 zabbix_server213 的被监控端。(参考:【zabbix】安装、配置agent,配置被监控端)
- 为被监控端 zabbix_server213 添加Mysql和Oracle模板
步骤8:查看监控图像
- 至此,zabbix 3.4 + DBforBIX 2.2-beta已经正常工作。
- 打开监控图像进行查看。
步骤9:DBforBIX改为systemd服务启动
- 为了维护方便,将DBforBIX设置成开机自启动的启动方式。
- DBforBIX 安装在了 Redhat 7.0 上,使用 systemd 将 DBforBIX 注册为系统服务
- 在/opt/dbforbix/systemd目录下,存在2个样例: dbforbix.service 和 dbforbix-nojsvc.service 。
- dbforbix.service : 使用 jsvc 启动服务
- dbforbix-nojsvc.service : 使用 java 启动服务
- 这里不使用 jsvc ,所以,先删除 dbforbix.service ,再将 dbforbix-nojsvc.service 重名为 dbforbix.service 。
/opt/dbforbix/systemd
rm dbforbix.service
mv dbforbix-nojsvc.service dbforbix.service
vim dbforbix.service
-------------------------------------------------------
[Unit]
Description=DBforBIX Monitoring Agent
After=syslog.target network.target
[Service]
Type=simple
User=root
Group=root
Environment=JAVA_HOME=/usr/java/jdk1.8
WorkingDirectory=/opt/dbforbix
ExecStart=/usr/java/jdk1.8/bin/java -Xbootclasspath/a:/opt/dbforbix/lib/mysql-connector-java-5.1.18.jar:/opt/dbforbix/lib/ojdbc7-12.1.0.1.jar -jar dbforbix.jar -a start -C /opt/dbforbix
ExecStop=/bin/kill -s TERM $MAINPID
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
-------------------------------------------------------
cp dbforbix.service /etc/systemd/system/dbforbix.service
systemctl daemon-reload
systemctl start dbforbix.service
- 查看 dbforbix.service 日志,判断服务是否正确启动或有何问题
journalctl -flu dbforbix.service
- 查看DBforBIX程序日志,检查运行状况
tail -f /opt/dbforbix/logs/dbforbix.log
- 如果能够确认 DBforBIX 服务正常,将服务设为自启动
systemctl enable dbforbix.service
最后
至此, zabbix 3.4 + DBforBIX 2.2-beta 的设置已全部完成。