LAMP 搭建zabbix监控Oracle 数据库 for Linux

准备环境介绍

文档简介想要实现的功能为在zabbix服务器端再增加orabbix插件以此访问oracle数据库进行监控操作。

环境介绍CentOS 7 zabbix 2.4.2 。

yum介绍因公司电脑无法访问外网则进行了本地yum源的配置。

可自行根据php-common下载相应的rpm包或者去我的网盘瞅瞅有木有大家需要的地址如下
链接http://pan.baidu.com/s/1skGbrat 密码n9p3

实施过程介绍
1.首先是LAMP的搭建其中Linux环境搭建此处不多介绍MySQL数据库的搭建可参考上篇文档

搭建 Apache 和 PHP前面也提到因没有外网只能使用CentOS 7提供的包然后mount到我本地
yum 源的配置
vi /etc/yum.repo.d/CentOS-Local.repo

name=This is a local repo source for lamp
baseurl=file:///mnt/Package
gpgcheck=0
enabled=1

:x  -- 保存退出

ps将yum.repo.d下使用不到的repo文件注释使其失效

vim /etc/fstab

/dev/sr0  /mnt/Package iso9660 default 0 0

:x  -- 保存退出

mount -a  重新挂载

=======================至此本地yum源配置完成================

修改主机名配置hostnamectl set-hostname 确认修改的名字

修改防火墙配置vi /etc/selinux/config 修改为disabled

# systemctl disable firewalld.service

# systemctl stop firewalld.service

修改时区配置timedatectl set-timezone Asia/Shanghai

timedatectl set-local-rtc 1 -- 时间将与本地电脑时间同步

timedatectl set-time YYYY-MM-DD -- 设置日期

timedatectl set-time HH:MM:SS  -- 设置时间

修改网卡配置CentOS 7的网卡名称

第一步修改eth0文件信息

mv ifcfg-eno16777736 ifcfg-eth0

vi /etc/udev/rules.d/70-persistent-ipoib.rules

添加一行关于eth0的信息进行注册。

ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0C:29:97:E4:F2", NAME="eth0"

第二步修改grub配置信息

输入如下命令进入对应目录编辑文件

vim /etc/sysconfig/grub

然后往这个文件中添加“net.ifnames=0 biosdevname=0”内容如下图所示

grub2-mkconfig -o /boot/grub2/grub.cfg

效果如下

然后重启系统后查看网卡名称

========================至此为LAMP准备的基础环境已完成建议重启服务器===================

Apache配置

yum -y install httpd  //安装

systemctl start httpd.service //开启apache服务

systemctl enable httpd.service //设置开机启动

在浏览器中输入ip地址ifconfig如果能够看到test 123...的字样则表示成功

PHP配置

yum -y install php //安装

systemctl restart httpd.service //重启Apache服务

vi /var/www/html/info.php //编辑一个文件做测试顺便看一下自己安装的PHP版本


<?php         

phpinfo();      

?>


保存退出后再次登陆浏览器输入ip/info.php若是可以看到PHP版本信息则表示成功

将PHP和MySQL链接起来不然会在安装的界面中显示链接数据库类型为 SQLit3因为自己犯过这方面的报错记录一下 yum -y install php-mysql 

yum -y groupinstall "Development Tools" "Development Libraries"

安装常用的PHP关联模块
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

重启Apache服务和PHP服务LAMP环境已完成

zabbix 搭建

zabbix 服务器是在MySQL服务器上进行的

tar -zxvf zabbix-2.4.2.tar.gz
cd zabbix-2.4.2
./configure --with-mysql=/home/mysql/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix

过程中遇到的报错

第一种过程中如出现configure: error: MySQL library not found错误是因为缺少mariadb-devel该软件包使用yum install mariadb-devel进行安装后再重新执行

第二种过程中若出现configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config使用 yum -y install net-snmp-devel 然后重新运行

第三种error while loading shared libraries:libmysqlclient.so.20错误,查找libmysqlclient.so.20的位置可以使用find命令查找后

ln -s /home/mysql/mysql/lib/libmysqlclient.so.20 /usr/lib64

重新执行

./configure --with-mysql=/home/mysql/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix

没有警告后执行接下来的命令

# make

# make install

拷贝相关的配置文件到/etc下并进行相关配置修改

# mkdir -p /etc/zabbix

# cp -r /soft/zabbix-2.4.2/conf/* /etc/zabbix/

# chown -R zabbix:zabbix /etc/zabbix

# ln -s /usr/local/zabbix/etc /etc/zabbix/

# ln -s /usr/local/zabbix/bin/* /usr/bin/

# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

修改zabbix_server.conf  服务端

vi /etc/zabbix/zabbix_server.conf

LogFile=/tmp/zabbix_server.log   // 日志文件地址

DBHost=localhost            // 数据库主机

DBName=zabbix              // 数据库名

DBUser=zabbix              // 数据库用户名

DBPassword=zabbix           // 数据库密码

ListenIP=xxx              //数据库IP地址

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts //zabbix运行脚本存放目录

修改zabbix_agentd.conf  客户端

vi /etc/zabbix/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid     // 进程PID

LogFile=/tmp/zabbix_agentd.log     // 日志保存位置

EnableRemoteCommands=1          // 允许执行远程命令

Server=xxx                  // agent端的ip本机ip

ServerActive=xxx

Hostname=Zabbix server          // 必须与zabbix创建的hostname相同

Include=/usr/local/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1          // 启动自定义key

修改PHP相关参数

vi /etc/php.ini

max_execution_time = 300

max_input_time = 300

memory_limit = 128M

upload_max_filesize = 2M

date.timezone = Asia/Shanghai

post_max_size = 28M

配置web站点

# cd zabbix-2.4.2/

# cp -r frontends/php /var/www/html/zabbix

修改httpd.conf的参数

vi /etc/httpd/conf/httpd.conf

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModule>

创建与zabbix相关的组及库和用户

groupadd zabbix   // 创建组

useradd -r -g zabbix zabbix  // 创建用户

mysql -uroot -p

mysql> create database zabbix character set utf8;

Mysql> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;

Mysql> flush privileges;

mysql> use zabbix;  // 导入数据库资源

mysql> source /soft/zabbix-2.4.2/database/mysql/schema.sql;

mysql> source /soft/zabbix-2.4.2/database/mysql/data.sql;

mysql> source /soft/zabbix-2.4.2/database/mysql/images.sql;

mysql> quit

安装web界面

#systemctl restart httpd.service

在浏览器中输入http://ip地址/zabbix进入zabbix的web配置页面一路next有可能会遇上PHP依赖包缺少的现象找到rpm包下载安装即可。

Zabbix的默认账号为Admin密码为zabbix

遇到的问题可查看zabbix server日志

orabbix 搭建

orabbix 插件是在zabbix server上进行的

下载orabbix插件版本是orabbix-1.2.3.zip

安装好Java环境

在opt目录下新建orabbix文件夹后将文件解压好的文件或者未解压的zip文件mv到/opt/orabbix下

chmod +x orabbix/ -R

chmod +x run.sh

将orabbix中的执行文件Copy到系统服务目录中

cp /opt/orabbix/init.d/orabbix/etc/init.d/orabbix

cp/opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props

编辑刚刚生成的config.props文件

vi config.props

ZabbixServerList=ZabbixServer1

ZabbixServer1.Address=zabbix 服务器端的ip地址

ZabbixServer1.Port=10051   // 端口号为与Zabbix Server connection Port。

#ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER

#ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER

将不需要存在的行用 # 将它注销了。

#pidFile

OrabbixDaemon.PidFile=./logs/orabbix.pid

#frequency of item‘s refresh

OrabbixDaemon.Sleep=300

#MaxThreadNumber should be >= than the number of your databases

OrabbixDaemon.MaxThreadNumber=100

#put here your databases in a comma separated list

DatabaseList=Monitor

#Configuration of Connection pool

#if not specified Orabbis is going to use default values (hardcoded)

#Maximum number of active connection inside pool

DatabaseList.MaxActive=10

#The maximum number of milliseconds that the pool will wait

#(when there are no available connections) for a connection to be returned

#before throwing an exception, or <= 0 to wait indefinitely.

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

#define here your connection string for each database

Monitor.Url=jdbc:oracle:thin:@ip地址:端口号:实例名

Monitor.User=zabbix

Monitor.Password=orabbix

#Those values are optionals if not specified Orabbix is going to use thegeneral values.

Monitor.MaxActive=10

Monitor.MaxWait=100

Monitor.MaxIdle=1

Monitor.QueryListFile=./conf/query.props

#DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2

#DB2.User=zabbix

#DB2.Password=zabbix_password

#DB2.QueryListFile=./conf/query.props

#DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3

#DB3.User=zabbix

#DB3.Password=zabbix_password

#DB3.QueryListFile=./conf/query.props

保存以上配置后使用/etc/init.d/orabbix start来启动Orabbix服务,若后期有别的主机加入则在databaselist后加再配置即可。

在oracle数据库服务器端配置zabbix信息登陆sqlplus

GRANT ALTER SESSION TO zabbix;

GRANT CREATE SESSION TO zabbix;

GRANT CONNECT TO zabbix;

ALTER USER zabbix DEFAULT ROLE ALL;

GRANT SELECT ON V_$INSTANCE TO zabbix;

GRANT SELECT ON DBA_USERS TO zabbix;

GRANT SELECT ON V_$LOG_HISTORY TO zabbix;

GRANT SELECT ON V_$LOG TO zabbix;

GRANT SELECT ON V_$PARAMETER TO zabbix;

GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO zabbix;

GRANT SELECT ON V_$LOCK TO zabbix;

GRANT SELECT ON DBA_REGISTRY TO zabbix;

GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;

GRANT SELECT ON V_$SYSSTAT TO zabbix;

GRANT SELECT ON V_$PARAMETER TO zabbix;

GRANT SELECT ON V_$LATCH TO zabbix;

GRANT SELECT ON V_$PGASTAT TO zabbix;

GRANT SELECT ON V_$SGASTAT TO zabbix;

GRANT SELECT ON V_$LIBRARYCACHE TO zabbix;

GRANT SELECT ON V_$PROCESS TO zabbix;

GRANT SELECT ON DBA_DATA_FILES TO zabbix;

GRANT SELECT ON DBA_TEMP_FILES TO zabbix;

GRANT SELECT ON DBA_FREE_SPACE TO zabbix;

GRANT SELECT ON V_$SYSTEM_EVENT TO zabbix;

GRANT SELECT ON V_$locked_object TO zabbix;

GRANT SELECT ON dba_objects TO zabbix;

GRANT SELECT ON dba_tablespaces TO zabbix;

GRANT SELECT ON v_$session TO zabbix;

Oracle 11g数据库的话继续添加以下命令

execdbms_network_acl_admin.create_acl(acl => ‘resolve.xml‘,description =>‘resolve acl‘, principal =>‘ZABBIX‘, is_grant => true, privilege =>‘resolve‘);

exec dbms_network_acl_admin.assign_acl(acl=> ‘resolve.xml‘, host =>‘*‘);

commit;

将Orabbix服务加入随系统启动

chkconfig --add orabbix

chkconfig --level 345orabbix on

还有一个很头疼的报错

[[email protected] orabbix]# /etc/init.d/orabbix start

cat: /opt/orabbix/conf/config.props: No such file ordirectory

Starting Orabbix service:

[[email protected] orabbix]# Stopping

java.lang.Exception: ERROR on main - Connections is empty

atcom.smartmarmot.orabbix.Orabbixmon.run(Orabbixmon.java:101)

atcom.smartmarmot.orabbix.bootstrap.main(bootstrap.java:50)

[[email protected] orabbix]# ./run.sh

[[email protected] orabbix]# Stopping

java.lang.Exception: ERROR on main - Connections is empty

atcom.smartmarmot.orabbix.Orabbixmon.run(Orabbixmon.java:101)

at com.smartmarmot.orabbix.bootstrap.main(bootstrap.java:50)。

web界面的orabbix的配置

导入ORACLE的监测模板在orabbix目录的template内使用上传下载工具放到本地然后选择导入即可。然后剩下的界面比如说发短信或发微信或发邮件警告的打通方式写了好久任督二脉都要堵了。休息一会。。。

=====

扩展LAMP=Linux+Apache+MysQL+PHP

每次搭建都会遇到is not running的问题

在Zabbix中添加Oracle 主机时必须用在此设定的名字Monitor否则无法监测。                 文档中 xxx 处和被粉红色覆盖处均是指实例命令

标红处是认为需要执行的部分

搭建 zabbix 2.4多多少少都会遇到一些问题正在挖掘新版本CentOS 6.7 + zabbix 3.0已成功实施有时间后期更新博客。。。

时间: 2024-08-05 07:05:32

LAMP 搭建zabbix监控Oracle 数据库 for Linux的相关文章

zabbix 监控 oracle 数据库

一.简介 Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 Oracle 实例采集数据的有效机制,进而提供此信息的监控和性能指标.然后,您可以利用的 zabbix 的报告功能为收集的所有数据,并提供分析.目前的发行版中包含了一组预先定义的模板,包括从初始部署警报和图形功能.然而,这些可以进行微调,以满足您的需求和数据/监控要求. Orabbix 监控什么? 数据库版本 归档日志与生产趋势分析 触发器,表

使用Zabbix监控Oracle数据库

Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabbix/ 从部署架构图上可以看出,orabbix是通过JDBC去连接被监控数据库的,其实不是必须在数据库主机上安装Agent,而运行orabbix的主机,可以是Zabbix Server,也可以是数据库主机和zabbix server之外的任意一台主机,为了测试方便,我们将orabbix安装在Zabb

zabbix监控oracle 12c

zabbix监控oracle 12c 前言 某公司需要监控Oracle 12C,采用orabbix是zabbix监控oracle数据库的插件,修改一些地方就可以监控了. 一.安装配置 mkdir /opt/orabbix cd /opt/orabbix mv conf/config.props.sample conf/config.props cp init.d/orabbix /etc/init.d/ chmod +x /etc/init.d/orabbix chkconfig orabbix

Linux系统搭建zabbix监控系统实例讲解

第一步,配置本地yum仓库,如下 1,挂载,挂载光驱到/mnt mount /dev/cdrom /mnt2,创建目录 mkdir -p /repo/cos7dvd3,然后使用命令创建yum仓库文件,注意指定正确的软件源位置yum-config-manager --add-repo file:///repo/cos7dvd/4,使用 yum repolist命令检测刚创建的yum软件仓库是否正常.5,使用yum clean all 清空缓存(非必要步骤,在yum更新时使用)6,使用vim编辑器给

zabbix通过orabbix和自定义脚本监控oracle数据库

由于公司要上oracle数据库,需要对这个东西惊醒监控,于是去网上淘资料,发现有一个套件orabbix监控oracle的效果还不错,于是拿来试验了一下.orabbix是由JAVA写的一个套件,需要在oracle服务器上面安装JAVA环境才能运行.这里为了简便,可以使用yum -y install java来安装JAVA环境. 安装完java环境之后可以通过下面命令来检测是否安装成功: [[email protected] ~]# java -version java version "1.7.0

zabbix使用pyora监控oracle数据库

前段时间使用Orabbix监控oracle数据库,发现可以实现对oracel数据库实行监控,但是最近部署Orabbix监控oracle数据库,发现始终无法获取到数据库的内容......由于Orabbix是基于java实现的,使用的是jdbc连接oracle数据库,获取到的值传递给zabbix捕捉器来捕捉,这个过程我不是很熟悉......始终无法调试出图来...最后终于放弃,寻找Orabbix的替代品.在zabbix官网找了一遍,发现使用python实现的pyora这个脚本还不错,最大的优势就是能

在zabbix下面使用ODBC 监控oracle数据库(11.2.0.3)和mysql数据库

1,监控mysql数据库1)安装ODBCyum -y install unixODBC unixODBC-develyum install mysql-connector-odbc 2)odbcinst -j 查看配置文件unixODBC 2.2.14DRIVERS............: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES..: /etc/ODBCDataSourcesUSER DATA S

Zabbix 3.2.6 通过Orabbix监控Oracle数据库

一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够及时报警.刚想出来的方案是通过写脚本获取表空间的数据,通脚本中使用expect自动输入密码登陆oracle用户然后再登陆数据库查询数据返回给zabbix_server.但是由于脚本运行时间大概12秒左右,zabbix获取数据总是超时,在网上搜索中发现zabbix插件orabbix,原理是通过orab

Zabbix通过Orabbix监控Oracle数据库

一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够及时报警.刚想出来的方案是通过写脚本获取表空间的数据,通脚本中使用expect自动输入密码登陆oracle用户然后再登陆数据库查询数据返回给zabbix_server.但是由于脚本运行时间大概12秒左右,zabbix获取数据总是超时,在网上搜索中发现zabbix插件orabbix,原理是通过orab