1、添加Linux主機,自定義監控項、觸發器和使用內置模板進行監控:node
一、node-122節點部署Zabbix Agent:linux
(1)安裝zabbix-agent軟件包:# yum -y install zabbix-agentios
(2)修改zabbix_agentd.conf配置文件:vim
# cd /etc/zabbixbash
# cp zabbix_agentd.conf{,.bak}服務器
# vim zabbix_agentd.confless
修改前ide |
修改後spa |
PidFile=/var/run/zabbix/zabbix_agentd.pid3d |
保持默認 |
# LogType=file |
LogType=file |
LogFile=/var/log/zabbix/zabbix_agentd.log |
保持默認 |
LogFileSize=0 |
保持默認 |
# EnableRemoteCommands=0 |
EnableRemoteCommands=1 |
Server=127.0.0.1 |
Server=192.168.0.120 |
# ListenPort=10050 |
ListenPort=10050 |
# ListenIP=0.0.0.0 |
ListenIP=192.168.0.122 |
ServerActive=127.0.0.1 |
ServerActive=192.168.0.120 |
Hostname=Zabbix server |
Hostname=node-122 |
# AllowRoot=0 |
AllowRoot=0 |
# User=zabbix |
User=zabbix |
Include=/etc/zabbix/zabbix_agentd.d/*.conf |
保持默認 |
# UnsafeUserParameters=0 |
UnsafeUserParameters=1 |
(3)啓動Zabbix Agent:
# systemctl start zabbix-agent
# systemctl status zabbix-agent
# ps aux | grep zabbix_agent
# ss -tunlp | grep -w 10050
# tail -100 /var/log/zabbix/zabbix_agentd.log
(4)配置開機自啓:# systemctl enable zabbix-agent
二、配置Zabbix Web:
Configuration --> Hosts --> Create host --> Add
因爲沒有使用模板定義監控項,因此「ZBX」的圖標不會變綠
三、node-122節點定義監控項:
(1)監控TCP 21號端口是否被監聽(內置Key):
Create Item:
說明:Key的具體用法參見
https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/zabbix_agent
(2)監控服務器根分區磁盤TPS(自定義無參數Key):
a、安裝sysstat軟件包:# yum -y install sysstat
b、使用awk命令獲取服務器根分區磁盤TPS的數值:# iostat | awk '$1~/^dm-0$/{print $2}'
c、建立disk_tps.conf配置文件:
# vim /etc/zabbix/zabbix_agentd.d/disk_tps.conf
UserParameter=disk.tps,iostat | awk '$1~/^dm-0$/{print $2}'
# systemctl restart zabbix-agent
備註:Zabbix Agent查看全部Key的命令# zabbix_agentd -p | less
d、zabbix-server節點安裝zabbix-get軟件包,並嘗試獲取監控數據:
# yum -y install zabbix-get
# zabbix_get -s 192.168.0.122 -k disk.tps
e、建立監控項:
(3)監控服務器內存使用狀況(自定義有參數Key):
a、使用awk命令獲取服務器內存使用狀況:
# free -h | awk '$1~/^Mem:$/{print $2}'
# free -h | awk '$1~/^Mem:$/{print $3}'
# free -h | awk '$1~/^Mem:$/{print $4}'
# free -h | awk '$1~/^Mem:$/{print $NF}'
b、將awk取值命令寫成腳本:
# mkdir -pv /scripts
# vim /scripts/check_mem.sh
#!/bin/bash
case "$1" in
"total")
free -h | awk '$1~/^Mem:$/{print $2}'
;;
"used")
free -h | awk '$1~/^Mem:$/{print $3}'
;;
"free")
free -h | awk '$1~/^Mem:$/{print $4}'
;;
"available")
free -h | awk '$1~/^Mem:$/{print $NF}'
;;
*)
echo "Usage: { total | used | free | available }"
;;
esac
# chmod +x /scripts/check_mem.sh
c、建立check_mem.conf配置文件:
# vim /etc/zabbix/zabbix_agentd.d/check_mem.conf
UserParameter=mem.check[*],/scripts/check_mem.sh $1
# systemctl restart zabbix-agent
d、 zabbix-server節點嘗試獲取監控數據:
# zabbix_get -s 192.168.0.122 -k mem.check[total]
# zabbix_get -s 192.168.0.122 -k mem.check[used]
# zabbix_get -s 192.168.0.122 -k mem.check[free]
# zabbix_get -s 192.168.0.122 -k mem.check[available]
e、建立監控項:
備註:腳本取值獲得的結果,如3.8G既不是整型,也不是浮點型,是字符串,因此Type of information選「Character」,若是腳本中使用的是free -m命令,則建立Item時Type of information選「Numeric (unsigned)」,Units填「MB」
同理克隆Item,Key分別爲mem.check[used]、mem.check[free]、mem.check[available]
查看最新數據:Monitoring --> Latest data
四、node-122節點定義觸發器:
(1)Check TCP 21:
Create trigger:
(2)根分區tps:最近3分鐘的平均值大於1時觸發告警
五、node-122節點使用內置模板進行監控:
按照上述方法自定義監控項和觸發器,太過繁瑣
(1)克隆「Template OS Linux」模板爲「Template OS Linux Active」,將監控項的默認類型修改成「Zabbix agent (active)」,使用主動模式監控:
Configuration --> Templates --> Name中輸入linux
(2)node-122節點連接「Template OS Linux Active」模板:
查看最新數據: