|NO.Z.00011|——————————|^^ 构建 ^^|——|Zabbix&Server邮件告警&Nginx字段监控.V6|
一、批量在服务端向client端发布命令:
### --- 在zabbix服务端批量向client发送命令查看agent的进程:
[root@localhost ~]# ansible zabbix -m shell -a " ps -ef |grep zabbix_agent"
[root@localhost ~]# ansible zabbix -m shell -a "/etc/init.d/zabbix_agentd start"
### --- 编辑配置文件
[root@localhost ~]# vim /etc/ansible/ansible.cfg
command_warnings = False
host_key_checking = False
二、zabbix-agent邮件告警
### --- 配置邮件报警,必须有哪些必备的组件,操作和步骤:
~~~ 发送邮件的服务器(SMTP):
~~~ 发送邮件的发件件人
~~~ 接收邮件的收件人
~~~ 发送邮件的标题,内容信息
~~~ 满足触发器才发送邮件(服务异常,宕机)
三、配置E-mail电子邮件告警:
1、配置发件服务器和发件人:告警 ——> 报警媒介类型 ——> E-mail配置(图一)

2、配置收件人:配置 ——> 用户 ——> Admin ——> 报警媒介(图二)

3、发送邮件的标题,
### --- 发送邮件的标题,内容信息、满足触发器才发送邮件(服务异常,宕机)
~~~ 配置 ——> 动作 ——> 触发器 ——> Report problems to Zabbix administrators
~~~ ——> 动作(图三) ——> 操作(图四) ——> 恢复操作(图五)


### --- 主题模板
故障{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}

### --- 主题模板
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
### --- 对http服务器进行压测
[root@localhost ~]# while sleep 1;do ab -c 1000 -n 10000 http://127.0.0.1/done
四、环境说明:
### --- 环境说明:
~~~ 192.168.1.59为zabbix_server服务器
~~~ 192.168.1.80为docker容器下运行zabbix-agent-nginx
### --- 自己定义一个脚本,配置触发器,检测nginx服务:监控关键词:
~~~ 所以网站监控关键词证明网页没有被篡改。
### --- 在docker容器下运行一个nginx服务:
[root@localhost ~]# docker run -tid --net=none --name=centos7-nginx --privileged=true centos7-ssh:zabbix-agent /sbin/init
[root@localhost ~]# pipework br0 centos7-nginx 192.168.1.80/24@192.168.1.1
[root@localhost ~]# docker exec -it centos7-nginx /bin/bash
### --- 安装nginx:
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# ll /etc/yum.repos.d/|grep -aw epel
[root@localhost ~]# yum install -y nginx
[root@localhost ~]# curl 192.168.1.80 // 在zabbix server服务端测试
[root@localhost ~]# curl 192.168.1.80 |grep -oi welcome // 查看有没有welcome字段
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4057 100 4057 0 0 1190k 0 --:--:-- --:--:-- --:--:-- 1980k
Welcome
[root@localhost ~]# curl -s 192.168.1.80 |grep -oi welcome // 静默模式,可以用-s给盖掉
Welcome
[root@localhost ~]# curl -s 192.168.1.80 |grep -oic "welcome" // 反馈值为1;表示nginx这个页面关键词有这个代码1个,是2表示有2个。
1 // 监控关键词证明我们网站代码没有被篡改。
### --- 在客户端配置zabbix_agent nginx监控字段:
### --- 后面的结果可以传递给key值
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.59
ServerActive=192.168.1.59
Hostname=192.168.1.80
UserParameter=check_nginx_word,/usr/bin/curl -s 192.168.1.80 |grep -oic "welcome"
[root@557c120d5b48 ~]# /etc/init.d/zabbix_agentd restart
[root@localhost bin]# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.80 -k check_nginx_word //在服务端调用key值
1
五、在front-web平台添加主机,监控项,触发器。
1、配置 ——> 主机 ——> 选中192.168.1.80 ——> 创建监控项(图一)


2、此刻没有nginx的图形,
### --- 此刻没有nginx的图形,
~~~ 配置 ——> 主机 ——> 选中192.168.1.80 ——> 图形 ——> 创建图形(图二)
~~~ ——> 检测 ——> 图形 ——> 可以查看到有nginx关键词监控(显示数据是1)

### --- 可以在该目录下更改welcome字段的数量来测试监控数据。
[root@557c120d5b48 nginx]# vim /usr/share/nginx/html/index.html
3、此刻还是不会报警,我们需配置触发器:
### --- 此刻还是不会报警,我们需配置触发器:
~~~ 配置 ——> 主机 ——> 选中192.168.1.80 ——> 创建触发器
~~~ 当nginx中welcome的值为0的时候,就会触发告警,收到邮件。


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv003-zabbix
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」