@cdmonkey
2018-01-04T04:23:52.000000Z
字数 7609
阅读 1614
Zabbix
首先需要安装Agent,安装后会自动创建zabbix用户,再执行下面的操作:
usermod -a -G oinstall zabbixusermod -a -G asmadmin zabbix
[root@bapdb1 ~]# mkdir -pv /etc/zabbix/monitor_scripts[root@bapdb1 ~]# chown zabbix.zabbix /etc/zabbix/monitor_scripts
将监控脚本放入上面的目录中。
[root@bapdb1 ~]# cd /etc/zabbix/monitor_scripts/<!-- 上传脚本文件 -->[root@bapdb1 monitor_scripts]# chown zabbix.zabbix ./*[root@bapdb1 monitor_scripts]# chmod 755 ./*
[root@bapdb1 ~]# visudo#Defaults requirettyzabbix ALL=(ALL) NOPASSWD: /sbin/blockdev
修改“Zabbix Agent”的配置文件,创建用户自定义参数:
[root@bapdb1 ~]# vim /etc/zabbix/zabbix_agentd.confUserParameter=mount_disk_discovery,/etc/zabbix/monitor_scripts/disk_discovery.shUserParameter=check_ntp_time,/etc/zabbix/monitor_scripts/check_ntp_time -H pbsntp02.suixingpay.com | awk '{print $4}'UserParameter=check_tcp[*],/etc/zabbix/monitor_scripts/tcp_connect.sh $1UserParameter=ora.tab.discovery,/etc/zabbix/monitor_scripts/oracle_tabspace_discovery.shUserParameter=tablespace[*],/etc/zabbix/monitor_scripts/oracle_tabspace_check.sh $1 $2UserParameter=ora.diskgroup.discovery,/etc/zabbix/monitor_scripts/oracle_diskgroup_discovery.shUserParameter=diskgroup[*],/etc/zabbix/monitor_scripts/oracle_diskgroup_check.sh $1 $2UserParameter=ora.oggcheck,/etc/zabbix/monitor_scripts/check_ogg.shUserParameter=disk_luo_discovery,/etc/zabbix/monitor_scripts/disk-luo_discovery.shUserParameter=ora.logswcheck,/etc/zabbix/monitor_scripts/oracle_logswitches_check.shUserParameter=lock_discovery,/etc/zabbix/monitor_scripts/lock_discovery.shUserParameter=lock_check[*],/etc/zabbix/monitor_scripts/oracle_lock_check.sh $1 $2 $3UserParameter=listener_check,/etc/zabbix/monitor_scripts/check_oracle_listener.shUserParameter=alert_check,/etc/zabbix/monitor_scripts/check_oracle_alert.sh
[root@bapdb1 ~]# touch /tmp/mounts.tmp[root@bapdb1 ~]# chown zabbix:zabbix /tmp/mounts.tmp
最后重启服务。
首先配置好JAVA环境。
[root@agstestedb ~]# vim /etc/profileJAVA_HOME="/root/jdk1.8.0_101"CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin"[root@agstestedb ~]# source /etc/profile
[root@bapdb1 ~]# mkdir -pv /opt/orabbix[root@bapdb1 ~]# cd /opt/orabbix/# Upload orabbix-1.2.3.zip[root@bapdb1 orabbix]# unzip orabbix-1.2.3.zip[root@bapdb1 orabbix]# chmod +x run.sh[root@bapdb1 orabbix]# cd /opt/orabbix/conf/[root@bapdb1 conf]# cp config.props.sample config.props# Modify config.props[root@bapdb1 conf]# vim config.propsZabbixServerList=ZabbixServer1ZabbixServer1.Address=10.1.1.225ZabbixServer1.Port=10051...DatabaseList=trandb1 # 这个名字可以自行命名,但是需要同下面的名字保持一致。# 并且于 Zabbix Server 上面配置的主机名要和这个保持一致。...trandb1.Url=jdbc:oracle:thin:@10.1.11.11:1521:trandb1trandb1.User=zabbixtrandb1.Password=zabbix...
若监控Oracle 12c,则配置文件内容写法稍有不同:其他的都一样,只是jdbc连接的写法不太一样。
http://blog.itpub.net/23718752/viewspace-2127174
agstestedb.Url=jdbc:oracle:thin:@10.1.11.87:1521/SXP1
注意:数据库的实例名称一定要填写正确。
[root@bapdb1 ~]# cp /opt/orabbix/init.d/orabbix /etc/init.d/[root@bapdb1 ~]# chmod +x /etc/init.d/orabbix
启动服务:
[root@bapdb1 ~]# /etc/init.d/orabbix start# Check[root@bapdb1 ~]# ps -ef|grep orabbixroot 23385 1 6 20:21 pts/3 00:00:05 /jdk/jdk1.8.0_91/bin/java -Duser.language=en...
时间同步需要解析时间同步服务器的域名:
# ntp server10.1.47.205 pbsntp01.suixingpay.com10.1.47.206 pbsntp02.suixingpay.com
| Image | |
|---|---|
![]() |
| Monitor script | Discovery script | oracle user | |
|---|---|---|---|
| Disk IO | oracle_disk_discovery.sh |
||
| TableSpace | oracle_tabspace_check.sh |
oracle_tabspace_discovery.sh |
get_tabspace.sh |
| DiskGroup | oracle_diskgroup_check.sh |
oracle_diskgroup_discovery.sh |
get_diskgroup.sh |
| Luo-Disk | oracle_disk-luo_discovery.sh |
||
| LogSwitch | oracle_logswitch_check.sh |
get_logswitch.sh |
|
| Lock | oracle_lock_check.sh |
oracle_lock_discovery.sh |
get_lock.sh |
| OGG | oracle_ogg_check.sh oracle_ogg-checkprocess_check.sh |
get_oggstatus.sh |
|
| LongSQL | get_longsql.sh |
||
| Listener | oracle_listener_check.sh |
||
| Alert | oracle_alert_check.sh |
该监控主要是针对不同分区的硬盘读写的监控,并且其不只是用于数据库监控,普通服务器监控同样适用。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_disk_discovery.sh |
Discovery script | 用于自动发现系统中的分区。 |
使用该监控项的模板:PBS_Template_Linux_DiskIO
该监控主要是针对表空间使用率的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_tabspace_check.sh |
Monitor script | 获得指定表空间的大小及使用率。 |
oracle_tabspace_discovery.sh |
Discovery script | 将发现的表空间输出为 Json 信息。 |
get_tabspace.sh |
oracle cron | 使用定时任务,从数据库中定期查询出使用的表空间。 |
该监控主要是针对磁盘组使用率的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_diskgroup_check.sh |
Monitor script | 获得指定磁盘组的大小及使用率。 |
oracle_diskgroup_discovery.sh |
Discovery script | 将发现的磁盘组输出为 Json 信息。 |
get_diskgroup.sh |
oracle cron | 使用定时任务,从数据库中定期查询出磁盘组信息。 |
该监控主要是针对裸磁盘使用率的监控。需要使用的脚本有:
该监控主要是针对数据库日志切换的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_logswitch_check.sh |
Monitor script | 获得日志切换次数。 |
get_logswitch.sh |
oracle cron |
该监控主要是针对锁的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_lock_check.sh |
Monitor script | 获得指定锁存在的时长。 |
oracle_lock_discovery.sh |
Discovery script | 将发现的锁输出为 Json 信息。 |
get_lock.sh |
oracle cron | 使用定时任务,从数据库中定期查询出现的锁。 |
该监控主要是针对 OGG 健康状况的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_ogg_check.sh oracle_ogg-checkprocess_check.sh |
Monitor script | |
get_oggstatus.sh |
该监控无需执行什么 sql 语句,只需要执行一个检测脚本进行检查即可。最后,需要将获取 OGG 信息的脚本放于后台运行,而不是通过定时任务的方法。
[oracle@trandb1 ~]$ nohup sh shell/get_oggstatus.sh &
注意:监控脚本有两个,一个是获取监控数值的脚本,一个是负责检查后台那个脚本是否正常运行的脚本。
该监控主要是针对耗时较长的 SQL 语句的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
get_longsql.sh |
oracle cron | 用于发现长 SQL 语句,并通过 zabbix_sender 指令发送给监控端。 |
注意:该监控使用的是“ Zabbix trapper”的方式。
该监控主要是针对监听器日志的监控。需要使用的脚本有:
| Script Name | Type | Explain |
|---|---|---|
oracle_listener_check.sh |
Monitor script |
可通过下面的方法找到对应之 log 文件:
[oracle@agstestedb ~]$ lsnrctl status...Listener Log File /u01/app/oracle/diag/tnslsnr/agstestedb/listener/alert/log.xml...-------------------[oracle@agstestedb ~]$ cd /u01/app/oracle/diag/tnslsnr/agstestedb/listener/[oracle@agstestedb listener]$ cd trace/[oracle@agstestedb trace]$ lslistener.log
最后还需要创建相应的定时任务:
# Get table space*/3 * * * * /bin/sh /home/oracle/shell/oracle_tabspace.sh &> /dev/null# Get disk group*/3 * * * * /bin/sh /home/oracle/shell/oracle_diskgroup.sh &> /dev/null# Log switch*/10 * * * * /bin/sh /home/oracle/shell/oracle_logswitches.sh &> /dev/null# Get lock status*/1 * * * * /bin/sh /home/oracle/shell/oracle_lock.sh &> /dev/null# Get long SQL*/1 * * * * /bin/sh /home/oracle/shell/oracle_longsql.sh &> /dev/null
http://www.cnblogs.com/caoxiaojian/p/5706992.html
http://blog.csdn.net/mchdba/article/details/51447750
http://jaminzhang.github.io/monitoring/Monitoring-MySQL-using-Percona-Monitoring-Plugins-in-Zabbix/
https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/
yum install -y php php-mysql
可能于安装mysql-libs这个包的时候同本地的MySQL-server的版本有冲突。
# 发生冲突时会有下面的报错信息:Transaction Check Error:file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.1.73-8.el6_8.x86_64 conflicts with file from package MySQL-server-5.5.34-1.linux2.6.x86_64...
解决方法:
http://hz999.blog.51cto.com/10862775/1754810
[root@PBSTMS01 tools]# rpm -ivh MySQL-shared-5.5.54-1.el6.x86_64.rpm[root@PBSTMS01 tools]# rpm -ivh MySQL-shared-compat-5.5.54-1.el6.x86_64.rpm
上面的两个包的下载地址:
https://dev.mysql.com/downloads/mysql/5.5.html?os=31
[root@PBSSDL02 tools]# rpm -ivh percona-zabbix-templates-1.1.7-2.noarch.rpmwarning: percona-zabbix-templates-1.1.7-2.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEYPreparing... ########################################### [100%]1:percona-zabbix-template########################################### [100%]Scripts are installed to /var/lib/zabbix/percona/scriptsTemplates are installed to /var/lib/zabbix/percona/templates
zabbix/zabbixmonitor123
[root@PBSSDL02 tools]# cd /var/lib/zabbix/percona/templates/[root@PBSSDL02 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
修改配置文件:
[root@PBSSDL02 ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php# 主要是下面的这几项配置内容:$mysql_user = 'zabbix';$mysql_pass = 'zabbixmonitor123';$mysql_socket = '/tmp/mysql.sock';
进行测试:
cd /var/lib/zabbix/percona/scripts//usr/bin/php -q ./ss_get_mysql_stats.php --host localhost --items gggg:12
还有一个重要的操作:
chown zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt