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邮箱后点击右上角"账号与安全"


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

    可以测试一下


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

    继续做完成自动化告警


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

    邮箱里也收到了
相关推荐
小安运维日记15 分钟前
Linux云计算 |【第三阶段】PROJECT1-DAY1
linux·运维·云计算·apache
pyliumy33 分钟前
rsync 全网备份
linux·运维·服务器
sorel_ferris1 小时前
Ubuntu-24.04中Docker-Desktop无法启动
linux·ubuntu·docker
ggb19991 小时前
【python的坑】vpn下,python request报错 check_hostname requires server_hostname
linux·运维·服务器
小O_好好学1 小时前
vi | vim基本使用
linux·编辑器·vim
-SGlow-1 小时前
Linux相关概念和重要知识点(4)(自举、vim)
linux·运维·vim
多多*2 小时前
OJ在线评测系统 登录页面开发 前端后端联调实现全栈开发
linux·服务器·前端·ubuntu·docker·前端框架
王哲晓3 小时前
Linux通过yum安装Docker
java·linux·docker
gopher95113 小时前
linux驱动开发-中断子系统
linux·运维·驱动开发
码哝小鱼3 小时前
firewalld封禁IP或IP段
linux·网络