SRE--第十周

1. zabbix 架构原理,及常用组件及用途分析

在这里插入图片描述
Zabbix-server
Zabbix-server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器

Zabbix-agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给Zabbix server。从Zabbix5.0开始支技Zabbix Agent2

Zabbix-proxy
Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据
Zabbix Proxy 在 Zabbix 的部署是可选部分
Zabbix Proxy 的部署可以很好的分担单个Zabbix server的负载
Zbbix Proxy必须是单独的数据库和zabbix-server数据库分来

WEB 界面
WEB 界面是 Zabbix server 的一部分,用于实现展示和配置的界面通常(但不一定)和 Zabbix server 运行在同一台物理机器上基Apache(Nginx)+PHP 实现,早期只支持LAMP架构,从Zabbix5.0开始支持LNMP
web界面从数据库读取数据进行展示

数据库
所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中
可以支持MySQL,PostgreSQL,Oracle 等多种数据库

Java 网关(zabbix-java-gateway)
Zabbix 要监控 tomcat 服务器和其它JAVA程序,需要使用 Java gateway 做为代理,才能从JAVA程序中获取数据

2. 监控LNMP架构,并配置报警升级

  • 目的:0-5分钟不报警执行重启应用,5-30分钟通知运维,30-60分钟短信通过总监
  • 环境:准备一台主机开启nginx服务(80端口),zabbix监控80端口,并做报警

配置:
1)web服务器:nginx服务开启,安装agent

[root@nginx ~]# systemctl status nginx
#安装agnet
[root@nginx ~]#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
[root@nginx ~]# yum -y install zabbix-agent
#agent配置文件指定zabbix-server
[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.110.221
#启动
[root@nginx ~]# systemctl start zabbix-agent

2)zabbix-web添加主机,创建监控项
创建主机
在这里插入图片描述
创建监控项(实际建议使用模板,为方便实验直接添加监控项)
在这里插入图片描述
查看状态
1—>up
0—>down
在这里插入图片描述

3)开启邮件发邮件授权
163邮箱开启邮件告警 mail.163.com
在这里插入图片描述在这里插入图片描述
发送短信授权后,记录好授权码!
在这里插入图片描述
4)zabbix-web配置媒介
配置报警媒介类型(邮箱设置)
在这里插入图片描述
定义消息模板
在这里插入图片描述

web主机创建触发器(检测80端口)
在这里插入图片描述
选择用户添加报警媒介(邮件发给谁)
在这里插入图片描述
在这里插入图片描述
5)添加告警动作
客户端主机开启zabbix-agnet远程命令功能

[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.conf
AllowKey=system.run[*]
[root@nginx ~]# systemctl restart zabbix-agent

在客户端授权zabbix用户sudo(方便zabbix在客户端执行命令)

[root@nginx ~]# vim /etc/sudoers
zabbix  ALL=(ALL)       ALL

按以下创建新动作
添加动作–动作–添加条件
在这里插入图片描述
添加动作–操作
故障自愈(重启应用)
在这里插入图片描述
如重启仍未恢复,超5分钟通知运维
在这里插入图片描述
如30分钟仍未解决,通知cto
在这里插入图片描述
端口告警第一时间重启,若重启不生效5分钟后通知运维,若30分钟仍未解决通知cto
在这里插入图片描述

3. zabbix api批量添加多个主机,要求一些不走代理,一些支持走代理

5.总结zabbix自定义监控项,基于自定义监控项监控nginx

5.1自定义监控项总结

当zabbix系统自带监控项不满足当前监控需求,可以自定义监控项,但需要遵循一定的格式

  • 添加自定义项命令如下(在agent的主配置文件或子配置文件配置)
UserParameter=<key>,<shell command>
<key>:监控项名字 <shell command>:获取监控数据的命令,以逗号分隔
  • key 必须唯一。注意大小写是敏感的, Key名允许的字符如下
0-9a-zA-Z_-.
  • Command:命令用于生成key对应的值。可以在命令中使用位置引用$1 …$9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中包含的参数,并相应地替换$1,…,$9。$0会替换为完整的原始命令(在对$0,…,$9执行替换之前的命令)运行。不管位置参数($0,…,$9)是用双引号(“ )还是单引号( ’ )括起来,都会解析位置引用

5.2 使用自定义监控项监控nginx页面是否正常访问

1)nginx服务器写一个脚本,使用curl检测nginx页面访问,并返回up/down两状态

[root@nginx ~]# vim /etc/zabbix/script/nginx_stat.sh
#!/bin/bash
nginx_status=$(curl http://127.0.0.1 &>/dev/null || echo $?)

if [[ ${nginx_status} -eq 0 ]];then
        echo up
else
        echo down
fi

2)在nginx服务器安装zabbix-agent,在agent配置文件配置自定义监控项

#检测页面是否可访问,执行nginx页面状态检测脚本
[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx.stat,bash /etc/zabbix/script/nginx_stat.sh

[root@nginx ~]# systemctl restart zabbix-agent

3)web页面添加监控
在对应主机下添加监控项
在这里插入图片描述
4)查看数据
在这里插入图片描述

5.3 总结自定义监控项配置

1.被监控主机(agent)定义添加监控项在/etc/zabbix.agent.d/xxx.conf ,输入自定义监控项目内容UserParameter=<key>,<shell command>  重启生效
2.Zabbix-server测试被监控主机自定义监控项是否生效(zabbix_get -s 主机 -k 监控项key)
3.zabbix-Web 创建模板
4.zabbix-Web 在新建模板添加自定义监控项
5.zabbix-Web 模板关联至主机
6.zabbix-Web 查看主机图形

6. 基于zabbix实现邮件或微信告警。

6.1 网易邮箱开启邮件通知功能

https://mail.163.com
在这里插入图片描述
在这里插入图片描述
开启需要短信验证,发送短信授权后,记录好授权码!
在这里插入图片描述

6.2创建报警媒介类型实现发信人功能

1)在web页面创建报警媒介 管理–报警媒介类型
在这里插入图片描述
2)定义消息模板
在这里插入图片描述
可以参考使用以下模板

# 问题
主题: 告警: {EVENT.NAME}
告警主机:{HOST.NAME1}
告警服务: {ITEM.NAME1}
告警Key1: {ITEM.KEY1}{ITEM.VALUE1}
告警Key2: {ITEM.KEY2}{ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}

# 恢复 Problem Recovery
主题: 恢复: {EVENT.DURATION}: {EVENT.NAME}
恢复主机:{HOST.NAME1}
恢复服务: {ITEM.NAME1}
恢复Key1:{ITEM.KEY1}{ITEM.VALUE1}
恢复Key2: {ITEM.KEY2}{ITEM.VALUE2}

3)测试邮件发送是否正常
在这里插入图片描述在这里插入图片描述

6.3给指定用户添加报警媒介实现收件人功能

管理–用户–选中用户–报警媒介
在这里插入图片描述

6.4创建动作

检测虚拟机的80端口作为触发器
配置–动作–动作
添加触发条件
在这里插入图片描述
配置–动作–操作
配置发送次数,和收件人
在这里插入图片描述
在这里插入图片描述

将虚拟机80端口down了,查看是否告警
在这里插入图片描述

7 总结zabbix自动发现监控

2种自动添加监控的方法

  • zabbix网络发现
    当众多的服务器都已经安装了agent或者snmp后,利用自动发现功能,Zabbix server 可以自动扫描预先
    配置好的ip段,自动添加主机,自动关联模板,自动加到主机组里等等
    但自动发现效率比较低,严重消耗Zabbix Server资源和网络带宽,大规模环境中较少使用

  • zabbix自动注册
    此方式和自动发现不同,是由Active agent主动发起请求zabbix server将这些agent加到主机里。
    注意: Agent 必须使用主动模式才支持自动注册
    自动注册由于比自动发现效率更好,Zabbix Server资源消耗更少,更适合大规模及云环境IP地址不固定的
    场景使用

如果要实现自动添加监控,建议使用自动注册,自动注册是agent主动避免消耗zabbix-server的性能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值