Zabbix 5.0实战应用及企业案例

Zabbix 5.0实战应用

1.zabbix实战应用

web界面介绍:

主机------->监控项------>模板------>触发器----->执行动作----->告警媒介

1.1添加主机

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2自定义监控项

客户端自定义监控项取值

服务端web获取监控项的值

1.通过shell命令获取到关键数据
2.将命令与key名在配置文件中定义好
3.服务端通过zabbix-get命令测试获取键值对

#自定义监控登录用户数
agent机器中:
[root@zabbix-server ~]# w | awk 'NR==1{print $6}'
3
zabbix-server机器中:
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agent2.conf
UserParameter=User_num,w | awk 'NR==1{print $6}'
[root@zabbix-agent ~]# systemctl restart zabbix-agent2

#在zabbix-server中测试取值是否成功
需要用到zabbix_get命令,安装一下
[root@zabbix-server ~]# yum install zabbix-get -y
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k User_num
3

自定义监控项

在这里插入图片描述

在这里插入图片描述

1.3企业案例(监控nginx服务运行状态)

通过脚本添加监控项

#安装nginx
yum install nginx -y
#启动nginx
systemctl start nginx
systemctl enable nginx

#配置nginx
[root@zabbix-agent conf.d]# cat /etc/nginx/conf.d/nginx_status.conf 
server {
       listen 81;
       server_name localhost;

location /status {
         stub_status on;
}
}
#重新启动
systemctl restart nginx
#测试一下
[root@zabbix-agent conf.d]# curl 192.168.10.67:81/status
Active connections: 1 
server accepts handled requests
 2 2 2 
Reading: 0 Writing: 1 Waiting: 0



#编写脚本
[root@zabbix-agent scripts]# cat /etc/zabbix/zabbix_agent2.d/scripts/nginx_status.sh
#!/bin/bash
NGINX_PORT=81  
NGINX_COMMAND=$1
nginx_active(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Active/ {print $NF}'
}
nginx_reading(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Reading/ {print $2}'
}
nginx_writing(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Writing/ {print $4}'
       }
nginx_waiting(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Waiting/ {print $6}'
       }
nginx_accepts(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $1}'
       }
nginx_handled(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $2}'
       }
nginx_requests(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $3}'
       }
  case $NGINX_COMMAND in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
      *)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
    esac

[root@zabbix-agent scripts]# chmod +x /etc/zabbix/zabbix_agent2.d/scripts/nginx_status.sh

#执行脚本测试取值是否正确
[root@zabbix-agent ~]# cd /etc/zabbix/zabbix_agent2.d/scripts/
[root@zabbix-agent scripts]# sh +x nginx_status.sh
USAGE:nginx_status.sh {active|reading|writing|waiting|accepts|handled|requests}
[root@zabbix-agent scripts]# sh +x nginx_status.sh active
1
[root@zabbix-agent scripts]# sh +x nginx_status.sh reading
0
[root@zabbix-agent scripts]# sh +x nginx_status.sh writing
1
[root@zabbix-agent scripts]# sh +x nginx_status.sh waiting
0
[root@zabbix-agent scripts]# sh +x nginx_status.sh accepts
34
[root@zabbix-agent scripts]# sh +x nginx_status.sh handled
35
[root@zabbix-agent scripts]# sh +x nginx_status.sh requests
36

#写zabbix-agent2监控配置文件
[root@zabbix-agent zabbix_agent2.d]# cat /etc/zabbix/zabbix_agent2.d/nginx_status.conf 
UserParameter=Ngx_status[*],/etc/zabbix/zabbix_agent2.d/scripts/nginx_status.sh $1

#重启zabbix-agent2
[root@zabbix-agent zabbix_agent2.d]# systemctl restart zabbix-agent2

#在zabbix-server段测试一下
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k Ngx_status
USAGE:/etc/zabbix/zabbix_agent2.d/scripts/nginx_status.sh {active|reading|writing|waiting|accepts|handled|requests}
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k Ngx_status[reading]
0
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k Ngx_status[waiting]
0
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k Ngx_status[handled]
39

添加监控项

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到此,nginx状态监控就做完了

1.4添加触发器

1.查看模板自带触发器,修改主机名进行触发报警

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#修改主机名
[root@zabbix-agent ~]# hostnamectl set-hostname ttt
[root@zabbix-agent ~]# bash
[root@ttt ~]# 

在这里插入图片描述

如图已触发报警

2.自定义触发器(登录用户数大于3个就报警)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试一下
在这里插入图片描述

在这里插入图片描述

我们创建的触发器只有出发报警,没有恢复报警,添加一个恢复报警

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这种监控登录用户数不严禁,因为一个人也可以开多个终端,所以我们在加一个监控项,用多个条件去做监控项

#先用命令进行取值
[root@zabbix-agent ~]# w | awk 'NR>3{print $3}' | sort -r | uniq -c | wc -l
2

#先删除之前的这个配置
vim /etc/zabbix/zabbix_agent2.conf
UserParameter=User_num,w |awk 'NR==1{print $6}'

#写新的配置文件
[root@zabbix-agent ~]# cat /etc/zabbix/zabbix_agent2.d/user_num.conf
UserParameter=User_ip,w | awk 'NR>3{print $3}' | sort -r | uniq -c | wc -l
UserParameter=User_num,w |awk 'NR==1{print $6}'

#在zabbix-agent2端测试,没有问题在重启zabbix-agent2
[root@zabbix-agent ~]# zabbix_agent2 -t User_ip
User_ip                                       [s|2]

#重启zabbix-agent2
[root@zabbix-agent ~]# systemctl restart zabbix-agent2
[root@zabbix-agent ~]# systemctl status zabbix-agent2

#在zabbix-server中获取值进行测试
[root@zabbix-server ~]# zabbix_get -s 192.168.10.67 -k User_ip
2

创建监控项

在这里插入图片描述

修改触发器,满足多条件进行触发

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击插入

在这里插入图片描述

选择和(同时满足)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

同时满足两个条件

在这里插入图片描述

2.Zabbix实现邮件报警功能

触发器----->动作(发送邮件)

需要的信息:发件人 收件人 (zabbix5.0必须要有收件人和发件人,且收件人和发件人不可相同)

点击:报警媒介类型中的用户名密码,获取密码

点击:登录qq邮箱—>设置—>账户---->(POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务)全部开启—>生成授权码

在这里插入图片描述

配置发件人信息

在这里插入图片描述

配置收件人(收件人和发件人不能相同)

用户、用户组的概念

创建用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

要给创建的用户超级管理员权限

在这里插入图片描述

配置动作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试一下
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值