@cdmonkey
2018-01-04T12:23:52.000000Z
字数 7609
阅读 1435
Zabbix
首先需要安装Agent
,安装后会自动创建zabbix
用户,再执行下面的操作:
usermod -a -G oinstall zabbix
usermod -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 requiretty
zabbix ALL=(ALL) NOPASSWD: /sbin/blockdev
修改“Zabbix Agent”的配置文件,创建用户自定义参数:
[root@bapdb1 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=mount_disk_discovery,/etc/zabbix/monitor_scripts/disk_discovery.sh
UserParameter=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 $1
UserParameter=ora.tab.discovery,/etc/zabbix/monitor_scripts/oracle_tabspace_discovery.sh
UserParameter=tablespace[*],/etc/zabbix/monitor_scripts/oracle_tabspace_check.sh $1 $2
UserParameter=ora.diskgroup.discovery,/etc/zabbix/monitor_scripts/oracle_diskgroup_discovery.sh
UserParameter=diskgroup[*],/etc/zabbix/monitor_scripts/oracle_diskgroup_check.sh $1 $2
UserParameter=ora.oggcheck,/etc/zabbix/monitor_scripts/check_ogg.sh
UserParameter=disk_luo_discovery,/etc/zabbix/monitor_scripts/disk-luo_discovery.sh
UserParameter=ora.logswcheck,/etc/zabbix/monitor_scripts/oracle_logswitches_check.sh
UserParameter=lock_discovery,/etc/zabbix/monitor_scripts/lock_discovery.sh
UserParameter=lock_check[*],/etc/zabbix/monitor_scripts/oracle_lock_check.sh $1 $2 $3
UserParameter=listener_check,/etc/zabbix/monitor_scripts/check_oracle_listener.sh
UserParameter=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/profile
JAVA_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.props
ZabbixServerList=ZabbixServer1
ZabbixServer1.Address=10.1.1.225
ZabbixServer1.Port=10051
...
DatabaseList=trandb1 # 这个名字可以自行命名,但是需要同下面的名字保持一致。
# 并且于 Zabbix Server 上面配置的主机名要和这个保持一致。
...
trandb1.Url=jdbc:oracle:thin:@10.1.11.11:1521:trandb1
trandb1.User=zabbix
trandb1.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 orabbix
root 23385 1 6 20:21 pts/3 00:00:05 /jdk/jdk1.8.0_91/bin/java -Duser.language=en...
时间同步需要解析时间同步服务器的域名:
# ntp server
10.1.47.205 pbsntp01.suixingpay.com
10.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]$ ls
listener.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.rpm
warning: percona-zabbix-templates-1.1.7-2.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:percona-zabbix-template########################################### [100%]
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates 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 gg
gg:12
还有一个重要的操作:
chown zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt