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网卡无法正常通信
【工作】Linux 实用的端口转发工具:socat安装使用记录

【工作】Linux 实用的端口转发工具:socat安装使用记录

【工作】Linux 用于内网主机名和IP解析的DNS主从集群服务部署

【工作】Linux 用于内网主机名和IP解析的DNS主从集群服务部署

【工作】生产环境中MySQL Drop 删除(百G级、T级)大表的解决方法

【工作】生产环境中MySQL Drop 删除(百G级、T级)大表的解决方法

【工作】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原理、内存溢出总结

发表评论

昵称 *
邮箱 *
网址

  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  回复