zoukankan      html  css  js  c++  java
  • centos7.5搭建zabbix3.4.x以及mysql定制化监控

    一、系统环境
    cat /etc/redhat-release 
    CentOS Linux release 7.5.1804 (Core)

    关闭防火墙及selinux

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    grep SELINUX=disabled /etc/selinux/config
    setenforce 0

    二、数据库安装及配置
    1、MariaDB概述
    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。
    开发这个分支的原因是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

    2、安装mariadb
    yum install mariadb-server mariadb -y
    mariadb数据库的相关命令是:
    systemctl start mariadb #启动MariaDB
    systemctl stop mariadb #停止MariaDB
    systemctl restart mariadb #重启MariaDB
    systemctl enable mariadb #设置开机启动

    三、Zabbix3.4安装及配置

    1、Zabbix3.4安装
    rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
    yum install zabbix-server-mysql zabbix-web-mysql -y

    2、创建数据库
    create database zabbix character set utf8 collate utf8_bin;
    grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

    3、导入数据
    zcat /usr/share/doc/zabbix-server-mysql-3.4.0/create.sql.gz | mysql -uzabbix -pzabbix zabbix

    4、配置数据库用户及密码
    grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
    38:LogFile=/var/log/zabbix/zabbix_server.log
    49:LogFileSize=0
    72:PidFile=/var/run/zabbix/zabbix_server.pid
    99:DBName=zabbix
    115:DBUser=zabbix
    123:DBPassword=zabbix
    314:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    432:Timeout=4
    474:AlertScriptsPath=/usr/lib/zabbix/alertscripts
    484:ExternalScripts=/usr/lib/zabbix/externalscripts
    520:LogSlowQueries=3000

    5、启动zabbix server并设置开机启动
    systemctl enable zabbix-server
    systemctl start zabbix-server

    6、编辑Zabbix前端PHP配置,更改时区
    vim /etc/httpd/conf.d/zabbix.conf
    php_value date.timezone Asia/Shanghai

    7、SELinux配置
    setsebool -P httpd_can_connect_zabbix on
    setsebool -P httpd_can_network_connect_db on

    8、启动httpd并设置开机启动
    systemctl start httpd
    systemctl enable httpd
    四、安装Zabbix Web
    1、浏览器访问,并进行安装

    http://192.168.21.29/zabbix

    这里就先略过了。。。一直下一步

    五、zabbxi-agent安装及配置
    1、安装zabbxi-agent
    yum install zabbix-agent -y

    2、配置zabbxi-agent
    grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf 
    13:PidFile=/var/run/zabbix/zabbix_agentd.pid
    32:LogFile=/var/log/zabbix/zabbix_agentd.log
    43:LogFileSize=0
    97:Server=192.168.21.29
    138:ServerActive=192.168.21.29
    149:Hostname=Zabbix server
    267:Include=/etc/zabbix/zabbix_agentd.d/*.conf

    3、启动zabbxi-agent并设置开机启动
    systemctl enable zabbix-agent.service
    systemctl restart zabbix-agent.service

    到这里zabbix已经部署完毕!!!

     

    接下来是我会根据对mysql的备份是否成功进行监控,我们开始吧!!

     

    首先我们对mysql数据库大小进行统计

    制定以判断文件大小来编写监控脚本 脚本如下:

    #!/bin/bash

    file_path=/backup/mysqldata
    ZABBIX_SENDER=/usr/bin/zabbix_sender
    zabbix_server=192.168.21.29
    zabbix_agent=192.168.20.227


    DuCheck(){
    date=$(date -d "yesterday" +%Y-%m-%d)
    file=$file_path/mysql-$date.sql
    du=$(cd $file_path && du -sm *|grep mysql-$date.sql|awk {'print $1'})  #统计文件大小
    if [[ $du -ge 100 ]] #生产库每天都有新数据产生,备份量会越来越大
    then
    echo 0
    else
    ${ZABBIX_SENDER} -z ${zabbix_server} -s ${zabbix_agent} -k file.check -o "fail" &> /dev/null
    echo 1
    exit 1
    fi
    }


    Sender(){
    if [ $(DuCheck) -eq 0 ]
    then
    ${ZABBIX_SENDER} -z ${zabbix_server} -s ${zabbix_agent} -k file.check -o "sucess" &> /dev/null
    else
    return 0
    fi
    }

    [ $# -eq 0 ] && Sender || echo Usage: $0

    :wq     保存并退出

    在zabbix上需要新建监控模版 监控项 触发器等等

    新建模板“File Check”

    模板中新建监控项“file status check”

     

    新建触发器

     设置返回值如果为fail则触发告警

    绑定主机

    查看检查结果

    运行shell脚本 查看如下:

    设置定时任务,这里我就不写了。

    修改agent的配置文件

    view zabbix_agentd.conf

    UserParameter=file.check.send,/etc/zabbix/script/file_check.sh

     

    重启zabbix-agent服务

    systemctl restart zabbix-agent

     

    至此备份文件检查监控完成了,许还有一些改进,未完待续!!!

  • 相关阅读:
    输出1到100内前五个可以被3整除的数 while for
    Java:运用while()与do....while与for()
    break & continue
    while循环
    for循环例子
    if语句条件
    上位机开发二----第一个程序hallo world
    c语言获取数组长度的三种方法
    halcon标定后畸变校正与测量
    海康相机SDK联合c++标定
  • 原文地址:https://www.cnblogs.com/king-LL/p/10642401.html
Copyright © 2011-2022 走看看