Home > 工作记录 > 正文

【工作】Zabbix 高可用架构的实现

写在前面:

此文是之前公司领导让研究下zabbix的高可用时,在测试环境做的搭建笔记,后来因为一些原因推迟上线了,再后来离职了,毕竟是花费时间研究了,记录下以供参考和指点。

一、架构设计及环境规划:

架构设计图:

20161229141635

架构设计说明:

1. 基础架构为LAMP环境,采用keepalived实现zabbix服务器高可用,保证主server的mysql或者httpd宕掉后能切换到从server
2、数据库做主主同步,保证两边服务器数据的一致性,实现数据库的高可用。
3、采用unison同步软件保证不管修改那台服务器配置,zabbix配置目录及web目录内容的一致,实现文件双向同步。

网络环境说明:

20161229163812

软件版本说明:

20161229163825

1.LAMP环境安装(zabbix1同zabbix2)二、软件安装配置

1.1 安装组件

# yum install make mysql-server httpd mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml  php  snmp libsnmp-dev snmpd libcurl4-openssl-dev fping libxml2 libxml2-devel -y

# useradd zabbix

# mkdir -p /app/zabbix/

1.2 升级软件

升级php到5.6:

# 安装epel yum源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

# 安装php5.6 yum源

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

# 升级php版本到5.6

yum install yum-plugin-replace -y

yum replace php-common --replace-with=php56w-common -y

 

升级libcurl到7.47 :

安装新版libcurl的yum源

rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm

# 升级libcurl到7.47

yum upgrade libcurl

1.3 编译安装zabbix
# cd zabbix-3.0.1

#./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-java --enable-agent --enable-proxy --prefix=/app/zabbix --with-libxml2

#make install

# cp misc/init.d/fedora/core/zabbix_server /etc/init.d/

# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

# chmod 700 /etc/init.d/zabbix_*

 

修改/etc/init.d/zabbix_server

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/app\/zabbix/' /etc/init.d/zabbix_server

修改/etc/init.d/zabbix_agentd

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/app\/zabbix/' /etc/init.d/zabbix_agentd

1.4 启动服务并设置开机启动

# /etc/init.d/zabbix_server start

# /etc/init.d/zabbix_agentd start

# chkconfig zabbix_server on

# chkconfig zabbix_agentd on

# chkconfig mysqld on

# chkconfig httpd on

1.5 配置两个节点的hosts文件,保证两个节点解析一致

# vi /etc/hosts

10.10.1.101     zabbix1

10.10.1.99      zabbix2

1.6 修改时区:

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改为中国的东八区

# vi /etc/sysconfig/clock

ZONE="Asia/Shanghai"

UTC=false

ARC=false

1.7 时间同步:

#yum -y install ntp

#ntpdate ntp.api.bz

#hwclock -w

 

创建计划任务:

#crontab -e

## sync time

*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org 0.pool.ntp.org ntp.api.bz > /dev/null 2>&1;hwclock -w

2.LAMP环境配置(zabbix1同zabbix2)

2.1 PHP配置参数

#cp /etc/php.ini /etc/php.inibak

修改php.ini配置文件

# sed -i 's/max_execution_time = 30/max_execution_time = 300/' /etc/php.ini

# sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php.ini

# sed -i 's/post_max_size = 8M/post_max_size = 16M/' /etc/php.ini

# sed -i 's/;date.timezone =/date.timezone = PRC/' /etc/php.ini

# sed -i 's/;always_populate_raw_post_data/always_populate_raw_post_data/' /etc/php.ini  (如果php版本>=5.6.0要设置)

2.2 mysql数据库配置

# service mysqld start

# mysqladmin -u root password hualala.com

创建zabbix数据库:

Mysql> create database zabbix character set utf8;

Mysql> grant all on zabbix.* TO zabbix@'localhost' identified by 'zabbix@123';

#授权本机通过账号zabbix密码zabbix@123访问数据库的所有权限

Mysql> flush privileges;

 

导入数据库sql:

#cd zabbix-3.0.1/database/mysql/

#mysql -h localhost -uroot -phualala.com zabbix <schema.sql

#这里应该用zabbix和zabbixpass来导入sql文件,由于root是管理员账号,所以本地可以直接用来连接

#mysql -h localhost -uroot -phualala.com zabbix <images.sql

#这里应该用zabbix和zabbixpass来导入sql文件

#mysql -h localhost -uroot -phualala.com zabbix <data.sql

#这里应该用zabbix和zabbixpass来导入sql文件

注意:以上三个顺序不要颠倒,否则报错! 

2.3 修改web相关配置文件

修改/etc/httpd/conf/httpd.conf:

# sed -i 's/DirectoryIndex index.html index.html.var/DirectoryIndex index.html index.html.var index.php/' /etc/httpd/conf/httpd.conf

修改/app/zabbix/etc/zabbix_server.conf参数:

SourceIP=10.10.1.98

DBName=zabbix          数据库名称

DBUser=zabbix          连接数据库的账号,与Mysql授权账号对应

DBPassword=zabbix@123  连接数据库的密码,与Mysql授权账号的密码对应

修改/app/zabbix/etc/zabbix_agentd.conf参数:

Server=10.10.1.98

ServerActive=10.10.1.98

Hostname=Zabbix1

#zabbix2修改为自己的hostname        

 

重启服务:

# /etc/init.d/httpd restart

# /etc/init.d/zabbix_agentd restart

# /etc/init.d/zabbix_server restart

2.4 配置php文件

# cd zabbix-3.0.1/frontends/

# cp -rf php /var/www/html/zabbix

# chown -R zabbix:zabbix /var/www/html/zabbix/

# ln -s /app/zabbix/sbin/* /usr/local/sbin/

# ln -s /app/zabbix/bin/* /usr/local/bin/

2.5 防火墙配置:

# iptables -A INPUT -p tcp -m multiport --dport 80,3306 -j ACCEPT

# iptables -A INPUT -p udp -m multiport --dport 80,3306 -j ACCEPT

# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT

# iptables -A INPUT -p tcp --dport 10051 -j ACCEPT

# iptables -A INPUT -p udp --dport 10051 -j ACCEPT

# iptables -A INPUT -p udp --dport 10050 -j ACCEPT

# iptables -A INPUT -p tcp --dport 123 -j ACCEPT

# iptables -A INPUT -p tcp --dport 112 -j ACCEPT

# iptables -A INPUT -p tcp --dport 255-j ACCEPT

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -P INPUT DROP

# /etc/init.d/iptables save

2.6 登录http://ip/zabbix

安装成功后,初始登录账号admin,密码zabbix

创建zabbix1的监控:

20161229154114

创建zabbix2的监控:

20161229154538

3.安装keepalived实现主从切换

3.1安装keepalived(zabbix1同zabbix2)

# yum install keepalived
 
创建keepalived状态检查脚本:
# vi /etc/keepalived/keepalived_check.sh
#!/bin/bash
mysql_check=`ps -C mysqld --no-header | wc -l`
httpd_check=`ps -C httpd  --no-header | wc -l`
case $1 in
        mysqld)
       if [ $mysql_check -eq 0 ];then
            service mysqld start
            sleep 3
       if [ $mysql_check -eq 0 ];then
            service keepalived stop
        fi
        fi
;;
        httpd)
        if [ $httpd_check -eq 0 ];then
            service httpd start
            sleep 3
        if [ $httpd_check -eq 0 ];then
            service keepalived stop
        fi
        fi
;;
esac
 
# chmod 755 /etc/keepalived/keepalived_check.sh
 
创建zabbix重启脚本:
 
当主从切换的时候执行此脚本,必须在keepalived配置文件中增加此脚本,否则,主从切换后,web查看host的状态是错误,但是后台可以获得数据!如下图所示:
20161229154720
具体原因不明,怀疑是因为hosts中主机的items选项中”Update interval (in sec) 60”更新时间默认设置为60秒,所以切换后相当于重新连接切换的从server数据,造成此现象。所以下面脚本中增加了 60秒的睡眠时间。
#vi /etc/keepalived/keepalived_zabbix.sh
#!/bin/bash
sleep 60
/etc/init.d/zabbix_server restart
# chmod 777 /etc/keepalived/keepalived_zabbix.sh

3.2 修改keepalived配置文件(红色标示部分为zabbix2需要修改地方,其他配置zabbix1同zabbix2)

# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc      
     failover@firewall.loc             #设置报警地址,可以设置多个,每行1个
     sysadmin@firewall.loc         #需安装sendmail,并开启邮件报警
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1           #设置SMTP Server地址
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script mysqld                                            #vrrp脚本命名
{
        script "/etc/keepalived/keepalived_check.sh mysqld"   #要执行的脚本
        interval 2      #脚本指定间隔,秒
        weight -30     #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)
        fall   2     #尝试两次都成功才成功
        rise   2     #尝试两次都失败才失败
}
vrrp_script httpd
{
        script "/etc/keepalived/keepalived_check.sh httpd"
        interval 2
        weight -20
        fall   2     #尝试两次都成功才成功
        rise   2     #尝试两次都失败才失败
}
vrrp_instance zabbix_server{
    state MASTER                   #指定Keepalived的角色,MASTER为主,BACKUP为备
    interface eth0                     #绑定真实的物网卡
    virtual_router_id 51          #虚拟路由编号,主备要一致
    priority 100                           #定义优先级,数字越大,优先级越高,主DR必须大于备用DR   
    advert_int 1                          #检查间隔,默认为1s
    authentication {
        auth_type PASS             #认证方式,PASS或AH两种
        auth_pass 1111             #认证密码,主备服务器要一致
    }
    track_script                   #调用上面定义的检查脚本
    {
       mysqld
    } 
    track_script
    {
        httpd
    }
    virtual_ipaddress {
        10.10.1.98                 #定义虚拟IP(VIP),可多设,每行一个
    }
notify_master "/etc/keepalived/keepalived_zabbix.sh" #指定当切换到master时,执行的脚本
notify_backup "/etc/keepalived/keepalived_zabbix.sh" #指定当切换到backup时,执行的脚本
#notify_fault "/sbin/service zabbix_server stop"     #故障时执行的脚本
}
#/etc/init.d/keepalived start
# chkconfig keepalived on

4. Mysq主主同步

4.1 修改数据库配置文件(除红色部分,zabbix1同zabbix2)

# vi /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=1                                    #(zabbix2 设置为2)
log-bin=mysql-bin                      # 开启bin日志
expire_logs_days=365               # bin日志过期清理时间
max_binlog_size=314572800              # 每个bin日志大小
auto-increment-increment = 2           #字段变化增量值
auto-increment-offset = 1              #初始字段ID为1
slave-skip-errors = all                #忽略所有复制产生的错误 
binlog-do-db=zabbix                    # 同步原数据库名
binlog-ignore-db=mysql                 # 不同步数据库名
binlog-ignore-db=test
replicate-do-db=zabbix
replicate-ignore-db=mysql
replicate-ignore-db=test
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

4.2 建立同步数据同步账号

zabbix1上操作:
mysql> grant replication slave on *.* to 'tongbu'@'10.10.1.99' identified by 'tongbu@123';
mysql> flush privileges;
 
zabbix2上操作:
mysql> grant replication slave on *.* to 'tongbu'@'10.10.1.101' identified by 'tongbu@123';
mysql> flush privileges;
查看同步账号:
mysql> use mysql;
Database changed
mysql> select user,host from user;
+--------+-------------+
| user   | host        |
+--------+-------------+
| tongbu | 10.10.1.101 |
| root   | 127.0.0.1   |
|        | localhost   |
获取zabbix1 binlog 文件 和 id:
mysql> show master status;
+------------------+----------+--------------+-------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
+------------------+----------+--------------+-------------------------------+
| mysql-bin.000002 |     1510 | zabbix       | mysql,test,information_schema |
+------------------+----------+--------------+-------------------------------+
获取zabbix2 binlog 文件 和 id:
+------------------+----------+--------------+-------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
+------------------+----------+--------------+-------------------------------+
| mysql-bin.000002 |     1512 | zabbix       | mysql,test,information_schema |
+------------------+----------+--------------+-------------------------------+

4.3 启动互为主从的模式:

zabbix2上操作:
mysql> change master to master_host='10.10.1.101', master_user='tongbu', master_password='tongbu@123', master_log_file='mysql-bin.000002',master_log_pos=1510;
mysql> start  slave;
zabbix2上查看同步状态:
mysql>  show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.1.101
                  Master_User: tongbu
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 4587
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 3328
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: zabbix
          Replicate_Ignore_DB: mysql,test,information_schema
zabbix1上操作:
mysql> change master to master_host='10.10.1.99', master_user='tongbu', master_password='tongbu@123', master_log_file='mysql-bin.000002',master_log_pos=1512;
mysql> start  slave;
zabbix1上查看同步状态
mysql>  show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.1.99
                  Master_User: tongbu
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 40294
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 1088
        Relay_Master_Log_File: mysql-bin.000003
     Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: zabbix
          Replicate_Ignore_DB: mysql,test,information_schema

五、实现web目录双向同步 

5.1 配置zabbix1和zabbix2免密码验证

ssh端口默认的22,如果你修改ssh服务默认连接端口,两边用秘钥连接的时候分别在脚本里面指定对端正确端口。

zabbix1上操作:

#ssh-keygen (回车后再按三下回车)
#ssh-copy-id 10.10.1.99

zabbix2上操作:

#ssh-keygen (回车后再按三下回车)
#ssh-copy-id 10.10.1.101

5.2 安装unison同步工具(zabbix1同zabbix2) 

安装ocaml,版本至少为3.07或更高:
下载地址:http://caml.inria.fr/pub/distrib/ocaml-3.10/  
# tar zxvf ocaml-3.10.2.tar.gz            
# cd ocaml-3.10.2             
# ./configure             
# make world opt             
# make install           
安装unison如下:    
下载地址:http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/
# tar zxvf unison-2.13.16.tar.gz         
# cd unison-2.13.16     
# make UISTYLE=text THREADS=true STATIC=true           
# cp ./unison /usr/local/bin/
#/usr/local/bin/unison   #生成的这个文件之后,首先需要执行一次,会在当前登陆的用户家目录下生成一个.unison的目录,并且在目录下生成一个defualt.prf文件,以后unison的使用都是通过修改稿配置文件,执行unison这个命令进行。         
安装inotify工具inotify-tools:
确认Linux系统内核为2.6.13以上,如果Linux内核低于2.6.13版本,就需要重新编译内核加入inotify的支持
下载地址:http://inotify-tools.sourceforge.net
tar xvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
# ll /usr/local/bin/inotifywa*           
-rwxr-xr-x 1 root root 37264 04-14 13:42 /usr/local/bin/inotifywait           
-rwxr-xr-x 1 root root 35438 04-14 13:42 /usr/local/bin/inotifywatch 
inotify-tools安装完成后,会生成inotifywait和inotifywatch两个指令,其中,inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。
 

5.3 修改unison配置文件,编写同步脚本进行实施监控同步(除红色表明外,zabbix1同zabbix2)

整个过程是通过使用innotify对目录和文件进行检查,然后根据变动调用unison工具进行同步

创建同步zabbix配置的prf文件(zabbix1上操作) 

# cd /root/.unison/ 
# vim zabbix.prf    
#同步zabbix配置,有几个注意的地方,不同版本的zabbix版本切记不要同步他的二进制文件,因为每个版本的zabbix编译所产难过的二进制文件不是一定是一样的。这样会造成一边zabbix运行出问题。     

# Unison preferences file
root=/app/zabbix/
root=ssh://root@10.10.1.99//app/zabbix/       #zabbix2换成zabbix1的IP
batch = true
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
confirmbigdel = false
log = true
logfile = /root/.unison/unison.log
maxthreads = 300
retry = 3
path=bin/custom/
path=etc/
path=sbin/
path=lib/
path=share/zabbix/
ignore = Path etc/zabbix_agentd.conf 

创建同步Web文件的prf文件(zabbix1上操作) 

#vim webapps.prf 
root=/var/www/html/
root=ssh://root@10.10.1.99//var/www/html        #zabbix2换成zabbix1的IP
batch = true
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
confirmbigdel = false
log = true
logfile = /root/.unison/unison.log
maxthreads = 300
retry = 3
path=zabbix/
------------------------------------------------------参数含义--------------------------------------------------------- 
# Unison preferences file  
#unison服务端配置文件    
root=/Data/apps/zabbix/    
#本地文件夹    
root=ssh://root@10.3.6.42//Data/apps/zabbix/       #格式:ssh://$user@$IP//$DIR   
#远程文件夹    
batch = true    
#表示全自动模式,接受并执行默认动作。    
owner = true    
#表示保持同步的文件属主信息。    
group = true    
#表示保持同步的文件属组信息。    
perms = -1    
#表示保持同步的文件读写权限。    
fastcheck = false    
#true表示同步时通过文件的创建时间来比较两地文件;false表示同步时通过比较两地文件内容。    
rsync = false    
#默认值是true,用于激活rsync传输模式。    
sshargs = -C    
#使用ssh的压缩传输方式。    
xferbycopying = true    
#优化传输参数,默认值为true。    
#confirmbigdel = false    
#默认值为true,表示当需要同步的两个目录有一个为空时,unison将停止。设置为false可以保证当需要同步的某个目录为空时,unison不会停止运转。    
log = true    
#表示在终端输出运行信息。    
logfile = /root/.unison/unison.log    
#指定同时输出写入log文件。    
maxthreads = 300    
#指定同步时最大线程数。    
#repeat = 1
#表示间隔1秒后开始一次新的同步检查    
retry = 3    
#指定失败重试次数
#force = /wwwroot
#指定force表示以本地/wwwroot为标准,指定了则变成单项同步了,所以在这里不指定。    
path=bin/custom/    #这下面了自定义的检查脚本    
path=etc   
path=sbin  
path=lib    
path=share/zabbix/     #这下面放了告警脚本    
#同步指定的子目录及文件,是相对路径,而非整个目录。可以写多个path,如在下面再写一个path = wwwbak。    
ignore = Path etc/zabbix_agentd.conf    
#忽略/wwwroot下面的WEB-INF/tmp目录,即同步时不同步它。注意,这里是"Path",而不是"path"。 
--------------------------------------------------------------------------------------------------------------- 

创建同步脚本(zabbix1同zabbix2)

# mkdir /scripts
# vi /scripts/unison.sh
#!/bin/bash  
dir1="/Data/webapps/zabbix-frontend/"   #需要检测的目录#    
dir2="/Data/apps/zabbix/"                         #需要检测的目录#     
/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $dir1 $dir2 | while read line; do  
#通过inotifywait来检测这个两个目录的改动情况#     
/usr/local/bin/unison webapps  #调用配置文件webapps.prf同步#     
/usr/local/bin/unison zabbix   #调用配置文件zabbix.prf同步#     
echo -n "`whoami` `date | cut -d " " -f1-5` " >> /var/log/inotify.log  #记录目录被更改的时间到日志,并记录当前登陆的用户#     
echo  "$line" >> /var/log/inotify.log    #记录目录哪些文件被更改情况#     
done
后台执行脚本:
# /usr/bin/nohup bash /scripts/unison.sh &   #放后台,不会因为关闭窗口断开
# echo "/usr/bin/nohup bash /scripts/unison.sh &" >>/etc/rc.local 
两边都运行脚本后,可以创建文件测试下,同时可以跟踪nohup.out文件查看同步情况
# tailf nohup.out

六、测试高可用效果

vip的位置一开始在zabbix1上面:
20161229163223
 
登录web新建一个hosts:
20161229163312
停掉zabbix1的httpd服务,可以看到VIP飘到zabbix2上面了:
20161229163359
 
再通过vip地址打开web页面,发现依然可以使用,且新建主机一样,到此zabbix的高可用已完全实现!
20161229163444

七、故障排查和注意事项:

1、dns解析要确保一致,防止切换后会出现问题。

vim /etc/resolv.conf 
当在zabbix监控项中使用dns域名解析监控主机时,要考虑zabbix服务器是否能够解析这个域名,不然则会获取不到数据(确保两边的zabbix服务器都可以解析域名)

2.zabbix_get 问题

实施完zabbix高可用后,大批量的zabbix_agent超时的报警,后来手动使用zabbix_get用agent.ping这个key做测试,发现确实无法获取数据,通过抓包和查看建立连接,默认建立连接都是用的物理网卡的真实IP(10.3.6.43)去与客户端的10050去建立连接得,Server并没有使用虚IP(10.3.6.153)去与10050建立连接,后来使zabbix_get -h 查看帮助信息,得知-I 参数后,使用zabbix_get -I 指定源IP为虚IP才能获取到数据
 
20161229163622
 

问题原因:

事后分析,为什么告警得只有agent.ping 这种告警,我们得环境都监控项都是主动模式,但是监控agent得当然还是采用被动模式Server去检测agent端的agent启动状态,但是只有这钟告警,我初步定位到是被动方式受影响了,相关得配置项也就“Server= ”这个但是我这里配置是对的,和更具上面得表现形式Server  zabbix_get 加 “-I”参数能get到值,不加get不到值;那么Server在哪里能够把“-I”能配置吗? 
 
后来问了吴兆松大大,得知Server配置文件中有一项:“SourceIP=” 这项默认是没有配置的,那么他就会走通过物理网卡得IP去请求客户端建立连接。在这个三次握手中源IP自然是物理网卡IP,没有用虚IP去请求,所以当10.3.6.43 请求客户端建立连接得时候,对方看一下自己的“Server=”配置是10.3.6.153  对比一下发现不匹配,然后拒绝10.3.6.43得请求,所以Server请求失败了。
 

解决方法:

修改Server配置文件 ,SourceIP=” 这项内容
vim zabbix_server.conf
SourceIP=10.10.1.98  #修改为VIP
那么他再次去请求的时候就是通过这个虚IP去请求,对应agent端“Server=VIP”项配置。匹配OK  故障恢复
上一篇:【工作】解决Linux系统使用unzip解压后中文名乱码问题
下一篇:【工作】解决服务器重启后bond网卡无法正常通信
【工作】Nginx 实现域名的登录验证功能

【工作】Nginx 实现域名的登录验证功能

【工作】Centos 6.5 PHP 5.3 yum升级到5.5、5.6、5.7版本方法

【工作】Centos 6.5 PHP 5.3 yum升级到5.5、5.6、5.7版本方法

【工作】线上Nginx升级OpenSSL版本防止安全漏洞

【工作】线上Nginx升级OpenSSL版本防止安全漏洞

【分享】JVM内存、GC原理、内存溢出总结

【分享】JVM内存、GC原理、内存溢出总结

【分享】Linux下的Squid的配置详解

【分享】Linux下的Squid的配置详解

【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启

【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启

【工作】Centos上ssh连接服务器缓慢的解决办法

【工作】Centos上ssh连接服务器缓慢的解决办法

发表评论

昵称 *
邮箱 *
网址

  1. Bugatti
    chenhl:

    你好,你这里在安装好zabbix的时候(含zabbix1/2) http://ip/zabbix 这里的ip是VIP 还是实际server的?

    2017-06-21 下午4:33  回复 
    • 二手攻城狮 @chenhl:

      刚安装完是分别登录两个ip创建zabbix自身的监控,所有配置完成后,实际使用中是访问的vip,数据会自动同步的。

      2017-06-29 上午11:34  回复