管理Zabbix基本配备及监控主机

 

监察主机一版需要在被监督的主机上安装Zabbix Agent

 

监理主机

Orabbix介绍

监控Oracle数据库大家需要设置第三方提供的Zabbix插件,我们先测试相比较有名的Orabbix,http://www.smartmarmot.com/product/orabbix/

管理 1

从部署架构图上得以看出,orabbix是经过JDBC去老是被监督数据库的,其实不是必须在数据库主机上设置Agent,而运作orabbix的主机,可以是Zabbix
Server,也得以是数据库主机和zabbix
server之外的轻易一台主机,为了测试方便,大家将orabbix安装在Zabbix
Server上。

安装zabbix-agent

首先需要在被监控的主机上设置agent,可以下载预编译好的RPM举办安装,下载地址:http://www.zabbix.com/download

也得以源码安装,类似server的设置,只是一个地点有分别,就是安排的参数只有一个:

$./configure –prefix=/home/zabbix –enable-agent

下载软件及安装服务

Ø 下载 Orabbix ,上传到您的 Zabbix Server

Ø unzip 软件到这么些目录: /opt/orabbix

Ø 安装服务:

Ø 复制启动脚本

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

Ø 运行权限:

#chmod +x /etc/init.d/orabbix

#chmod +x /opt/orabbix/run.sh

Ø #chkconfig –add orabbix

配置agent

以RPM安装为例,安装后的agent配置文件地方:/etc/zabbix/zabbix_agentd.conf,重要需要修改下列2项:

Server=192.168.0.41

ServerActive=192.168.0.41:10051

修改完成后,重启zabbix-agent 服务。

建立监督用户及授权

CREATE USER ZABBIX

IDENTIFIED BY welcome1

DEFAULT TABLESPACE SYSTEM

TEMPORARY TABLESPACE TEMP

PROFILE DEFAULT

ACCOUNT UNLOCK;

REM 2 Roles for ZABBIX

GRANT CONNECT TO ZABBIX;

GRANT RESOURCE TO ZABBIX;

ALTER USER ZABBIX DEFAULT ROLE ALL;

REM 5 System Privileges for ZABBIX

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;

万一是11g数据库,执行下列语句:

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;

在zabbix中配置监控主机

菜单路径:配置-》主机,

点击右上角创立主机按钮,在界面中填入必要信息,主机名称和IP地址,组群这里选用预定义的“Linux
servers”。

管理 2

修改orabbix配置文件

#cd /opt/orabbix/conf

#cp config.props.sample config.props

依据实际的布置意况修改文件,比如:

#comma separed list of Zabbix servers

ZabbixServerList=ZabbixServer1

ZabbixServer1.Address=192.168.0.41 ##Zabbix服务器地址

ZabbixServer1.Port=10051 ##Zabbix服务器端口

#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=DB1,DB2,DB3 ##数据库列表,名称随便起

#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

DB1.Url=jdbc:oracle:thin:@192.168.0.31:1521:test1 ##数据库连接串

DB1.User=zabbix ##监察数据库用户名

DB1.Password=welcome1 ##督查数据库口令

保留配置文件,然后重启orabbix。

追加监控项和图纸

添加后主机要添加监控项,菜单路径:配置-》主机,点击主机名称,再点击“监控项”

管理 3

下一场点击“创设监控项”,我们这边用尝试监控CPU
idle比例,那个布局的机假如键值,具体键值的概念请参考zabbix联机文档,

数码更新时间(数据搜集频率),历史数据保存时长等信息使用缺省值。

管理 4

始建完监控项,就可以本着督查项建图表了,相比较简单:

管理 5

接下来可以点击“预览”查看效果:

管理 6

导入模板

在orabbix的软件包里面有4各模板文件,导入下边途中那个模板文件就可以了,包含了此外所有模板文件的始末。

管理 7

图形中闽南语字符问题

Zabbix缺省行使DejaVuSans字体来生成图表中的动态文字,所以在将界面切换成粤语后,图表中的粤语汉字会因为不够相应的字体文件而具体不正常,汉字会突显为一个一个小方块。

网上搜到解决措施:http://pengyao.org/zabbix-frontend-graph-chinese.html。就是替换zabbix用于生成图表的字体。

OL 7.1
的DVD中早已包含了小说中说的甲骨文字体文件,rpm文件名:wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch.rpm

设置那么些黑体字体文件,然后将那么些草书字体文件复制到zabbix存放字体文件的目录:

#cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc
/var/www/html/zabbix/fonts/wqy-microhei.ttf

接下来修改/var/www/html/zabbix/include/defines.inc.php,将中间多处采用“DejaVuSans“的地方,替换为”wqy-microhei“

重启httpd服务,中文图表中的汉字就映现正常了。

适用Orabbix

在zabbix界面上配置数据库监控时,要小心,orabbix是把各种数据库都配备成一个“主机”的,这块看着有点别扭,而且,注目的在于安排主机时,名称一定要和config.props文件中布局的数据库名称一致,比如我这边就是DB1:

管理 8

前面说了,那些“主机”的地点可以任由写,因为被监督的主机端不需要自然有agent,不过为了方便管理,我觉着如故写上Oracle主机的地点比较好。

概念了主机后,就足以适用模板中预定义的监控项、触发器和图片了。

比如图片:

管理 9

管理 10

譬如最简便易行的自我批评数据库适用可用的触发器:

管理 11

当然,对应触发器的动作仍旧需要自己布置。

预警

概念触发器:(大家定义一个系统CPU IDLE小于40%就发生警示新闻的触发器)

管理 12

接下来定义动作,规定触发器触发时执行的动作:

管理 13

管理 14

在意自己这边只选了经过Email,而为了保险通过Email可以正常发送预警邮件,需要先安装“报警媒介类型“,在菜单”管理”-》“报警媒介类型”里面拔取Email,然后输入邮件服务器的音信:

管理 15

我们在主机上效仿一些压力,让系统CPU
IDLE降到40%之下,系统页面上会预警,同时也会发送邮件:

管理 16

管理 17

管理 18

自定义SQL检查

Orabbix提供了表空间的监察,监控项对应的SQL:

tbl_space.Query=SELECT * FROM ( \

select ‘- Tablespace ->’,t.tablespace_name ktablespace, \

‘- Type->’,substr(t.contents, 1, 1) tipo, \

‘- Used(MB)->’,trunc((d.tbs_size-nvl(s.free_space, 0))/1024/1024)
ktbs_em_uso, \

‘- ActualSize(MB)->’,trunc(d.tbs_size/1024/1024) ktbs_size, \

‘- MaxSize(MB)->’,trunc(d.tbs_maxsize/1024/1024) ktbs_maxsize, \

‘- FreeSpace(MB)->’,trunc(nvl(s.free_space, 0)/1024/1024)
kfree_space, \

‘- Space->’,trunc((d.tbs_maxsize – d.tbs_size + nvl(s.free_space,
0))/1024/1024) kspace, \

‘- Perc->’,decode(d.tbs_maxsize, 0, 0,
trunc((d.tbs_size-nvl(s.free_space, 0))*100/d.tbs_maxsize)) kperc \

from \

( select SUM(bytes) tbs_size, \

SUM(decode(sign(maxbytes – bytes), -1, bytes, maxbytes)) tbs_maxsize,
tablespace_name tablespace \

from ( select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes,
tablespace_name \

from dba_data_files \

union all \

select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name
\

from dba_temp_files \

) \

group by tablespace_name \

) d, \

( select SUM(bytes) free_space, \

tablespace_name tablespace \

from dba_free_space \

group by tablespace_name \

) s, \

dba_tablespaces t \

where t.tablespace_name = d.tablespace(+) and \

t.tablespace_name = s.tablespace(+) \

order by 8) \

where kperc > 93 \

and tipo <>’T’ \

and tipo <>’U’

tbl_space.NoDataFound=none

以此SQL会回到93%满的表空间音讯,而相应这么些监控项,orabbix也定义了触发器,因为监控项的重回值是文本,而没有满意条件的记录时重回字符串“none“,所以监控项对应的触发器会检查重临值开始是不是none,倘使不是,就报警,这样,用户除外收受预警音讯,仍可以从再次来到值的具体值中来看实际时哪个表空间快满了。

自然,大部分时间监控项会重返none,所以我们无能为力画出正规未满的表空间的空间占据时间曲线。只有超过93%慢时,我们才精通具体的占据意况。

万一想采访并保留更多音信,就需要采取自定义查询,方法就是在query.props文件中投入你想检查的SQL,比如我们想了然表空间音讯,就加以下SQL:

customtbl.Query=select ‘TBL:’||a.tablespace_name||’,’ TBL, \

‘Total Size:’||trunc(sum(a.tots) / 1024 / 1024, 2)||’,’ Tot_Size_mb,
\

‘Free MB:’||round(sum(a.sumb) / 1024 / 1024, 2)||’,’ Tot_Free_mb, \

‘PCT Free:’||round(sum(a.sumb) * 100 / sum(a.tots), 2)||’,’ Pct_Free,
\

‘Max Free MB:’||round(sum(a.largest) / 1024 / 1024, 2)||’,’
Max_Free_mb, \

‘Chunks Free:’||sum(a.chunks)||’,’ Chunks_Free \

from (select tablespace_name, \

0 tots, \

sum(bytes) sumb, \

max(bytes) largest, \

count(*) chunks \

from dba_free_space a \

group by tablespace_name \

union \

select tablespace_name, sum(bytes) tots, 0, 0, 0 \

from dba_data_files \

group by tablespace_name) a \

group by a.tablespace_name

customtbl.NoDataFound=none

接下来在orabbix对应的沙盘中添加这一个监控项customtbl就可以了,下面时从最新数据菜单查看的SQL的归来结果:

管理 19

当然,大家要做越来越的辨析和呈现,就需要利用此外工具或者开发工具来做了,这多少个就不是这篇著作钻探的限制了。

不安装Agent监控主机可用性

Zabbix也得以实现部分至极简单的监察,只依靠ping等办法,判断主机状态,这种监督是不必安装agent的,这样的主意对这多少个相比争论agent的气象相比较适用,可以兑现最今本的可用性监控。

这种监督和眼前的监察措施各异的地点根本在监控项项目上,类型选用是“简单检查“。

管理 20

简短监控不是适用ping,而是适用fping,所以适用这种监督项在此之前,一定要保证fping已经被装置,并且zabbix有实践权限。

设置过程就背着了,相比简单,紧如若程序的权能,为了保险zabbix能访问fping,并以root身份去履行,必须保证fping带有”粘滞位(sticky)
“:

#chmod 4755 /usr/sbin/fping

设若fping能够ping通,监控项项的重返值就是1,否则就是0。

留神主机接口这里实在是援引主机的概念的,而主机的定义这里其实能够任由写IP地址的,可以写成127.0.0.1,因为系统不会真正去校验那一个地点的192.168.0.32的10050端口是否运行着agent,之所以依然写192.168.0.32是为了看着方便,知道各类主机对应的地方,实际上fping
找主机地址,是从键值字符串中找的。

概念了这些监控项后,后续诸如触发器和动作等的安装和安装agent的不二法门是相同的。

Orabbix不足

起头测试,感觉orabbix有2点彰着缺欠:

1.
被监控数据库信息要逐个写进配置文件,如若数据库个数比较多,管理会相比麻烦

2.
被监督数据库的账号消息是写在配置文件中,而且口令是当面存储,有很大的安全隐患

  1. 对RAC的帮忙仍旧很初级

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注