使用 Zabbix 监控私有信息-邮件报警


手套
手套 2022-09-27 09:45:47 50222
分类专栏: 资讯

  • 实验环境
  • Zabbix-Server     192.168.2.3    CentOS 7.6    主服务器
    Zabbix-Proxy      192.168.2.4    CentOS 7.6    代理服务器
    Zabbix-Agent      192.168.2.5    CentOS 7.6    Web 服务器
    Zabbix-Agent      192.168.2.6    CentOS 7.6    Mysql 服务器
     
  • 首先在 192.168.2.5 上 配置 Zabbix 监控 Apache 服务
  • yum -y install httpd
    启用 Apache 服务器状态,开启 Apache 的 server-status

  • vim /etc/httpd/conf/httpd.conf     
     
  • 在文件最后插入以下内容

<location /server-status>
        SetHandler server-status
        Order allow,deny
        Allow from 127.0.0.1 192.168.2.0/24
</location>

注:允许访问 status 页面的主机,在生产环境中,可以直接固定为 zabbix-server 端的 IP 地址或者 zabbix 代理地址。

  • zabbix 关联 apache 模板
  • 配置 -----   主机  ----- 模板

  • 如果长时间获取不到数据,重启 proxy 服务
  • systemctl restart zabbix-proxy


  • 配置 Zabbix 监控 MySQL
  •  mysql 数据库配置监控用户
    Zabbix 默认提供了 MySQL 的监控模板,我们直接使用即可。
  • 配置 Zabbix 监控 mysql 服务的过程:
    1、配置 mysql 性能监控页面。创建一个 mysql 用户,让 agent 使用此用户来获得 mysql 数据
    2、在 zabbix 平台上,给被监控主机上关联 mysql 监控模板 
    3、查看最新监控数据数据库用户授权
  • 在 192.168.2.6 配置数据库用户授权

  • 注:usage 权限:该权限只能用于数据库登录,不能执行任何操作。
  • 拷贝监控配置文件模板
  •  cp /usr/share/doc/zabbix-agent-5.0.13/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/

  • 注:这里记录了,zabbix-agent 要对 mysql 监控的数据。 模板文件中提示我们需要创建.my.cnf 配置文件, 我们直接在数据库的/etc/my.cnf.d/client.cnf 文件中,添加 zabbix 监控 mysql 使用的帐号就可以了。
  • 建立数据库和 zabbix 的链接信息
    vim /etc/my.cnf.d/client.cnf

    [client]
    user=zabbix                       添加之前授权的用户和密码
    password=123456

  • 注:MySQL 用户设置密码后,只要在 client 字段下添加用户名和密码就可以免密码登录。每次登录MySQL 的交互界面,只需键入 mysql 命令,即可默认将 host, user, password 的值根据 client.cnf中的内容传给 mysql 命令,进行 mysql 的登录操作。

  • 在 zabbix server 单独给 192.168.2.6 主机增加一个 mysql 监控模版

  • 如果长时间收不到信息
  • 依次重启 mysqld  -----   zabbix-agent    --------   zabbix-proxy

  • 对 mysql 进行压力测试 :
    mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况。
    mysqlslap -uroot -p --concurrency=100 --number-of-queries=1000 --number-int-cols=5 --number-char-cols=20 --auto-generate-sql
  • 参数说明:
    --concurrency=100 指定同时有 100 个客户端连接; concurrence [kənˈkʌrəns] 同时,并

    --number-of-queries=1000 指定总的测试查询次数(并发客户端数 * 每个客户端的查询次
    数)
    --auto-generate-sql 作用是自动生成测试 SQL。自动测试时,创建的表结构非常简单,只有两列,实际的产品环境肯定会更复杂,可以使用参数指定列的数量和类型。
    –number-int-cols=5 指定生成 5 个 int 类型的列
    –number-char-cols=20 指定生成 20 个 char 类型的列

  • 结果中各项含义:
    Average number of … 运行所有语句的平均秒数
    Minimum number of … 运行所有语句的最小秒数
    Maximum number of … 运行所有语句的最大秒数
    Number of clients … 客户端数量
    Average number of queries per client 每个客户端运行查询的平均数


  • 使用 163 邮件服务器实现自动邮件报警功能

  • 邮件服务可以使用系统自带的邮件服务或第三方邮件服务来发送警告邮件。
    使用 163 邮件服务器发送邮件,这样更加稳定,而且不会被当成垃圾邮件。
  • 首先安装 mailx 组件并配置上 163 邮箱的帐号
    yum install mailx -y
    然后编辑 mailx 的配置文件
    vim /etc/mail.rc
    在最末尾添加如下信息:
    set from=hengsheng521@163.com
    set smtp=imap.163.com
    set smtp-auth-user=hengsheng521@163.com
    set smtp-auth-password=xxxxx
    set smtp-auth=login

  • set from=hengsheng521@163.com 表示邮件发送方,用于 zabbix 服务端转发邮件到指定邮箱
  • set smtp-auth-password=xxxxxx 注意:此为 163 邮箱设置的客户端授权密码,不是邮箱密码
  • 163 邮箱授权码示意图

  • 保存退出后测试邮件是否能够正常发送出去
    echo "zabbix test mail" |mailx -s "zabbix" hengsheng521@163.com

  • 创建报警媒介类型

  • 配置报警媒介,使用脚本发送邮件。名称: 163 邮件报警 

  • 给 zabbix 用户添加报警邮箱
  • 设置报警用户(zabbix 触发报警是发送给 zabbix 用户所绑定的邮箱。所以要在用户中配置相关报警媒介)

  • 创建报警动作
    动作由触发器进行触发,例如:192.168.2.5 c7_2_5 主机宕机,监控项检测不到数值后触发器就会触发动作。
    注意:这里的事件源是触发器。是由触发器触发的动作。

  • 修改操作,邮件内容为:
    主题:故障{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}

    注:TRIGGER.SEVERITY 触发严重性 ; severity [sɪ'verəti] 严重程度 ;

继续添加:恢复操作

默认接收人:已恢复!{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}

  • 点击添加

  • 测试邮件发送
  • 重启 zabbix-server
  • systemctl restart zabbix-server

  • 测试,关闭 192.168.2.5 上的 zabbix 客户端服务 zabbix_agentd
    systemctl stop zabbix-agent

  • 测试发送邮件完成
  • 使用 stress 工具压力测试 cpu 并触发告警
  • yum install -y epel-release
    yum install stress -y
  • tress 参数解释
    -? 显示帮助信息
    -v 显示版本号
    -q 不显示运行信息
    -n 显示已完成的指令情况
    -t --timeout N 指定运行 N 秒后停止
    --backoff N 等待 N 微妙后开始运行
    -c 产生 n 个进程 每个进程都反复不停的计算随机数的平方根,测试 cpu
    -i 产生 n 个进程 每个进程反复调用 sync(),sync()用于将内存上的内容写到硬盘上,测试磁

    -m --vm n 产生 n 个进程,每个进程不断调用内存分配 malloc()和内存释放 free()函数 ,
    测试内存
    --vm-bytes B 指定 malloc 时内存的字节数 (默认 256MB)
    --vm-hang N 表示 malloc 分配的内存多少时间后在 free()释放掉 
    -d --hadd n 产生 n 个执行 write 和 unlink 函数的进程
  • -hadd-bytes B 指定写的字节数

--hadd-noclean 不 unlink
注:时间单位可以为秒 s,分 m,小时 h,天 d,年 y,文件大小单位可以为 K,M,G

  • 产生 6 个 cpu 进程, 5分钟秒后停止运行
    stress -c 6 -v -t 5m 
    再打开一个终端,使用 top 命令查看,1 核 cpu 已经占满 100%

  • 可以看到 5 分钟内 cpu 负载达到预设值会发出告警

  • 添加 nginx 监控


  • 添加对 KeepAlived 和 Haproxy 的监控
  • 在 agent 端 编辑脚本
  • mkdir /etc/zabbix/scripts
  • vim /etc/zabbix/scripts/check_keepalived.sh 
    !/bin/bash

    if [[ `ip address show dev ens33 |grep -E "192.168.2.168/32|192.168.2.169/32"|wc -l` == "0" ]]; then
            echo "0";
    else
            echo "1";
    fi

  • chmod +x /etc/zabbix/scripts/check_keepalived.sh

  • vim /etc/zabbix/zabbix_agentd.conf
  • 在末尾添加
  • UnsafeUserParameters=1
    UserParameter=check_keepalived,/etc/zabbix/scripts/check_keepalived.sh

  • 保存重启 zabbix-agent 服务
  • 在 server 端检测
  • zabbix_get -s 192.168.2.6 -k check_keepalived

  • 在 web 界面添加 监控项

  •  点击添加

  •  添加触发器

 

  •  测试 停止 2.6 的 keepalived 服务

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux17938 人正在系统学习中

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10540
赞同 0
评论 0 条
手套L0
粉丝 0 发表 8 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2959
【软件正版化】软件正版化工作要点  2878
统信UOS试玩黑神话:悟空  2843
信刻光盘安全隔离与信息交换系统  2737
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1270
grub引导程序无法找到指定设备和分区  1235
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
点击报名 | 京东2025校招进校行程预告  164
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!