目录
WEB场景:
自定义监控项:
自定义监控内存:
监控zabbi的agent端的tcp连接数值:
zabbix监控网络设备:
邮件报警:
创建zabbix自动监测:
给zabbix配置执行远程命令的动作
在zabbix-agent上添加web场景
#先安装httpd并开启
yum -y install httpd
systemctl enable httpd --now
配置--》主机--》web监测
添加完成后,效果在 监测--》主机--》web场景--》测试
在zabbix-agent端编写配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
#最后添加
Include=/root/zabbix-6.0.5/conf/zabbix_agentd
#进入安装路径
cd zabbix-6.0.5/conf/zabbix_agentd/
#删掉userparameter_examples.conf
rm -rf userparameter_examples.conf
#编写文件
vim userparameter_memory.conf
#添加键值
UserParameter=memory_used, free -m |awk 'NR==2 {print $3}'
#重启zabbix
killall -9 zabbix_agent
/usr/local/zabbix/sbin/zabbix_agentd
#在zabbix-server端测试
zabbix_get -s 192.168.100.2 -k memory_used
在浏览器上编写:
创建模板--》创建图形--》创建触发器
可以看到刚刚创建的模板,但是没有图形和监控项
点击图形--》创建监控项
创建图形
创建触发器
完成后,刷新查看
#编写脚本
vim /usr/local/zabbix/etc/tcp_status.sh
#!/bin/bash
if [ $# -ne 1 ];then
echo "Follow the script name with an argument "
fi
case $1 in
LISTEN)
result=`netstat -ant| awk '/^tcp/ {a[$6]++} END {for (b in a) print b,a[b]}'| awk '/LISTEN/{print $2}'`
if [ "$result" == "" ];then
echo 0
else
echo $result
fi
;;
ESTAB)
result=`netstat -ant| awk '/^tcp/ {a[$6]++} END {for (b in a) print b,a[b]}'| awk '/ESTABLISHED/{print $2}'`
if [ "$result" == "" ];then
echo 0
else
echo $result
fi
;;
TIME_WAIT)
result=`netstat -ant| awk '/^tcp/ {a[$6]++} END {for (b in a) print b,a[b]}'| awk '/TIME_WAIT/{print $2}'`
if [ "$result" == "" ];then
echo 0
else
echo $result
fi
esac
#给予执行权限
chmod 777 /usr/local/zabbix/etc/tcp_status.sh
#编写文件
vim zabbix-6.0.5/conf/zabbix_agentd/userparameter_Tcp-status.conf
#添加
UserParameter=tcp.status[*], /usr/local/zabbix/etc/tcp_status.sh $1
#重启zabbix
killall -9 zabbix_agent
/usr/local/sbin/zabbix_agent
在server端测试
依次添加
创建图形
添加完成,点击应用
监测--》主机--》图形
开启gns,设置桥接
连接交换机,运行enable进入用户模式。
Switch>enable
Switch#
#运行sh snmp查看SNMP协议是否开启
Switch#sh snmp
#运行config t进入全局配置模式
Switch#config t
sw1(config)#int vlan 1
sw1(config-if)#ip address 192.168.100.10 255.255.255.0
sw1(config-if)#no shutdown
#设置只读字符串,public为团体名称,ro为只读
Switch#snmp-server community public ro
#启用snmp陷井,允许交换机将所有类型SNMP Trap发送出去
Switch#snmp-server enable traps snmp
#SNMP采用版本2,public作为团体名称,192.168.100.5为zabbix-server地址
Switch#snmp-server host 192.168.100.5 version 2c public
#指定SNMP Trap的接收者为192.168.100.5(zabbix-server地址),发送Trap时采用public作为团体名称
Switch#snmp-server host 192.168.100.5 traps public
#设置vlan1虚接口IP地址做为snmp trap信息的发布地址
Switch#snmp-server trap-source vlan 1
配置--》主机--》创建主机
添加主机和宏
创建完成后添加图形
查看效果
登录QQ邮箱
点击设置--》账户 --》开启POP3/SMTP(按要求操作)
配置server.zabbix.com端的邮件
#yum安装
yum -y install dos2unix.x86_64 mailx
#编写配置文件,在此文件末尾添加,指定接收邮件邮箱地址,指定邮箱服务器地址,指定接收邮件邮箱地址的授权码
vi /etc/mail.rc
#自己的QQ邮箱
set [email protected] smtp=smtp.qq.com
#smtp-auth码写刚刚获取到的码
set [email protected] smtp-auth-password=qpfncrsdbhnebifj
set smtp-auth=login
#重启zabbix
killall -9 zabbix_agent
/usr/local/zabbix/sbin/zabbix_agent
#最后输入测试
echo "测试内容" |mail -s "测试标题" [email protected]
#编写脚本
vim /usr/local/zabbix/share/zabbix/alertscripts/2.sh
#!/bin/bash
#export.UTF-8
title=$2
sendto=$1
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
/bin/mail -s "$title" "$sendto" <$FILE
#给权限
chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/2.sh
chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/2.sh
touch /tmp/mailtmp.txt
chmod 777 /tmp/mailtmp.txt
chown zabbix:zabbix /tmp/mailtmp.txt
#测试
/usr/local/zabbix/share/zabbix/alertscripts/2.sh [email protected] "测试标题2" "测试内容2"
配置zabbix web网站进行监控项的邮件报警,每一张图片后附带解释和注意事项,大体步骤分为 监控--创建报警媒介类型--更新用户使用的报警媒介类型--创建动作(根据触发器触发)--验证;
创建报警媒介类型:
输入创建的报警媒介类型的名称,指定类型为脚本的方式,并且输入zabbix_server端/usr/local/zabbix/share/zabbix/alertscripts目录下的脚本名称,确保脚本的归属是zabbix,并且脚本的权限是777,下边设置脚本参数,也就是发送邮件的语法:脚本 收件人 标题 内容,必须严格按照此标准填写;
选择Messages templates,点击添加
主题写:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
配置完成后点添加,更新,之后在管理--》用户中配置用户所使用的报警媒介类型以及接收邮件的邮箱;
创建动作,也就是发送邮件的动作;
输入动作名,动作名最好为英文,可以选择触发这个动作的条件(可以选择触发器=触发器的名称或者选择触发器似触发器名称),作为条件,如若如图不选择触发器的条件,那么任何消息都会提示到邮箱;
恢复操作添加
配置完这两个后,默认操作步骤持续时间改为60s,点击添加
开始测试邮件报警
#测试
dd if=/dev/zero of=/opt/1.txt bs=1G count=5
配置-->自动发现-->创建发现规则:
#server端和新机子编写hosts文件,互相加入
192.168.100.5 server.zabbix.com
192.168.100.2 agent.zabbix.com
192.168.100.6 lyh.zabbix.com
#修改名称
hostnamectl set-hostname lyh.zabbix.com
#安装依赖
yum -y install libxml2-devel libcurl-devel pcre-devel
#传输zabbix安装包
scp zabbix-6.0.5.tar.gz [email protected]:/root/zabbix-6.0.5.tar.gz
#解包
tar zxvf zabbix-6.0.5.tar.gz
#进入zabbix目录 配置、编译、编译安装
cd zabbix-6.0.5/
./configure --prefix=/usr/local/zabbix --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make && make install
#编写配置文件,内容全部删除,手动添加
LogFile=/tmp/zabbix_agentd.log
Server=192.168.100.5
ServerActive=192.168.100.5
Hostname=lyh.zabbix.server
#创建用户和组
groupadd zabbix
useradd -r -g zabbix zabbix
#修改权限
chown -R zabbix:zabbix /usr/local/zabbix/
#启动zabbix_agent
/usr/local/zabbix/sbin/zabbix_agentd
#查看端口号
netstat -anpt |grep 10050
添加完成
当触发器达到报警阈值时,我们可以根据相关的报警来执行相关的命令使故障达到自我修复的效果
例如 zabbix_agent端的ssh端口关闭并执行重启ssh的例子
#修改配置文件(6.0之前的写法)
vim /usr/local/zabbix/etc/zabbix_agentd.conf
#添加
EnableRemoteCommands=1
------------------------------------------------------
#6.0的写法在agent端
vim /usr/local/zabbix/etc/zabbix_agentd.conf
#加入
AllowKey=system.run[*]
LogRemoteCommands=1
#给zabbix用户提权
echo "zabbix ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/zabbix
重启zabbix_agent
killall -9 zabbix_agent
/usr/local/zabbix/sbin/zabbix_agent
#测试,在server端get一下
zabbix_get -s 192.168.100.2 -k "system.run[sudo df -h]"
#编写脚本
vim /root/restart_sshd.sh
#加入
#!/bin/bash
systemctl restart sshd
#给予执行权限
chmod +x /root/restart_ssh.sh
添加脚本
给zabbix-agent创建ssh监控项
创建触发器
创建动作
配置完成后点击添加-----应用
测试:
在agent端杀掉sshd进程
查看动作日志
查看sshd状态