zoukankan      html  css  js  c++  java
  • zabbix-proxy安装部署

    zabbix-proxy安装部署

    环境
    
    zabbixserver 10.0.0.12
    zabbixproxy  10.0.0.13

    1 脚本快速部署

    #!/bin/bash
    # install zabbix-proxy
    # version 1.0
    # author  wangzhen@
    OsVersion=`cat /etc/redhat-release|awk -F "." '{print $1}'|grep -o [0-9]`
    DbPswd=zabbix
    ZabbixServerIp=10.0.0.12
    ProxyConfFile=/etc/zabbix/zabbix_proxy.conf
    ZabbixRepoUrl6=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
    ZabbixRepoUrl7=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    LogFile=$0.log
    
    
    ConfFile() {
    echo "ProxyMode=1
    Server=$ZabbixServerIp
    Hostname=zabbix_proxy
    LogFile=/var/log/zabbix/zabbix_proxy.log
    LogFileSize=1
    PidFile=/var/run/zabbix/zabbix_proxy.pid
    DBHost=localhost
    DBName=zabbix_proxy
    DBUser=zabbix
    DBPassword=$DbPswd
    ConfigFrequency=600
    DataSenderFrequency=1
    Timeout=4
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000" >$ProxyConfFile
    }
    
    
    CheckInstall() {
    
    ##检查端口占用
    [ `lsof -i:10051|wc -l` -ne 0 ] && echo 'prot 10051 already in use .' && exit 1
    ##检查是否已安装
    [`rpm -qa |grep zabbix-server|wc -l` -gt 1 ] && echo 'zabbix server already installed' && exit 1
    
    }
    
    
    ZabbixProxyInstall() {
    ZabbixRepoRpm=`echo $ZabbixRepoUrl | awk -F '/' '{print $NF}'`
    
    #安装zabbix源、aliyun YUM源、zabbix-server、mariadb
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-${OsVersion}.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-${OsVersion}.repo
    wget $ZabbixRepoUrl
    yum localinstall -y $ZabbixRepoRpm
    yum clean all 
    yum makecache
    yum install -y zabbix-proxy-mysql zabbix-get $SqlRpmName
    }
    
    
    MysqlConfigure() {
    systemctl start mariadb.service || /etc/init.d/mysqld start
    mysql <<EOF
    create database zabbix_proxy character set utf8 collate utf8_bin;
    grant all privileges on zabbix_proxy.* to zabbix@localhost identified by "$DbPswd";
    flush privileges;
    EOF
    #导入zabbix数据库
    ZabbixVersion=`rpm -qa|grep zabbix-proxy|awk -F '-' '{print $4}'`
    zcat /usr/share/doc/zabbix-proxy-mysql-${ZabbixVersion}/schema.sql.gz|mysql -uzabbix -p"$DbPswd" zabbix_proxy
    }
    
    
    ZabbixConfgure() {
    cp $ProxyConfFile{,.bak}
    
    ##配置文件修改
    ConfFile
    }
    
    
    Start() {
    systemctl start zabbix-proxy || /etc/init.d/zabbix-proxy start 
    
    
    systemctl enable mariadb ||chkconfig mariadb on
    systemctl enable zabbix-proxy || chkconfig zabbix-proxy on
    }
    
    
    
    Check() {
    netstat -luntp |grep 10051 &>$0.log
    }
    
    
    
    main() {
    case "$OsVersion" in
      6)
        ZabbixRepoUrl=$ZabbixRepoUrl6
        SqlRpmName=mysql-server
        ZabbixProxyInstall
        MysqlConfigure
        ZabbixConfgure
        Start
        Check
        ;;
      7)
        ZabbixRepoUrl=$ZabbixRepoUrl7
        SqlRpmName=mariadb-server
        ZabbixProxyInstall
        MysqlConfigure
        ZabbixConfgure
        Start
        Check
        ;;
      *)
        echo 'OsVersion must be 6 or 7' >>$log
        exit 1
    esac
    }
    
    
    main
     

    2 一步一步部署

    2.1 选用zabbix-proxy-mysql

    curl -O https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    yum localinstall -y zabbix-release-3.4-2.el7.noarch.rpm
    yum install -y zabbix-proxy-mysql zabbix-get

    2.2 安装数据库

    yum -y install mariadb-server
    systemctl start mariadb.service
    

      

     

    2.3 配置数据库

    ## 创建用户
    create database zabbix_proxy character set utf8 collate utf8_bin;
    grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
    ## 导入zabbix信息
    zcat /usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

    2.4 修改proxy的配置文件

    [root@zabbix_proxy server]# egrep -v '^$|^#' /etc/zabbix/zabbix_proxy.conf
    ProxyMode=1
    Server=10.0.0.12
    Hostname=zabbix_proxy_aws
    LogFile=/var/log/zabbix/zabbix_proxy.log
    LogFileSize=1
    PidFile=/var/run/zabbix/zabbix_proxy.pid
    DBHost=localhost
    DBName=zabbix_proxy
    DBUser=zabbix
    DBPassword=distsh
    ConfigFrequency=600
    DataSenderFrequency=1
    Timeout=4
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    
    # Hostname 作为后面添加的代理程序名称,要保持一致
    Server=服务端ip                    #真正的服务端
    ServerPort=18103                #根据个人需要修改,一般可以不改,默认端口是10051,要实现转发的话使用这个选项
    Hostname=153Zabbix proxy                #proxy的hostname,在web端网页配置时需要用到
    DBHost=localhost                 #数据库,使用本地,也可以使用ip,我喜欢使用localhost,因为我授权就是本地,也因为配置ip失败踩过坑
    DBName=zabbix_proxy                #数据库名称,创建zabbix-proxy的mysql的数据库名称
    DBUser=zabbix                    #用户
    DBPassword=zabbix                #密码
    #DBPort=3306                    #当DBHost填写localhost时,默认是使用socket通信的,这里配置一下也无碍
    #HeartbeatFrequency=60                    #心跳线(具体作用网了,看配置文件吧,这个默认就是60)
    ConfigFrequency=600                #这个好像是同步配置文件的时间
    DataSenderFrequency=1                           #这个是proxy端向server端发送数据的时间,单位是秒,几乎等于实时同步
    ProxyMode=1                                        # 0 代表 Proxy 处于主动模式,即:Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
    Server=10.0.0.12                              # Zabbix Server 地址,当 Proxy 处于被动模式时,不需要设置该项 ( 想想也能明白 )
    ServerPort=10051                                   # Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效
    LogFile=/tmp/zabbix_proxy.log                      # Proxy 日志文件位置
    ConfigFrequency=60                                 # Proxy 向 Zabbix Server 请求监控项间隔,单位为 秒
    DataSenderFrequency=60                             # Proxy 向 Zabbix Server 发送监控数据间隔,单位为 秒

    2.5 启动与检查

    #启动
    systemctl restart zabbix-proxy.service

    2.6 修改agent配置指向 proxy

    修改客户端信息
    vim /etc/zabbix/zabbix_agentd.conf
    Server=10.0.0.13            ##Server=proxy的ip
    ServerActive=10.0.0.13      ##ServerActive=proxy的ip
    [root@cache01 ~]# systemctl restart zabbix-agent.service

    2.7 检查测试

    #检查端口
    [root@zabbix_proxy ~]# netstat -lntup |grep zabbix
    tcp        0      0 0.0.0.0:10050     0.0.0.0:*       LISTEN      105762/zabbix_agent
    tcp        0      0 0.0.0.0:10051   0.0.0.0:*         LISTEN      85273/zabbix_proxy 
    tcp6       0      0 :::10050       :::*      LISTEN      105762/zabbix_agent
    tcp6       0      0 :::10051  :::*           LISTEN      85273/zabbix_proxy
    [root@zabbix_proxy ~]# zabbix_get -s 10.0.0.13 -k system.uname
    Linux centos7.5 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64
  • 相关阅读:
    一点点
    第四章:检查产品说明书
    这是一个动画效果,一个圆在桌面上动
    border-image的拉伸和平铺
    用js实现左右阴影的切换
    伪样式:hover ,:active,:focus
    画一个DIV并给它的四个角变成圆形,且加上阴影
    【转】asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
    Full postback triggered by LinkButton inside GridView inside UpdatePanel
    苹果IOS开发者账号的区别,企业账号,个人账号,公司团队账号,教育账号
  • 原文地址:https://www.cnblogs.com/wzstudy/p/10821095.html
Copyright © 2011-2022 走看看