zabbix是目前各大互联网公司使用最广泛的开源监控之一,其历史最早可追溯到1998年,在业内拥有各种成熟的解决方案.

网站可用性

在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

目前能达到4个9就很好了。

组件

zabbix属于CS架构,Server端基于C语言编写,相比其他语言具有一定的性能优势(在数据量不大的情况下!).Web管理端则使用了PHP. 而其client端有各种流行语言的库实现,方便使用其API

在数据的存储方面,zabbix使用了关系性数据库,包括SQLite,MySQL,PostgreSQL,Oracle,DB2

安装

yum安装

zabbix的安装比较繁琐,但也不算困难(主要是因为网上提供的资料足够多)

我们需要一种关系型关系型数据库,目前提供的选择有MySQL,SQLite, PostgreSQL,Oracle,DB2

接下来需要安装PHP的运行环境,Web服务器可是使用Apache或者Nginx都可以.

最后一步是安装zabbix服务.

完整的安装教程可以参考:zabbix安装指南

主要步骤

  1. 配置zabbix官方yum源,还有base和epel源

  2. 安装server

    yum install zabbix-server-mysql zabbix-get
    
  3. 初始化database

    导入zabbix-server-mysql包中的create.sql来初始化数据库

    rpm -ql zabbix-server-mysql
    mysql -uroot -p -Dzabbix < create.sql
    

    然后就可以查看表了。

  4. 配置服务端配置文件并启动

  5. 安装web

    yum install httpd php php-mysql php-mbstring php-gd php-bamath php-ladp php-xml
    yum install zabbix-web-mysql zabbix-web
    
  6. 然后访问  http://zabbix-web-ip/zabbix/setup.php进行zabbix初始化

  7. 安装zabbix-agent

    yum install zabbix-agent zabbix-sender
    
  8. 配置客户端端配置文件并启动

    服务端快速安装脚本

    #!/bin/bash
    #clsn
    
    #设置解析 注意:网络条件较好时,可以不用自建yum源
    # echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
    
    #安装zabbix源、aliyun YUM源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
    #安装zabbix
    yum install -y zabbix-server-mysql zabbix-web-mysql
    
    #安装启动 mariadb数据库
    yum install -y  mariadb-server
    systemctl start mariadb.service
    
    #创建数据库
    mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
    mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
    
    #导入数据
    zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
    
    #配置zabbixserver连接mysql
    sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
    
    #添加时区
    sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
    
    #解决中文乱码
    yum -y install wqy-microhei-fonts
    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
    
    #启动服务
    systemctl start zabbix-server
    systemctl start httpd
    
    #写入开机自启动
    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.d/rc.local<<EOF
    systemctl start mariadb.service
    systemctl start httpd
    systemctl start zabbix-server
    EOF
    
    #输出信息
    echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"
    

    客户端快速部署脚本

    #!/bin/bash
    #clsn
    
    #设置解析
    echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
    
    #安装zabbix源、aliyu nYUM源
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
    #安装zabbix客户端
    yum install zabbix-agent -y
    sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
    systemctl start  zabbix-agent.service
    
    #写入开机自启动
    chmod +x /etc/rc.d/rc.local
    cat >>/etc/rc.d/rc.local<<EOF
    systemctl start  zabbix-agent.service
    EOF
    

编译安装

系统环境

    OS:         centos7.5
    software:  zabbix 4.0 LTS
    DBSever:    MariaDB-10.2.15

一、需要先把数据库装上,这里用到的是mariadb 二进制包安装

1、下载二进制包,
     官网的下载路径:
  wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.15/bintar-linux-x86_64/mariadb-10.2.15-linux-x86_64.tar.gz

2、添加组和用户
  [root@node2 ~]# groupadd -r -g 306 mysql
  [root@node2 ~]# useradd -g mysql -u 306 -r mysql

3、解压mariadb二进制包到/usr/local下去
   [root@node2 ~]# tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/

4、进入到/usr/local下面创建mysql的软连接
   [root@node2 ~]# cd /usr/local/
   [root@node2 /usr/local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql

5、修改mysql的相对应的属主和属组权限
    [root@node2 /usr/local]# chown -R root.mysql mysql/

6、创建数据文件的存放路径,并修改所属组的权限为mysql
     [root@node2 ~]#   cd /app/
     [root@node2 /app]# mkdir mydata
     [root@node2 ]#  chown -R mysql.mysql  /app

7、初始化数据库,指定好数据文件的存放路径和用户
       [root@node2 ]# cd /usr/local/mysql/
       [root@node2 /usr/local/mysql/]# scripts/mysql_install_db --datadir=/app/mydata --user=mysql

8、拷贝mariadb的启动脚本到/etc/rc.d/init.d下命名为mysqld
       [root@node2 /usr/local/mysql/]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

9、把mysqld设置为开机启动
       [root@node2 /usr/local/mysql/]# chkconfig --add mysqld

10、创建mariadb的配置文件存放路径,并拷贝模版文件到这个目录下命名为my.cnf
      [root@node2 /usr/local/mysql/]# mkdir /etc/mysql
      [root@node2 /usr/local/mysql/]#cp support-files/my-large.cnf /etc/mysql/my.cnf

11、配置系统环境变量,重读配置文件让它生效
      [root@node2 /usr/local/mysql/]# vim /etc/profile.d/mysql.sh
      [root@node2 /usr/local/mysql/]#export PATH=/usr/local/mysql/bin:$PATH
      [root@node2 /usr/local/mysql/]# . /etc/profile.d/mysql.sh

12、修改mariadb的配置文件需要增加几条内容
      [root@node2 /usr/local/mysql/]# vim /etc/mysql/my.cnf
          lower_case_table_names = 1
          character-set-server = utf8
          datadir = /app/mydata
          innodb_file_per_table = on
          skip_name_resolve = o

13、启动数据库服务
      [root@node2 /usr/local/mysql/]#  service mysqld start

14、查看mariadb的服务端口是否正常监听
    [root@node2 /app]#ss -tnl
    State      Recv-Q Send-Q       Local Address:Port                      Peer Address:Port
    LISTEN     0      128                      *:52874                                *:*
    LISTEN     0      128                      *:11211                                *:*
    LISTEN     0      128                      *:111                                  *:*
    LISTEN     0      128                      *:22                                   *:*
    LISTEN     0      128              127.0.0.1:631                                  *:*
    LISTEN     0      100              127.0.0.1:25                                   *:*
    LISTEN     0      80                      :::3306                                :::*

15、数据库的安全初始操作,设置完之后就可以先创建zabbix相关的库和用户
    [root@node2 /app]#mysql_secure_installation
    [root@node2 /app]#mysql -uroot -p
16、创建zabbix库
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
17、给zabbix库授权并指定用户
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'192.168.137.%' identified by '123456';

18、在另一台主机上测试用zabbix用是否能正常登陆数据库
    [root@node7 ~]#mysql -uzabbix -p123456 -h192.168.137.54
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 12
    Server version: 10.2.15-MariaDB-log MariaDB Server

    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | zabbix             |
    +--------------------+
    2 rows in set (0.00 sec)
    MariaDB [(none)]>
19、在zabbix server主机上导入zabbix自带的三个表,路径在/root/zabbix-4.0.1/database/mysql下后缀为.sql的三个文件
    [root@node6 ~/zabbix-4.0.1]#ls -l database/mysql/
    total 5816
    -rw-r--r-- 1 1001 1001 3795433 Oct 30 01:36 data.sql
    -rw-r--r-- 1 1001 1001 1978341 Oct 30 01:36 images.sql
    -rw-r--r-- 1 root root   15323 Nov 26 22:44 Makefile
    -rw-r--r-- 1 1001 1001     392 Oct 30 01:36 Makefile.am
    -rw-r--r-- 1 1001 1001   15711 Oct 30 01:36 Makefile.in
    -rw-r--r-- 1 1001 1001  140265 Oct 30 01:36 schema.sql

20、导入sql文件是有先后顺序的,先导schema.sql、images.sql、data.sql.
    [root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < schema.sql
    [root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < images.sql
    [root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456 zabbix < data.sql

21、进到数据库里面查看zabbix库是否导入成功
    [root@node6 ~/zabbix-4.0.1/database/mysql]#mysql -uzabbix -h192.168.137.54 -p123456
    MariaDB [(none)]> use zabbix
    MariaDB [zabbix]> show tables;
    +----------------------------+
    | Tables_in_zabbix           |
    +----------------------------+
    | acknowledges               |
    | actions                    |
    | alerts                     |
    | application_discovery      |
    | application_prototype      |
    | application_template       |
    | applications               |
    | auditlog                   |
    | auditlog_details           |
    | autoreg_host               |
    | conditions                 |
    | config                     |
    | corr_condition             |
    | corr_condition_group       |
    .......
    | users                      |
    | users_groups               |
    | usrgrp                     |
    | valuemaps                  |
    | widget                     |
    | widget_field               |
    +----------------------------+
    144 rows in set (0.00 sec)

二、编译zabbix

1、安装编译环境所需要的依赖包组
    [root@node6 ~]#yum install gcc  libxml2-devel libevent-devel net-snmp net-snmp-devel  curl  curl-devel php  php-bcmath  php-mbstring mariadb mariadb-devel –y

    还需要安装一些php的依赖包后续在网页端安装zabbix时需要用到所以先提前安装好
    [root@node6 ~]#yum install php-gettext php-session php-ctype php-xmlreader php-xmlwrer php-xml php-net-socket php-gd php-mysql -y

2、安装jdk环境,装的是jdk-8u191-linux-x64.rpm的包,要不后面编译时会报Java找不到。
    [root@node6 ~]#yum -y install jdk-8u191-linux-x64.rpm

3、创建zabbix用户
    [root@node6 ~]#useradd zabbix -s /sbin/nologin

4、下载zabbix的源码包
    [root@node6 ~]#wget http://192.168.137.53/yum/zabbix/zabbix-4.0.1.tar.gz

5、解压源码包,并进入到解压后的目录里去
    [root@node6 ~]#tar xf zabbix-4.0.1.tar.gz
    [root@node6 ~]#cd zabbix-4.0.1/
    [root@node6 ~/zabbix-4.0.1]#

6、开始编译安装zabbix
    [root@node6 ~/zabbix-4.0.1./configure  \
    --prefix=/usr/local/zabbix  \
    --enable-server  \
    --enable-agent  \
    --with-mysql   \
    --with-net-snmp  \
    --with-libcurl  \
    --with-libxml2  \
    --enable-java

7、执行make install
    [root@node6 ~/zabbix-4.0.1]#make -j 2 && make install

8、拷贝启动脚本文件到/etc/init.d目录下
    [root@node6 ~/zabbix-4.0.1]#cp misc/init.d/fedora/core/* /etc/init.d/

9、拷贝过去的脚本需要修改下目录路径,server和agent都需要改
    [root@node6 ~/zabbix-4.0.1]#vim /etc/init.d/zabbix_server
        22         BASEDIR=/usr/local
    改成:
        22         BASEDIR=/usr/local/zabbix

    agent启动脚本修改也是一样
        [root@node6 ~/zabbix-4.0.1vim /etc/init.d/zabbix_agentd
        22         BASEDIR=/usr/local
    改成:
        22         BASEDIR=/usr/local/zabbix

10、创建zabbix的日志存放路径和修改/usr/local/zabbix的所属主为zabbix
    [root@node6 ~/zabbix-4.0.1]#mkdir /var/log/zabbix
    [root@node6 ~/zabbix-4.0.1]#chown -R zabbix.zabbix /var/log/zabbix
    [root@node6 ~/zabbix-4.0.1]#ll /var/log/zabbix/ -d
    drwxr-xr-x 2 zabbix zabbix 6 Nov 27 09:17 /var/log/zabbix/
    [root@node6 ~]#chown -R zabbix.zabbix /usr/local/zabbix/
    [root@node6 ~]#ll -d /usr/local/zabbix/
    drwxr-xr-x 7 zabbix zabbix 64 Nov 26 22:45 /usr/local/zabbix/

11、修改配置文件
    [root@node6 ~/zabbix-4.0.1]#vim /usr/local/zabbix/etc/zabbix_server.conf
    ListenPort=10051   启用监听端口,不过默认也是启用的。

    LogFile=/var/log/zabbix/zabbix_server.log    修改日志存放路径,默认是在/tmp下

    LogFileSize=5   开启日志滚动,单位为MB、达到指定值之后就生成新的日志文件。
    DebugLevel=4   日志级别等级,4为debug,利于排除错误,排错之后可以改成3级别的。
    PidFile=/usr/local/zabbix/zabbix_server.pid   zabbix pid文件路径默认为tmp下需要改成安装目录,并且安装目录的所属组要改成zabbix用户
    # SocketDir=/tmp
    User=zabbix                    启动的用户默认也是zabbix,如果要改成root的话 还需要修改一项
    # AllowRoot=0                  需要改成1才能使用root来启动,默认0的话是被禁止用root启动,不过最好别用root
    SocketDir=/usr/local/zabbix   socket 文件存放路径默认在/tmp下
    DBHost=192.168.137.54          数据库地址必须要填
    DBName=zabbix                  数据库名称
    DBUser=zabbix                  数据库连接用户
    DBPassword=123456              数据库连接密码,建议在生产中密码不要太简单了。
    DBPort=3306                    数据库端口,其实也不用开默认就是3306

12、启动zabbix、并查看端口是否正常监听
    [root@node6 ~/zabbix-4.0.1]#service zabbix_server start
    Reloading systemd:                                         [  OK  ]
    Starting zabbix_server (via systemctl):                    [  OK  ]
    [root@node6 ~/zabbix-4.0.1]#ss -tnl
    State       Recv-Q Send-Q          Local Address:Port                Peer Address:Port
    LISTEN      0      128                         *:10051                    *:*
    LISTEN      0      128                         *:111                      *:*
    LISTEN      0      128                         *:22                       *:*
    LISTEN      0      100                 127.0.0.1:25                       *:*

13、装前端展示端
    [root@node6 ~/zabbix-4.0.1]#yum -y install httpd

14、在httpd的默认工作目录下创建一个zabbix目录
    [root@node6 ~/zabbix-4.0.1]#mkdir /var/www/html/zabbix

15、从zabbix解压包里面把php的所有文件拷贝到/var/www/html/zabbix目录下
    [root@node6 ~/zabbix-4.0.1]#cp -a frontends/php/* /var/www/html/zabbix/

16、启动httpd、查看端口是否正常监听
    [root@node6 ~]#systemctl start httpd
    [root@node6 ~]#ss -tnl
    State       Recv-Q Send-Q          Local Address:Port                         Peer Address:Port
    LISTEN      0      128                         *:10051                                   *:*
    LISTEN      0      128                         *:111                                     *:*
    LISTEN      0      128                         *:22                                      *:*
    LISTEN      0      100                 127.0.0.1:25                                      *:*
    LISTEN      0      128                        :::111                                    :::*
    LISTEN      0      128                        :::80                                     :::*

17、通过网页来安装zabbix

zabbix使用

zabbix的使用基本上都是在界面完成操作的,比较简单,基本使用流程

  1. 添加需要监控的主机

  2. 为监控的主机添加监控项,也就是key,zabbix自身带有很多设定好的监控项,直接选择就好,比如cpu,内存,都是界面操作

  3. 监控项中可以直接输入参数,来获取指定的数据

  4. 监控项可以自定义key,主要设定key,和执行的脚本命令command,可见zabbix都是通过执行命令来获取监控数据的

  5. zabbix有对应的告警机制,也就是触发器,设置触发器也就是表达式,达到阈值,就会产生事件,然后可以通过各种通信方式发送,都是支持界面操作。

zabbix对比promethes

  1. zabbix采集数据只能通过脚本命令,比较局限,基本都是物理机上的一些命令,所以zabbix比较适合物理机的监控,prometheus不但能够监控物理机,更适合云环境(频繁变动),比如k8s,

  2. 数据存储在mysql等关系型数据库中,存储有限,而且很难扩展监控维度,prometheus则是一个时序数据库,还可以远程存储,更适合

  3. zabbix监控界面不够实时,相比于grafana也是一点都不美观,而且定制化特别难,而grafana则是得到公认的可编辑可扩展美观软件。

  4. zabbix集群规模有限,上线为10000个节点,但是promtheus监控节点可以有更大的规模,速度也快。

  5. zabbix已经发展比较成熟,确实在管理界面上比较完善。但是prometheus比较灵活。

zabbix的报文协议

  1. cmppingloss[,,,,] 目标服务器,包数量,包发送间隔,包大小,超时
  2. value是string,一般是出错信息
  3. redis.cpunu.discovery这个是一个做发现的配置,最后生成了如下的配置可以舍去 
  4. state表示在key不支持,或者是监控数据的过程中出错时候会出来

zabbix配置文件

zabbix的配置文件一般有三种:

zabbixserver的配置文件zabbix_server.conf

zabbixproxy的配置文件zabbix_proxy.conf

zabbix_agentd的配置文件zabbix_agentd.conf

1.zabbixserver的配置文件:

NodeID=0 #分布式节点id号,0代表是独立服务器,默认是被注释掉的,不强制配置
ListenPort=10051 #zabbix server的端口,默认是10051,可以自行修改,
范围是1024-32767 ,一般默认即可
SourceIP=  #连接的源ip地址,默认为空,默认即可
LogFile=/tmp/zabbix_server.log #日志文件的存放位置
LogFileSize=1 #日志文件的大小,单位为MB,当设置为0时,表示不仅行日志轮询,
默认设置为1,默认即可
DebugLevel=3 #指定调试级别,默认即可
PidFile=/tmp/zabbix_server.pid #pid文件的存放位置
DBHost=localhost #数据库主机名,当设置为localhost时,连接mysql通过sock
DBName=zabbix #指定存放zabbix数据数据库的名字
DBUser=zabbix #指定连接数据库的用户名
DBPassword=123456 #用户连接数据库需要的密码
DBSocket=/var/lib/mysql/mysql.sock #前文主机设置为localhost,用户
连接数据库所用的sock位置,
DBPort=3306 #数据库的端口号,当用sock连接时,无关紧要,当通过网络连接时需设置
StartPollers=5 #默认即可
StartIPMIPollers=0 #使用IPMI协议时,用到的参数
StartTrappers=5 #打开的进程数,
StartPingers=1 同上
StartDiscoverers=1
StartHTTPPollers=1
JavaGateway=127.0.0.1 #JavaGateway的ip地址或主机名
JavaGatewayPort=10052 #JavaGateway的端口号
StartJavaPollers=5 #开启连接javagatey的进程数
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=0 #如果设置为1,snmp trapper进程就会开启
ListenIP=0.0.0.0 #监听来自trapper的ip地址
ListenIP=127.0.0.1
HousekeepingFrequency=1 #zabbix执行Housekeeping的频率,单位为hours
MaxHousekeeperDelete=500 #每次最多删除历史数据的行
SenderFrequency=30 #zabbix试图发送未发送的警报的时间,单位为秒
CacheSize=8M #缓存的大小
CacheUpdateFrequency=60#执行更新缓存配置的时间,单位为秒数
StartDBSyncers=4
HistoryCacheSize=8M
TrendCacheSize=4M
HistoryTextCacheSize=16M
NodeNoEvents=0
NodeNoHistory=0
Timeout=3
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/usr/local/zabbix/shell #脚本的存放路径
FpingLocation=/usr/local/sbin/fping #fping指令的绝对路径
SSHKeyLocation=
LogSlowQueries=0
TmpDir=/tmp
Include=/usr/local/etc/zabbix_server.general.conf
Include=/usr/local/etc/zabbix_server.conf.d/ #子配置文件路径
StartProxyPollers=1 #在zabbix proxy被动模式下用此参数
ProxyConfigFrequency=3600#同上
ProxyDataFrequency=1

实际使用

ListenPort=10051 #监听端口



LogFile=/opt/zabbix/logs/zabbix_server.log

LogFileSize=1024

DebugLevel=3

PidFile=/var/run/zabbix/zabbix_server.pid

#mysql 数据库配置
DBHost=10.243.51.107
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@suning
DBPort=3306


StartPollers=500

StartIPMIPollers=1

StartPollersUnreachable=100

StartTrappers=100

StartPingers=50

StartDiscoverers=10

StartHTTPPollers=10

StartTimers=10










SNMPTrapperFile=/opt/zabbix/zabbix_traps.tmp

StartSNMPTrapper=1

# 监听地址
ListenIP=0.0.0.0

CacheSize=8G

CacheUpdateFrequency=3600

StartDBSyncers=50

HistoryCacheSize=2G

TrendCacheSize=2G


ValueCacheSize=10G


Timeout=25
TrapperTimeout=120
UnreachablePeriod=300
UnavailableDelay=60
UnreachableDelay=60
AlertScriptsPath=/opt/zabbix/alertscripts
ExternalScripts=/opt/zabbix/externalscripts
FpingLocation=/usr/sbin/fping


LogSlowQueries=10

StartProxyPollers=100
ProxyConfigFrequency=3600
ProxyDataFrequency=30
AllowRoot=1

2.zabbixagentd的配置文件

PidFile=/tmp/zabbix_agentd.pid #pid文件的存放位置
LogFile=/tmp/zabbix_agentd.log #日志文件的位置
LogFileSize=1 #当日志文件达到多大时进行轮询操作
DebugLevel=3 #日志信息级别
SourceIP= #连接的源ip地址,默认为空,即可
EnableRemoteCommands=0 #是否允许zabbix server端的远程指令,
0表示不允许,
1表示允许
LogRemoteCommands=0 #是否开启日志记录shell命令作为警告 0表示不允许,1表示允许
Server=127.0.0.1 #zabbix server的ip地址或主机名,可同时列出多个,需要用逗号隔开
ListenPort=10050 #zabbix agent监听的端口
ListenIP=0.0.0.0 #zabbix agent监听的ip地址
StartAgents=3 #zabbix agent开启进程数
ServerActive=127.0.0.1 #开启主动检查
Hostname=Zabbix server#在zabbix server前端配置时指定的主机名要相同,最重要的配置
RefreshActiveChecks=120 #主动检查刷新的时间,单位为秒数
BufferSend=5 #数据缓冲的时间
BufferSize=100 #zabbix agent数据缓冲区的大小,当达到该值便会发送所有的数据到zabbix server
MaxLinesPerSecond=100 #zabbix agent发送给zabbix server最大的数据行
AllowRoot=0 #是否允许zabbix agent 以root用户运行
Timeout=3 #设定处理超时的时间
Include=/usr/local/etc/zabbix_agentd.userparams.conf
Include=/usr/local/etc/zabbix_agentd.conf.d/ #包含子配置文件的路径
UnsafeUserParameters=0 #是否允许所有字符参数的传递
UserParameter= #指定用户自定义参数

实际使用

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0
Server=10.243.51.50

# 推送指标连接的服务器,格式如下addr:port
ServerActive=10.243.51.48

Hostname=10.243.51.50

HostMetadataItem=system.uname
Timeout=15

AllowRoot=1

Include=/etc/zabbix/zabbix_agentd.d/

3.zabbixproxy的配置文件

Server=192.168.70.133 #指定zabbix server的ip地址或主机名
Hostname=zabbix-proxy-1.35 #定义监控代理的主机名,需和zabbix server前端配置时指定的节点名相同
LogFile=/tmp/zabbix_proxy.log #指定日志文件的位置
PidFile=/tmp/zabbix_proxy.pid #pid文件的位置
DBName=zabbix_proxy #数据库名
DBUser=zabbix #连接数据库的用户
DBPassword=123456#连接数据库用户的密码
ConfigFrequency=60 #zabbix proxy从zabbix server取得配置数据的频率
DataSenderFrequency=60 #zabbix proxy发送监控到的数据给zabbix server的频率

实际使用

#连接server的地址
Server=10.243.51.48

ServerPort=10052

Hostname=10.243.51.48

#启动监听的地址和端口
ListenPort=10051
ListenIP=0.0.0.0

LogFile=/opt/zabbix/logs/zabbix_proxy.log

LogFileSize=1024

DebugLevel=3

PidFile=/var/run/zabbix/zabbix_proxy.pid

#自带数据库
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix@suning
DBSocket=/opt/mysql/run/mysqld.sock
DBPort=3306



ProxyOfflineBuffer=1


ConfigFrequency=3600

DataSenderFrequency=20


StartPollers=300

StartIPMIPollers=10

StartPollersUnreachable=100

StartTrappers=100

StartPingers=20

StartDiscoverers=50

StartHTTPPollers=100




StartVMwareCollectors=10

VMwareFrequency=60

VMwareCacheSize=256M

CacheSize=8G

StartDBSyncers=10

HistoryCacheSize=2G

HistoryTextCacheSize=2G

Timeout=30

TrapperTimeout=300

UnreachablePeriod=300

UnavailableDelay=60

UnreachableDelay=15

ExternalScripts=/opt/zabbix/externalscripts

FpingLocation=/usr/sbin/fping

LogSlowQueries=0


AllowRoot=1

官网配置文件:

https://www.zabbix.com/documentation/2.2/manual/appendix/config/zabbix_proxy https://www.zabbix.com/documentation/2.2/manual/appendix/config/zabbix_server https://www.zabbix.com/documentation/2.2/manual/appendix/config/zabbix_agentd