Zabbix自定义监控内容实验(带自动报警)

实验前准备

zabbix服务端:192.168.188.17

zabbix客户端:192.168.188.11

  1. 部署zabbix服务端(192.168.188.17)
    zabbix-server 内存至少2G,推荐4G
    (1) 关闭防火墙
    systemctl stop firewalld
    setenforce 0
    (2)获取zabbix下载源
    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    (3)更换zabbix.repo为阿里源,下得快一点
    cd /etc/yum.repos.d
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
    yum clean all && yum makecache
    yum install -y zabbix-server-mysql zabbix-agent
    (4)安装SCL,便于安装高版本php
    yum install -y centos-release-scl
    修改zabbix-front前端源,安装zabbix前端环境到scl环境下
    vim zabbix.repo
    开启安装源

    yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
    (5)安装zabbix所需的数据库,把zabbix服务端所需要的数据库结构直接下载下来
    yum install -y mariadb-server mariadb
    开启
    systemctl start mariadb
    初始化数据库,并设置密码,比如123
    mysql_secure_installation

    创建zabbix所需要的数据库并为zabbix用户授权
    mysql -u root -p123
    create DATABASE zabbix character set utf8 collate utf8_bin;
    GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
    flush privileges;
    查询Zabbix数据库文件的位置

    解压Zabbix自带的数据库的建库语句压缩包并导入到mariadb数据库中
    zcat /usr/share/doc/zabbix-server-mysql-5.0.40/create.sql.gz | mysql -uroot -p123 zabbix
    (6)修改zabbix server配置文件
    vim /etc/zabbix/zabbix_server.conf
    改数据库密码

    修改zabbix的php配置文件
    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
    改时区

    (7)启动zabbix相关服务
    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    (8)测试
    浏览器访问:http:192.168.188.17/zabbix
    点击下一步

    设置数据库的密码zabbix

    安装完成后点击finish然后登录,默认账号为Admin,密码为zabbix

    登录后点击左侧菜单栏User settings,在Language中选择chines(zh_CN),再点击Update更新

    (9)如果中文乱码怎么办?
    在虚拟机上安装相应的工具
    yum install -y wqy-microhei-fonts
    \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
  2. 部署zabbix客户端(192.168.188.11)
    (1)关闭防火墙
    systemctl stop firewalld
    setenforce 0
    (2)客户端和服务端都配置时间同步
    yum -y install ntpdate
    ntpdate -u ntp.aliyun.com

    客户端配置时区,与服务器保持一致
    mv /etc/localtime{,.bak} 这一步就是在备份
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    (3)设置zabbix的下载源,安装zabbix-agent2
    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    cd /etc/yum.repos.d
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
    yum install -y zabbix-agent2
    (4)修改agent2配置文件
    vim /etc/zabbix/zabbix_agent2.conf
    指定zabbix服务端的IP地址

    指定zabbix服务端的IP地址

    指定当前zabbix客户端的主机名

    把当前主机的主机名也改一下
    hostnamectl set-hostname zbx-agent01
    bash

    (5)启动zabbix-agent2
    systemctl start zabbix-agent2
    查看端口,是否正常启动
    netstat -anpt | grep zabbix

    (6)在服务端验证zabbix-agent2的连通性
    安装zabbix主动获取数据的命令
    yum -y install zabbix-get
    获取数据
    zabbix_get -s '192.168.10.21' -p 10050 -k 'agent.ping'
    zabbix_get -s '192.168.10.21' -p 10050 -k 'system.hostname'

    (7)在Web页面中添加agent主机
    左侧菜单栏配置中点击主机,点击创建主机,如下配置

    再点击上方菜单栏中的模板,链接新模板后点击添加

    注意看只有可用性那一栏有绿色亮着的才是能用的
  3. 自定义监控内容
    假设需要限制登录人数,当登录人数超过3个就发出警报信息
    (1)在客户端上定义key
    我们要先知道获取登录人数的命令是什么
    who | wc -l
    可以看到我这台客户端已经有三个登录用户了

    创建zabbix的监控项配置文件,用于自定义key
    vim /etc/zabbix/zabbix_agent2.conf
    表示将自定义的监控项配置文件创建在zabbix_agent2.d目录中

    在下面定义一下自定义监控项的格式,默认就是这个格式

    在zabbix_agent2.d目录中创建自定义配置项的文件
    cd /etc/zabbix/zabbix_agent2.d/
    这个文件名字随便取,但必须是.conf后缀
    vim User_login.conf
    里面只需要按定义的格式写一条就行
    UserParameter=login.user,who|wc -l
    这里的login.user就是key,这个名字可以随便取,key对应的value就是后面那条shell command的执行结果

    重启服务
    systemctl restart zabbix-agent2
    (2)先去服务端验证一下这个监控项能不能用,我们这就是通过查看login.user这个key对应的value来监控客户端的登录人数
    zabbix_get -s '192.168.188.11' -p 10050 -k 'login.user'
    能看到确实是三个没问题

    (3)在Web页面创建自定义监控模板,总共五步走
    第一步创建模板


    现在就可以在模板里找到这个模板了

    第二步点击Template Login User创建应用集,应用集是用于管理监控项的



    第三步创建监控项



    第四步创建触发器,触发器就是在监控项满足一定条件时触发警报




    第四点五步创建图形,这一步不是必须的,可以学习一下



    第五步将主机与模板关联起来


    此时就可以看到图表形式的监控了

    (4)为了方便测试我们可以在仪表盘上加一个组件,专门监测客户端


    添加完毕,目前风平浪静

    然后我们再开一个shell,成为第四个登录的用户

    然后就能看到告警了

    关了第四个登录,就会显示已解决的状态

    (5)为了更方便运维,还可以设置邮件报警


    QQ邮箱的授权码怎么获得
    登录QQ邮箱后点击右上角"账号与安全"


    后面按提示操作就可以获得授权码了

    可以测试一下


    点击测试就能收到测试邮件了,说明没问题

    继续做完成自动化告警


    测试一下,再登录一个,触发报警,看看能不能实现自动报警
    仪表盘上有了

    邮箱里也收到了
相关推荐
嵌入式-老费29 分钟前
Linux上位机开发实战(x86和arm自由切换)
linux·运维·arm开发
猪猪侠|ZZXia32 分钟前
# linux有哪些显示服务器协议、显示服务器、显示管理器、窗口管理器?有哪些用于开发图形用户界面的工具包?有哪些桌面环境?
linux·服务器
人间凡尔赛1 小时前
VSCode-Server 在 Linux 容器中的手动安装指南
linux·运维·服务器·docker
Chenyu_3101 小时前
05.基于 TCP 的远程计算器:从协议设计到高并发实现
linux·网络·c++·vscode·网络协议·tcp/ip·算法
板鸭〈小号〉1 小时前
Linux开发工具----vim
linux·运维·vim
五花肉村长1 小时前
Linux-基础开发工具
linux·运维·服务器·开发语言·c++·visualstudio
Java程序之猿1 小时前
Centos 安装docker,docker-compose
linux·docker·centos
ly_zszcyx2 小时前
DeepIn Wps 字体缺失问题
linux·wps
ekkcole3 小时前
centos linux安装mysql8 重置密码 远程连接
linux·centos
chase。3 小时前
Ubuntu 22.04 无法进入图形界面的解决方法
linux·ubuntu·postgresql