安装部署zabbix以及orabbix监控Oracle数据库

资源监控工具 专栏收录该内容
1 篇文章 0 订阅

参考https://blog.51cto.com/andyxu/2120362

官网https://www.zabbix.com/cn/download

zabbix简介

       zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix的组件
zabbix-server:Zabbix监控端组件,它是一个服务器端组件
zabbix-agent:被监控端组件,它是一个客户端组件,它主要是监控由Agent所支持的操作系统(简单说如果你要监控OS,就需要在对应的OS上安装Agent程序),而如果要监控一些其他设备,通常需要用ICMP/IPMI/SNMP/JMX协议来实现
zabbix-proxy:Zabbix代理组件,它是实现分布式监控的关键,proxy端收集数据保存在本地,server端定时去proxy将数据取回
zabbix-database:zabbix的数据库组件,zabbix收集到的数据都会存储数据库
zabbix-web:zabbix的web端组件,能够将zabbix-database中的数据提取并展示,同时它又是zabbix的配置接口
zabbix-get:server端向agent端获取数据的组件
zabbix-sender:agent端向server端主动发送收集的数据的组件

zabbix的常用术语
host:主机,指要监控的网络设备
host group:主机组,指主机的逻辑容器,可以包含主机和模板
item:监控项,指一个特定监控指标的相关数据
trigger:触发器,指一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围,即阀值;接收到的数据量大于阀值时,触发器的状态将由"OK"变为"Problem"
event:事件,指发生的一个值得关注的事,例如触发器发生状态改变
action:动作,指对特定事件事先定义的处理方法
escalation:报警升级,指发送警报或执行远程命令的自定义方案,如每隔5分钟发送一次报警,共发送5次
media:媒介,指发送通知的手段或通道,例如Email,Jabber或SMS等等
notification:通知,指通过选定的媒介向用户发送有关某事件的信息
remote command:远程命令,指预定义的命令,可以在被监控主机处于某特定条件下时自动执行
template:模板,用于快速定义被监控主机的预设条目集合,通常包含:item,trigger,graph,screen,application,以及low-level discovery rule;模板可以直接链接至单个主机
application:应用,指一组item的集合
web scennario:web场景,指用于检测web站点可用性的一个或多个HTTP请求
frontend:前端,指zabbix的web接口

Zabbix-server启动后所涉及的进程

Poller:到被监控对象拉取数据的一个进程,例如基于agent对象,一个基于snmp协议的监控对象,如果我们的监控对象很多,我们可以根据需要启动多个poller
httppoller:监控web页面用到的专用poller
discoverer:zabbix通过你所指定的规则去发现某个范围内的启动了agent的主机,并把它自动添加到监控对象中
alerter:执行报警操作的进程
housekeeper:负责清理数据库里过期的历史数据的进程
watchdog:负责监控zabbix-server所启动的所有进程是否正常工作的进程
escalator:报警升级进程
timer:计时器进程,zabbix的很多功能都严重依赖于时间的
nodewatcher:监控个节点的进程
pinger:通过ping操作来探测节点是否在线的进程
db_config_syncer:数据库的配置同步器,主要是用来完成在分布式场景中实现配置的同步的进程
db_data_syncer:数据库的数据同步器,主要是用来完成在分布式场景中实现数据的同步的进程

安装配置zabbix

1. 安装 MySQL

yum -y install mariadb mariadb-devel mariadb-server  # centos7下安装的是mariadb
systemctl enable mariadb
systemctl start mariadb
设置mysql的root密码
mysqladmin -u root -h localhost password 'xxxxxxxx'

2. 创建数据库 zabbix 并授权

 mysql -uroot -pxxxxxx
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'xxxxxxxx';

3. 下载repo包,以便yum安装zabbix

   rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
   yum clean all

4. 安装Zabbix server,Web前端,agent

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

5. 导入初始架构和数据,系统将提示您输入新创建的密码。

 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
6. 为Zabbix server配置数据库,编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password

7. 为Zabbix前端配置PHP
编辑配置文件 /etc/httpd/conf.d/zabbix.conf, uncomment and set the right timezone for you.
# php_value date.timezone Europe/Riga
8. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:

# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
现在您的Zabbix server已经安装完成并开始运行

利用浏览器登录http://ip_addr/zabbix,进行前端配置。

Orabbix监控Oracle

orabbix下载地址:http://www.smartmarmot.com/product/orabbix/download/

Orabbix是通过JDBC去连接oracle数据库,然后过滤想要的数据,所以需要jdk环境。

编辑配置文件conf/config.props

#comma separed list of Zabbix servers
ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=127.0.0.1
ZabbixServer1.Port=10051

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=192.168.159.61-oracle,192.168.159.62-oracle

#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
192.168.159.61-oracle.Url=jdbc:oracle:thin:@192.168.159.61:1521:prod1
192.168.159.61-oracle.User=zabbix
192.168.159.61-oracle.Password=password01
#Those values are optionals if not specified Orabbix is going to use the general values
192.168.159.61-oracle.MaxActive=10
192.168.159.61-oracle.MaxWait=100
192.168.159.61-oracle.MaxIdle=1
192.168.159.61-oracle.QueryListFile=./conf/query.props

192.168.159.62-oracle.Url=jdbc:oracle:thin:@192.168.159.62:1521:prod2
192.168.159.62-oracle.User=zabbix
192.168.159.62-oracle.Password=password01
192.168.159.62-oracle.QueryListFile=./conf/query.props

在Oracle中创建用户并赋予权限

sqlplus / as sysdba

CREATE USER ZABBIX IDENTIFIED BY password01;
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT SELECT ON V_$SESSION TO ZABBIX;
GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;
GRANT SELECT ON V_$EVENT_NAME TO ZABBIX;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO ZABBIX;

启动orabbix

init.d/orabbix start

查看日志orabbix/logs/orabbix.log,出现以下内容(不影响使用)

 2019-08-21 00:03:49,580 [main] ERROR Orabbix - Error on Configurator for database 192.168.159.62-oracl
e -->IO Error: The Network Adapter could not establish the connection
 2019-08-21 00:03:49,608 [main] WARN  Orabbix - Warning on getZabbixServers while getting ZabbixServer2
.Port For input string: "PORT_OF_ZABBIX_SERVER"
 2019-08-21 00:03:49,609 [main] WARN  Orabbix - Warning I will use the default port10051
 2019-08-21 00:04:01,440 [pool-1-thread-1] WARN  Orabbix - Error while executing ->dbversion- on databa
se ->192.168.159.61-oracle- Exception received ORA-24247: network access denied by access control list 
(ACL)
ORA-06512: at "SYS.UTL_INADDR", line 4
ORA-06512: at "SYS.UTL_INADDR", line 35
ORA-06512: at line 1

解决方法

在Oracle中执行命令

exec dbms_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;

最后通过web页面访问监控界面并进行配置

请参考https://www.cnblogs.com/Dev0ps/p/8886181.html

常见错误参考https://blog.csdn.net/weixin_43767002/article/details/86630152

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值