
zabbix-agent2通过oracle-instantclient监控远程oracle19c服务
zabbix-agent2通过oracle-instantclient监控远程oracle19c服务
·
基础环境
系统版本:CentOS 9 Stream
本次的CentOS 9 Stream是用docker启动的,启动命令和进入命令如下
1、创建容器
docker run -itd --name zabbix7 -v /opt/oracle/:/mnt -p 8080:8080 --privileged=true dokken/centos-stream-9 /usr/sbin/init
2、进入容器命令(获取root权限)
docker exec -it -u root zabbix7 /bin/bash
zabbix环境安装参考官方文档
唯一需要调整的是(如下步骤需要加上mysql-server)
Install Zabbix server, frontend, agent
# dnf install zabbix-server-mysql mysql-server zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
在oracle 19c上创建监控账号
CREATE USER zabbix_mon IDENTIFIED BY zabbix_mon;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_FREE_SPACE TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix_mon;
GRANT SELECT ON SYS.DBA_TEMP_FILES TO zabbix_mon;
GRANT SELECT ON GV_$SORT_SEGMENT TO zabbix_mon;
GRANT SELECT ON V_$ACTIVE_SESSION_HISTORY TO zabbix_mon;
GRANT SELECT ON V_$ARCHIVE_DEST TO zabbix_mon;
GRANT SELECT ON V_$ASM_DISKGROUP TO zabbix_mon;
GRANT SELECT ON V_$DATABASE TO zabbix_mon;
GRANT SELECT ON V_$DATAFILE TO zabbix_mon;
GRANT SELECT ON V_$INSTANCE TO zabbix_mon;
GRANT SELECT ON V_$LOG TO zabbix_mon;
GRANT SELECT ON V_$OSSTAT TO zabbix_mon;
GRANT SELECT ON V_$PGASTAT TO zabbix_mon;
GRANT SELECT ON V_$PROCESS TO zabbix_mon;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO zabbix_mon;
GRANT SELECT ON V_$RESTORE_POINT TO zabbix_mon;
GRANT SELECT ON V_$SESSION TO zabbix_mon;
GRANT SELECT ON V_$SGASTAT TO zabbix_mon;
GRANT SELECT ON V_$SYSMETRIC TO zabbix_mon;
GRANT SELECT ON V_$SYSTEM_PARAMETER TO zabbix_mon;
GRANT SELECT ON V_$PARAMETER TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE TO zabbix_mon;
安装oracle-instantclient-basic
[root@5177d9f28028 opt]ls
oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm
--------------------------------------------
[root@5177d9f28028 opt]yum -y localinstall oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm
下载地址:Instant Client for Linux x86-64 (64-bit)
zabbix环境变量设置(以下两种方案二选一即可)
1、修改zabbix-agent2.service
[root@5177d9f28028 ~]# cat /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="ORACLE_HOME=/usr/lib/oracle/21/client64"
Environment="LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH"
Environment="TNS_ADMIN=$ORACLE_HOME/network/admin/"
Environment="PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin"
Environment="LANG=en_US.UTF-8"
Environment="NLS_LANG=AMERICAN_AMERICA.AL32UTF8"
Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
--------------------------------------------
[root@5177d9f28028 ~]# systemctl daemon-reload
2、创建编辑/etc/sysconfig/zabbix-agent2文件
[root@5177d9f28028 ~]# cat /etc/sysconfig/zabbix-agent2
ORACLE_HOME=/usr/lib/oracle/21/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
TNS_ADMIN=$ORACLE_HOME/network/admin/
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
LANG=en_US.UTF-8
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
zabbix环境变量设置是否成功验证
[root@5177d9f28028 ~]# ps -ef |grep zabbix_agent2|grep -v grep
zabbix 6173 1 0 Jul13 ? 00:01:01 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
----------------------------------------------------------
[root@5177d9f28028 ~]# strings -a /proc/6173/environ
LANG=en_US.UTF-8
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
PIDFILE=/run/zabbix/zabbix_agent2.pid
HOME=/var/lib/zabbix
LOGNAME=zabbix
USER=zabbix
INVOCATION_ID=b6fd4025bafa487492e3832e92ec8602
JOURNAL_STREAM=7:3982626638
SYSTEMD_EXEC_PID=6173
ORACLE_HOME=/usr/lib/oracle/21/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
TNS_ADMIN=$ORACLE_HOME/network/admin/
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
CONFFILE=/etc/zabbix/zabbix_agent2.conf
/etc/profile环境变量设置(新增如下内容)
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/binsource /etc/profile
zabbix配置文件设置
[root@5177d9f28028 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.17.0.3
ServerActive=172.17.0.3
Hostname=172.17.0.3
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/*.conf
--------------------------------------------------------------
[root@5177d9f28028 ~]# cat /etc/zabbix/zabbix_agent2.d/monitor_oracle.conf
Plugins.Oracle.Sessions.demo.Uri=tcp://172.16.61.115:1521
Plugins.Oracle.Sessions.demo.User=zabbix_mon
Plugins.Oracle.Sessions.demo.Password=zabbix_mon
Plugins.Oracle.Sessions.demo.Service=ORCL
zabbix页面配置
1、关联模板
控制台--数据采集--主机--选择模板(Oracle by Zabbix agent 2)关联
2、配置主机宏
宏 | 值 |
{$ORACLE.CONNSTRING} | tcp://172.16.61.115:1521 |
{$ORACLE.DRIVER} | /usr/lib/oracle/21/client64/lib/libsqora.so.21.1 |
{$ORACLE.PASSWORD} | zabbix_mon |
{$ORACLE.SERVICE} | ORCL |
{$ORACLE.USER} | zabbix_mon |
更多推荐
所有评论(0)