zabbix服務器端安裝:zabbix-3.2.6.tar.gz
zabbix client端安裝:zabbix-agent-3.2.6-1.x86_64.rpm
1.首先必須在目標機器安裝zabbix-agent
[root@prod02 ~]# cd /opt/source
[root@prod02 ~]#ls
zabbix-agent-3.2.6-1.x86_64.rpm
[root@prod02 ~]#rpm -ivh zabbix-agent-3.2.6-1.x86_64.rpm
[root@prod02 ~]# /etc/init.d/zabbix_agentd status
● zabbix_agentd.service - SYSV: Starts and stops Zabbix Agent using chkconfig
Loaded: loaded (/etc/rc.d/init.d/zabbix_agentd; bad; vendor preset: disabled)
Active: active (running) since Thu 2018-07-12 10:11:14 CST; 1 months 22 days ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/zabbix_agentd.service
├─791 /opt/zabbix/sbin/zabbix_agentd
├─796 /opt/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
├─797 /opt/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─798 /opt/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─799 /opt/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─800 /opt/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
Jul 12 10:11:14 10-10-15-71 systemd[1]: Starting SYSV: Starts and stops Zabbix Agent using chkconfig...
Jul 12 10:11:14 10-10-15-71 zabbix_agentd[754]: Starting zabbix_agentd: [ OK ]
Jul 12 10:11:14 10-10-15-71 systemd[1]: Started SYSV: Starts and stops Zabbix Agent using chkconfig.
[root@prod02 zabbix]# netstat -ntlp |grep zabbix #zabbix客戶端使用1050端口
tcp 0 0 0.0.0.0:1050 0.0.0.0:* LISTEN 1615/zabbix_agentd
[root@prod02 ~]# cd /opt/zabbix/
[root@prod02 zabbix]# ll
total 4
drwxr-xr-x 2 zabbix zabbix 78 May 16 10:50 bin
drwxr-xr-x 2 zabbix zabbix 48 May 16 10:50 etc
drwxr-xr-x 2 zabbix zabbix 6 Jun 20 2017 lib
drwxr-xr-x 2 zabbix zabbix 26 May 16 10:50 sbin
drwxr-xr-x 2 zabbix zabbix 4096 May 16 10:50 scripts
drwxr-xr-x 3 zabbix zabbix 16 May 16 10:50 share
2.查看防火牆等配置,以及SELINUX策略等問題。
[root@prod02 ]# cat /etc/selinux/config |grep SELINUX
# SELINUX= can take one of these three values:
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
SELINUXTYPE=targeted
[root@prod02 ]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
3.修改agent配置文件
[root@prod02 ]# cat /opt/zabbix/etc/zabbix_agentd.conf
PidFile=/var/run/zabbix_agentd.pid
LogFile=/var/log/zabbix_agentd.log
ListenPort=1050 #zabbix客戶端端口號
EnableRemoteCommands=1
LogRemoteCommands=1
Server=100.150.10.10 #zabbix服務器地址
ServerActive=100.150.10.10:1051 #zabbix服務器地址及端口號
HostnameItem=system.hostname
Timeout=30
AllowRoot=1
DebugLevel=4
LogFileSize=128
Include=/opt/zabbix/etc/extra.conf
UnsafeUserParameters=1
UserParameter=findsock[*],/opt/zabbix/scripts/findsock.sh $1
UserParameter=net.tcp.listen.grep[*],grep -q $$(printf '%04X.00000000:0000.0A' $1) /proc/net/tcp && echo 1 || echo 0
UserParameter=net.tcp6.listen.grep[*], ss -nlt| grep "\<$1\>" >/dev/null && echo 1 || echo 0
UserParameter=finddisks,/opt/zabbix/scripts/finddisks.sh
UserParameter=disproc,/opt/zabbix/scripts/disproc.sh
UserParameter=disraid,/opt/zabbix/scripts/disraid.sh
UserParameter=raid,/opt/zabbix/scripts/checkraid.sh
UserParameter=iostats[*],/opt/zabbix/scripts/iostats.sh $1
UserParameter=bond[*],/usr/sbin/ethtool $1 | awk -F ":" '/Speed/ {print $NF}'|sed 's/Mb.*$//g'
LogFileSize=128
[root@prod02 zabbix]# cat etc/extra.conf
#jmx
UserParameter=jmx.scan.tomcat[*],cat /opt/apache-tomcat/jmx.json
UserParameter=jmx.scan.tomcat2[*],cat /opt/apache-tomcat-2/jmx.json
UserParameter=jmx.tomcat[*],/opt/zabbix/scripts/jmx_status.sh $1 $2 $3 $4
UserParameter=jmx.tomcat2[*],/opt/zabbix/scripts/jmx_status.sh $1 $2 $3 $4
UserParameter=mysql[*],/opt/zabbix/scripts/mysql.sh $1
UserParameter=nginx[*],/opt/zabbix/scripts/nginx.sh $1
UserParameter=performance,/opt/zabbix/scripts/performance.sh
UserParameter=redis.info[*],/opt/zabbix/scripts/redis.sh $1
4.編寫oracle client機器上的可執行腳本
[root@prod02 ~]#cd /opt/zabbix/scripts/
[root@prod02 ~]#vi oracle_status.sh
以監控oracle腳本的運行狀態為例
#!/bin/bash
function active() {
ps -ef | grep pmon | grep -v grep | awk '{print $NF}' > /dev/null
if [ $? -eq 0 ]; then
echo 1
else
echo 0
fi
}
if [ $# -ne 1 ]; then
echo "the args is error."
else
$1
fi
[root@prod02 ~]#chmod u+x oracle_status.sh
在目標機器上執行對應腳本
[root@prod02 ~]# cd /opt/zabbix/scripts/
[root@prod02 scripts]# ./oracle_status.sh active
1
參數為active,編輯zabbix_agentd.conf ,添加下列條目:
[root@prod02 ~]#UserParameter=oracle_status[*],/usr/local/zabbix/script/oracle_status.sh $1
重啟zabbix_agented
[root@prod02 ~]#/etc/init.d/zabbix_agentd restart
5,zabbix服務器機器獲取腳本數據,可使用zabbix-get
[root@server bin]# ./zabbix_get -s 100.10.93.18 -p 1050 -k "oracle_status[active]"
1
100.10.93.18 為zabbix client機器
到這一步證明zabbix-service已經獲取到目標機器數據
6.在zabbix服務器的web配置,添加監控項
配置-->主機-->監控項-->創建監控項
名稱:oracle_status 鍵值:oracle_status[active] 主機接口:client地址及端口
7:添加圖形
配置-->主機-->圖形
添加監控項
8.添加觸發器
9.查看最新數據的監控項