暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

zabbix监控安装部署实战

一. 部署架构图

二. 安装环境及版本信息

操作系统:centos7

zabbix版本: 4.4

mysql: 5.7.28

三.zabbix server安装(192.168.182.132)

    rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
    yum-config-manager --enable rhel-7-server-optional-rpms
    yum install epel-release numactl
    yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf -y

    注意:如果出现yum安装不了,则可以修改/etc/yum.repos.d/zabbix.repo

      [zabbix]
      name=Zabbix Official Repository - $basearch
      #baseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/
      baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/$basearch
      enabled=1
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
      skip_if_unavailable = 1
      keepcache = 0


      [zabbix-debuginfo]
      name=Zabbix Official Repository debuginfo - $basearch
      baseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/debuginfo/
      enabled=0
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
      gpgcheck=1

      四. mysql安装(192.168.182.132)

        wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
        tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C app/
        cd app/
        mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
        mkdir app/mysql/{data,logs}
        groupadd mysql
        useradd -g mysql mysql
        chown mysql:mysql app/mysql -R


        1、配置mysql 配置文件:
        复制代码
        [client]
        port = 3306
        socket = tmp/mysql.sock
        default-character-set = utf8


        # 配置账号密码、ip;实现命令行直接"免密码"登录
        [mysql]
        host=192.168.182.132
        user=zabbix
        password=zabbix


        [mysqladmin]
        host=192.168.182.132
        user=zabbix
        password=zabbix


        [mysqld]
        port = 3306
        socket = tmp/mysql.sock


        basedir = app/mysql
        datadir = app/mysql/data
        pid-file = app/mysql/mysql.pid
        user = mysql
        bind-address = 0.0.0.0
        server-id = 1


        init-connect = 'SET NAMES utf8'
        character-set-server = utf8
        log_timestamps=SYSTEM


        skip-name-resolve
        back_log = 300


        max_connections = 613
        max_connect_errors = 6000
        open_files_limit = 65535
        table_open_cache = 256
        max_allowed_packet = 500M
        binlog_cache_size = 1M
        max_heap_table_size = 8M
        tmp_table_size = 32M


        read_buffer_size = 2M
        read_rnd_buffer_size = 8M
        sort_buffer_size = 8M
        join_buffer_size = 8M
        key_buffer_size = 16M


        thread_cache_size = 16


        query_cache_type = 1
        query_cache_size = 16M
        query_cache_limit = 2M


        ft_min_word_len = 4


        log_bin = mysql-bin
        binlog_format = mixed
        expire_logs_days = 7


        log_error = app/mysql/logs/mysql-error.log
        slow_query_log = 1
        long_query_time = 1
        slow_query_log_file = app/mysql/logs/mysql-slow.log


        performance_schema = 0
        explicit_defaults_for_timestamp






        skip-external-locking


        default_storage_engine = InnoDB
        innodb_file_per_table = 1
        innodb_open_files = 500
        innodb_buffer_pool_size = 128M
        innodb_write_io_threads = 4
        innodb_read_io_threads = 4
        innodb_thread_concurrency = 0
        innodb_purge_threads = 1
        innodb_flush_log_at_trx_commit = 2
        innodb_log_buffer_size = 2M
        innodb_log_file_size = 32M
        innodb_log_files_in_group = 3
        innodb_max_dirty_pages_pct = 90
        innodb_lock_wait_timeout = 120


        bulk_insert_buffer_size = 8M
        myisam_sort_buffer_size = 16M
        myisam_max_sort_file_size = 10G
        myisam_repair_threads = 1


        interactive_timeout = 28800
        wait_timeout = 28800


        [mysqldump]
        quick
        max_allowed_packet = 500M


        [myisamchk]
        key_buffer_size = 16M
        sort_buffer_size = 8M
        read_buffer = 4M
        write_buffer = 4M
        复制代码
        2、数据库初始化:
        cd app/mysql/
        bin/mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp


        登录的临时密码在error文件中(/app/mysql/logs/mysql-error.log)
        ##
        porary password is generated for root@localhost: Jm=%mM7w)UBq
        ##


        cp -a app/mysql/support-files/mysql.server etc/init.d/mysql
        echo "export PATH=/app/mysql/bin:$PATH" >> etc/profile
        source etc/profile


        # 启动mysql
        /etc/init.d/mysql start


        # 使用日志中的临时密码(Jm=%mM7w)UBq)登录mysql
        mysql -u root -p


        # 设置root密码:
        mysql>set password for root@localhost = password('root');


        # 创建zabbix库:
        create database zabbix character set utf8 collate utf8_bin;
        # 授权:
        grant all privileges on *.* to zabbix@'%' identified by 'zabbix';
        # 刷新权限
        flush privileges;


        # 导入数据到zabbix
        zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p zabbix

        五.配置zabbix_server

          1、修改配置
          # vi /etc/zabbix/zabbix_server.conf
          复制代码
          LogFile=/app/zabbix/logs/zabbix_server.log
          LogFileSize=0
          PidFile=/var/run/zabbix/zabbix_server.pid
          SocketDir=/var/run/zabbix
          DBHost=192.168.182.132
          DBName=zabbix
          DBUser=zabbix
          DBPassword=zabbix
          DBSocket=/tmp/mysql.sock
          SNMPTrapperFile=/app/zabbix/logs/snmptrap/snmptrap.log
          Timeout=4
          AlertScriptsPath=/app/zabbix/alertscripts
          ExternalScripts=/app/zabbix/externalscripts
          LogSlowQueries=3000
          StatsAllowedIP=127.0.0.1
          复制代码
          2、创建相关目录:
          mkdir -p /app/zabbix/logs/snmptrap
          mkdir /app/zabbix/{alertscripts,externalscripts}
          chown zabbix:zabbix /app/zabbix/ -R


          3、修改时区:
          # vim /etc/httpd/conf.d/zabbix.conf
          # 添加/修改配置:
          php_value date.timezone Asia/Shanghai


          4、启动apache
          systemctl start httpd.service
          5、启动php
          systemctl start php-fpm.service
          6、启动zabbix server
          systemctl start zabbix-server.service


          访问:http:ip/zabbix


          注意:第一次登录填写mysql连接信息时候地址需要填0.0.0.0

          六. 修改字体

            # 上传windows中的字体MSYH.TTC(微软雅黑) 到/home/wwwroot/default/zabbix/fonts目录
            ln -s /home/wwwroot/default/zabbix/fonts/MSYH.TTC /etc/alternatives/zabbix-web-font

            七.安装graphtree插件(选)

              graphtree是一个图形展示插件
              wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.patch
              yum install -y patch
              cp -a /usr/share/zabbix /usr/share/zabbix.bak
              mv graphtree3.0.4.patch /usr/share/zabbix/
              cd /usr/share/zabbix
              patch -Np0 <graphtree3.0.4.patch
              chown apache:apache oneoaas -R
              添加配置:vim /etc/httpd/conf.d/zabbix.conf
              Alias /oneoaas /usr/share/zabbix/oneoaas
              systemctl restart httpd.service zabbix-server.service

              八.zabbix proxy(192.168.182.130) 部署:

              8.1、yum安装

                rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
                yum clean all
                # 先查找zabbix-proxy,yum search zabbix-proxy
                yum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64


                curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
                yum clean all
                yum makecache
                # 再执行
                yum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64
                # 创建zabbix库:
                create database zabbix_proxy character set utf8 collate utf8_bin;
                # 授权:
                grant all privileges on zabbix_proxy.* to zabbix@'%' identified by 'zabbix';
                # 刷新权限
                flush privileges;
                # 部署mysql 步骤和在zabbix server中部署一样,区别在导入数据时候不一样:
                # zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uroot -p zabbix_proxy


                # 修改zabbix-proxy配置:vim /etc/zabbix/zabbix_proxy.conf
                复制代码
                Server=192.168.182.132 # 真正的服务端(zabbix server)
                ServerPort=10051 # 根据个人需要修改,一般可以不改,默认端口是10051,要实现转发的话使用这个选项(zabbix server)
                ListenPort=10051 # zabbix-proxy服务监听的端口,默认就好
                Hostname=Zabbix proxy # proxy的hostname,在web端网页配置时需要用到
                DBHost=192.168.182.130 # 数据库,使用本地,也可以使用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端发送数据的时间,单位是秒,几乎等于实时同步


                # 启动zabbix-proxy
                systemctl start zabbix-proxy.service

                8.2 、源码安装

                  yum -y install curl-devel libevent-devel   libevent curl  libxml2-devel libxml2  pcre pcre-devel
                  yum install mysql-devel -y
                  yum install -y net-snmp-devel


                  # 编译安装zabbix proxy:
                  wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.0/zabbix-4.4.0.tar.gz
                  tar -xzvf zabbix-4.4.0.tar.gz
                  cd zabbix-4.4.0


                  # proxy:
                  ./configure --prefix=/app/zabbix_proxy_4.4 --enable-proxy --with-mysql --with-libcurl --with-libxml2 --enable-ipv6 --with-net-snmp --with-openssl
                  ln -s /app/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
                  # 启动:
                  /app/zabbix_proxy_4.4/sbin/zabbix_proxy -c /app/zabbix_proxy_4.4/etc/zabbix_proxy.conf

                  8.2 、web端配置代理

                  8.2.1、web配置zabbix代理

                  添加主机时选择代理

                  如果出现如下图,则zabbix server不能与zabbix proxy正常通信

                   正常通信如图:

                  九.zabbix客户端安装

                  9.1、yum安装

                    # 添加yum源
                    rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
                    # 安装
                    yum install zabbix-agent
                    # 启动
                    service zabbix-agent start

                    9.2、源码安装

                      yum -y install curl-devel libevent-devel   libevent curl  libxml2-devel libxml2  pcre pcre-devel
                      yum install mysql-devel -y
                      yum install -y net-snmp-devel


                      # 编译安装zabbix客户端:
                      wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.0/zabbix-4.4.0.tar.gz
                      tar -xzvf zabbix-4.4.0.tar.gz
                      cd zabbix-4.4.0


                      # agent:
                      ./configure --prefix=/app/zabbix_agent_4.4 --enable-agent --enable-ipv6 --with-net-snmp --with-openssl


                      # 启动:
                      /app/zabbix_agent_4.4/sbin/zabbix_agentd -c /app/zabbix_agent_4.4/etc/zabbix_agentd.conf

                      9.3、修改配置(/etc/zabbix/zabbix_agentd.conf)

                        Server=[zabbix server/zabbix proxy ip]
                        ServerActive=[zabbix server/zabbix proxy ip]
                        Hostname=[ Hostname of client system ]
                        # 例:
                        Server=192.168.182.130
                        ServerActive=192.168.182.130
                        Hostname=192.168.182.129

                        9.4、安装zabbix-get,并测试agent端是否server端连通

                          # 安装
                          yum install -y zabbix-get
                          # 在服务端测试(192.168.182.132),-s --host:agentip-p,--port:端口;-k,--key:监控项key
                          zabbix_get -s 192.168.182.130 -p 10050 -k system.hostname

                          十. 常用命令

                            zabbix server与zabbix proxy的配置的同步是有延时的,如果需要立即同步可以手动执行命令:
                            zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf -R config_cache_reload


                            文章转载自大数据与云原生技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                            评论