Zabbix高可用,实现zabbix的无缝切换,无故障时间
作者:骚年有梦
联系方式:lianglian8866@163.com
zabbix高可用设计目标:
1、keepalived服务优先级选择切换机制:对于zabbix服务器来说,只要zabbix存活和mysql存活,就能够正常记录数据,不会丢失数据,php和nginx只是web页面的访问而已,所以我在这里定义mysql和zabbix为主要服务,php和nginx为次要服务,为了实现主要服务存在,次要服务挂了;次要服务器存在,主要服务器挂了,keepalived会优先选择主要服务存在的一方作为Master,让keepalived切换更为更合理。
2、数据库主主同步:不管切到哪一边都需要保持数据一致性,不可出现丢数据或者数据重复。保证数据库的高可用
3、文件双向同步:
(1)web文件同步:任何做web文件得配置和修改,保证两边一致,确保切换不会发生任何变化。
(2)zabbix服务文件同步:对zabbix_servr的配置文件做的任何修改,和脚本的修改进行同步,也是为了保证两边的服务一致性,没有落后情况,达到无需人工干预自动切换服务可正常时候。
到此即完成了zabbix得无缝切换,无故障时间!
一、环境
VIP |
10.3.6.153 |
real_server1 |
10.3.6.43 |
real_server2 |
10.3.6.42 |
准备环境:
1、server1 安装zabbix,mysql,php,nginx/apache 确保zabbix能够正常服务
第一步ok,肯定都是有在跑着的zabbix服务的。这里不介绍zabbix的安装,可参考我zabbix安装的文档
2、准备server2环境:
(1)安装php、nginx、mysql、zabbix。
(2)备份server1数据库导入到server2数据库中
(3)server1和server2 数据库做主主同步(全库同步)
(3)cp server1 web文件到server2 web目录中。
(4)启动所有服务,打开浏览器登录zabbix,确保zabbix能够正常访问。
二、部署keepalived
1、安装keepalived服务(server1和server2两边同样操作)
可以去官网http://www.keepalived.org/下载最新的源码包,也可以直接用yum安装。
这里使用编译安装
[root@localhost ~]#tar zxf keepalived-1.2.15.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/keepalived-1.2.15/
[root@localhost keepalived-1.2.15]# ./configure --prefix=/Data/apps/keepalived/
[root@localhost keepalived-1.2.15]# make && make install
拷贝keepalived、启动脚本等
[root@localhost /]# cp /Data/apps/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ #启动脚本
[root@localhost /]# cp /Data/apps/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost /]# mkdir /etc/keepalived
[root@localhost /]# cp /Data/apps/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost /]# cp /Data/apps/keepalived/sbin/keepalived /usr/bin/
2、扩展keepalived检查,编写keepalived 外加的检查脚本(server1 和server2同样操作)
[root@localhost /]# vim /etc/keepalived/keepalived_check.sh
文件:
#!/bin/bash #这是一个keepalived检查服务器启动状态的脚本 #2015/6/14 #lianglian8866@163.com CMD="ss -nal" case $1 inservice)$CMD |grep ":3306 " &> /dev/null && $CMD |egrep ":10051 " &> /dev/null;;httpd)$CMD |grep ":81 " &> /dev/null && $CMD |egrep ":9000 " &> /dev/null ;; esac
3、对keepalived进行配置,修改server1 keepalived配置
[root@localhost /]# vim /etc/keepalived/keepalived.conf
-----------------------------------------------------------------------------------------
! Configuration File for keepalivedglobal_defs {notification_email { #定义接收邮件的地址,一行对应一个acassen@firewall.locfailover@firewall.loc #要接收邮件的邮箱地址sysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1 #指定smtp服务器地址smtp_connect_timeout 30 #指定超时时间router_id zabbix_server #指定keepalived机器的标识 }vrrp_script service #vrrp脚本命名 {script "/etc/keepalived/keepalived_check.sh service" #要执行的脚本interval 5 #脚本指定间隔weight -30 #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)fall 2 #尝试两次都成功才成功rise 2 #尝试两次都失败才失败 }vrrp_script httpd {script "/etc/keepalived/keepalived_check.sh httpd"interval 5weight -20fall 2 #尝试两次都成功才成功rise 2 #尝试两次都失败才失败 }#VRRP实例组定义:VRRP实例就表示在上面开启了VRRP协议,这个实例说明了VRRP的一些特性,如主从、VRID等,可以在每个接口上开启一个实例。 vrrp_instance zabbix_server {state MASTER #指定实例的初始状态,高优先级的会竞选为master,interface eth0 #实例绑定的网卡virtual_router_id 153 #VRID标记(0...255),MASTER和BACKUP要一致priority 100 #优先级,数字越高级别越高,master要高于backup。advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒authentication { #验证类型和密码auth_type PASS #明文密码验证auth_pass zabbix.haodf #认证的密码}track_script #调用上面定义的检查脚本{service}track_script{httpd}virtual_ipaddress { #虚IP 一行一个10.3.6.153/24 } #notify_master "/sbin/service zabbix_server restart" #指定当切换到master时,执行的脚本 #notify_backup "/sbin/service zabbix_server stop" #指定当切换到backup时,执行的脚本 #notify_fault "/sbin/service zabbix_server stop" #故障时执行的脚本 }##LVS配置 (我们这里没有使用到lvs,所以都注释掉) #virtual_server 10.3.6.153 81 { # delay_loop 6 #服务轮询的延时时间 # lb_algo rr #lvs的调度算法 # lb_kind NAT #lvs集群模式 # persistence_timeout 50 #连接超时时间(秒) # protocol TCP #使用的协议是TCP # # real_server 10.3.6.43 81 { # weight 1 #权重,默认为1,0为失效 # TCP_CHECK { #后端服务器健康检查 # connect_timeout 5 #连接超时时间 # nb_get_retry 3 #重连次数 # delay_before_retry 3 #重连间隔时间(秒) # connect_port 80 #检查端口 # } # } # # real_server 10.3.6.42 81 { # weight 1 # TCP_CHECK { # connect_timeout 5 # nb_get_retry 3 # delay_before_retry 3 # connect_port 81 # } # } #}
-----------------------------------------------------------------------------------------------
4、修改server2 keepalived配置
[root@localhost /]# vim /etc/keepalived/keepalived.conf
----------------------------------------------------------------------------------------------------------------
! Configuration File for keepalivedglobal_defs {notification_email { #定义接收邮件的地址,一行对应一个acassen@firewall.locfailover@firewall.loc #要接收邮件的邮箱地址sysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1 #指定smtp服务器地址smtp_connect_timeout 30 #指定超时时间router_id zabbix_server #指定keepalived机器的标识 }vrrp_script service #vrrp脚本命名 {script "/etc/keepalived/keepalived_check.sh service" #要执行的脚本interval 5 #脚本指定间隔weight -30 #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)fall 2 #尝试两次都成功才成功rise 2 #尝试两次都失败才失败 }vrrp_script httpd {script "/etc/keepalived/keepalived_check.sh httpd"interval 5weight -20fall 2 #尝试两次都成功才成功rise 2 #尝试两次都失败才失败 }#VRRP实例组定义:VRRP实例就表示在上面开启了VRRP协议,这个实例说明了VRRP的一些特性,如主从、VRID等,可以在每个接口上开启一个实例。 vrrp_instance zabbix_server {state BACKUP #指定实例的初始状态,高优先级的会竞选为master,interface eth0 #实例绑定的网卡virtual_router_id 153 #VRID标记(0...255),MASTER和BACKUP要一致priority 90 #优先级,数字越高级别越高,master要高于backup。advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒authentication { #验证类型和密码auth_type PASS #明文密码验证auth_pass zabbix.haodf #认证的密码}track_script #调用上面定义的检查脚本{service}track_script{httpd}virtual_ipaddress { #虚IP 一行一个10.3.6.153/24 } #notify_master "/sbin/service zabbix_server restart" #指定当切换到master时,执行的脚本 #notify_backup "/sbin/service zabbix_server stop" #指定当切换到backup时,执行的脚本 #notify_fault "/sbin/service zabbix_server stop" #故障时执行的脚本 }##LVS配置 (我们这里没有使用到lvs,所以都注释掉) #virtual_server 10.3.6.153 81 { # delay_loop 6 #服务轮询的延时时间 # lb_algo rr #lvs的调度算法 # lb_kind NAT #lvs集群模式 # persistence_timeout 50 #连接超时时间(秒) # protocol TCP #使用的协议是TCP # # real_server 10.3.6.43 81 { # weight 1 #权重,默认为1,0为失效 # TCP_CHECK { #后端服务器健康检查 # connect_timeout 5 #连接超时时间 # nb_get_retry 3 #重连次数 # delay_before_retry 3 #重连间隔时间(秒) # connect_port 80 #检查端口 # } # } # # real_server 10.3.6.42 81 { # weight 1 # TCP_CHECK { # connect_timeout 5 # nb_get_retry 3 # delay_before_retry 3 # connect_port 81 # } # } #}
-----------------------------------------------------------------------------------------------------
三、部署文件同步
这里使用unison这个工具在两台服务器之间做文件间的双向同步
Unison简介
Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。unison拥有其它一些同步工具或文件系统的相同特性,但也有自己的特点:
1.跨平台使用;
2.对内核和用户权限没有特别要求;
3. unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。
1、配置双机OpenSSH,是两台机器免密码验证
两台服务器的ssh端口必须是默认的22号端口,或者你修改ssh服务默认连接端口,两边用秘钥连接的时候分别在脚本里面指定对端正确端口。
扩展:修改ssh服务默认连接端口
vim /etc/services
(1)创建密钥:
ssh-keygen (回车后再按三下回车)
到此就生成密钥对,然后再使用ssh-copy-id命令 后面加对端主机IP 输入对端用户密码后,将私钥传给对方主机
(2)、在另外一台服务器上做同样操作,这样两边的服务器就可以免密码验证了
2、安装unison
unison各种版本下载地址:
http://www.seas.upenn.edu/~bcpierce/unison//download.html
unison编译器下载地址:
http://caml.inria.fr/pub/distrib/ocaml-3.10
从以上地址可以下载各种平台,各种版本的unison,有基于源码安装的,有二进制的,我下载的是二进制的,可以直接使用.这里介绍源码安装:
1:源码安装unison
Linux下从源码包编译安装,需要一个叫做Objective Caml compiler的工具,版本至少3.0.7,可以从这里下载:http://caml.inria.fr/
Ocaml安装脚本如下:
# tar zxvf ocaml-3.09.3.tar.gz
# cd ocaml-3.09.3
# ./configure
# make world opt
# make install
Unison对版本要求很高,进行同步的两台主机需要相同版本的unison,所以这里使用和windows一致的版本2.13.16,unison-2.13.16.tar.gz
安装脚本如下:
# 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这个命令进行。
3、 安装inotify工具inotify-tools
由于inotify特性需要Linux内核的支持,在安装inotify-tools前要先确认Linux系统内核是否达到了2.6.13以上,如果Linux内核低于2.6.13版本,就需要重新编译内核加入inotify的支持,也可以用如下方法判断,内核是否支持inotify:
[root@localhost webdata]# uname -r
2.6.18-164.11.1.el5PAE
[root@localhost webdata]# ll /proc/sys/fs/inotify
总计 0
-rw-r--r-- 1 root root 0 04-13 19:56 max_queued_events
-rw-r--r-- 1 root root 0 04-13 19:56 max_user_instances
-rw-r--r-- 1 root root 0 04-13 19:56 max_user_watches
如果有上面三项输出,表示系统已经默认支持inotify,接着就可以开始安装inotify-tools了。
可以到http://inotify-tools.sourceforge.net/下载相应的inotify-tools版本,然后开始编译安装:
[root@localhost ~]# tar zxvf inotify-tools-3.14.tar.gz
root@localhost ~]# cd inotify-tools-3.14
[root@localhost inotify-tools-3.14]# ./configure
[root@localhost inotify-tools-3.14]# make
[root@localhost inotify-tools-3.14]# make install
[root@localhost inotify-tools-3.14]# 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事件发生多少次等信息。
inotify相关参数
http://note.youdao.com/share/?id=8c2ed94299fae0377a8840e45330b7d1&type=note
inotify定义了下列的接口参数,可以用来限制inotify消耗kernel memory的大小。由于这些参数都是内存参数,因此,可以根据应用需求,实时的调节其大小。下面分别做简单介绍。
/proc/sys/fs/inotify/max_queued_evnets
表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。
/proc/sys/fs/inotify/max_user_instances
表示每一个real user ID可创建的inotify instatnces的数量上限。
/proc/sys/fs/inotify/max_user_watches
表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小,例如:
echo 30000000 > /proc/sys/fs/inotify/max_user_watches
inotifywait相关参数
Inotifywait是一个监控等待事件,可以配合shell脚本使用它,下面介绍一下常用的一些参数:
-m, 即--monitor,表示始终保持事件监听状态。
-r, 即--recursive,表示递归查询目录。
-q, 即--quiet,表示打印出监控事件。
-e, 即--event,通过此参数可以指定要监控的事件,常见的事件有modify、delete、create、attrib等。
更详细的请参看man inotifywait。
4、修改unison配置文件,并编写同步脚本进行实施监控同步。(server1和server2 上操作一样)
整个过程是通过使用innotify对目录和文件进行检查,然后根据变动调用unison工具进行同步
(1)创建两个新的prf文件:
[root@zabbix1 .unison]# vim zabbix.prf #同步zabbix配置,有几个注意的地方,不同版本的zabbix版本切记不要同步他的二进制文件,因为每个版本的zabbix编译所产难过的二进制文件不是一定是一样的。这样会造成一边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=cron.d path=lib path=share/zabbix/ #这下面放了告警脚本 #同步指定的子目录及文件,而非整个目录。可以写多个path,如在下面再写一个path = wwwbak。 ignore = Path etc/zabbix_agentd.conf #忽略/wwwroot下面的WEB-INF/tmp目录,即同步时不同步它。注意,这里是"Path",而不是"path"。
---------------------------------------------------------------------------------
[root@zabbix1 .unison]# vim webapps.prf #web文件同步
----------------------------------------------------------------------------------
# Unison preferences file #unison服务端配置文件 root=/Data/webapps/zabbix-frontend/ #本地文件夹 root=ssh://root@10.3.6.42//Data/webapps/zabbix-frontend/ (web文件) #远程文件夹 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 = /Data/apps/zabbix-2.4.3/bin/ #同步指定的子目录及文件,而非整个目录。可以写多个path,如在下面再写一个path = wwwbak。 #ignore = Path WEB-INF/tmp #忽略/wwwroot下面的WEB-INF/tmp目录,即同步时不同步它。注意,这里是"Path",而不是"path"。
------------------------------------------------------------------------------------
(2)编写同步脚本
[root@zabbix1 .unison]# vim unison.sh
-----------------------------------------------------------------------------------------------
#/bin/bash #2015/6/14 # lianglian@8866.comdir1="/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
-------------------------------------------------------------------------------------
(3)放后台执行脚本
[root@zabbix1 .unison]# nohup bash /root/.unison/unison.sh & #放后台,不会因为关闭窗口断开
(4)测试
两边都运行脚本后,即可到同步目录创建文件看看效果了。可以跟踪nohup.out文件查看情况
tailf nohup.out
四、zabbix高可用部署线上并实际运作:
1、修改稿zabbix_agent客户端中zabbix_agentd.conf配置文件中Server=10.3.6.153 ServerActive=10.3.6.153,puppet统一部署客户端。
2、web页面的编辑:(创建两个真实主机的监控,为了切到另一边也能实际看到zabbix server 的运作情况)
(1)修改server1的zabbix_agent配置文件,Hostname=zabbix_server1 (说一下我的环境,是主动模式,所以要求hostname和web上配置的hostname匹配),Server=10.3.6.153 ServerActive=10.3.6.153,DBHost=10.3.6.153
(2)修改server2的zabbix_agent配置文件,Hostname=zabbix_server2,Server=10.3.6.153 ServerActive=10.3.6.153,DBHost=10.3.6.153
(3)编辑zabbix server 监控主机:
(4)完全克隆zabbix server1,并修改hostname和IP,然后点击添加:
这样到此我们zabbix服务进行切换,web页面也能实时查看zabbix状态和随时查看备机的健康状态。
五、故障排查和注意事项:
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才能获取到数据
原因:
事后分析,为什么告警得只有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.3.6.153 #修改为虚IP
那么他再次去请求的时候就是通过这个虚IP去请求,对应agent端“Server=”项配置。匹配OK 故障恢复!
========================================================================
如果你觉得该篇文章写的不错,并且在你的工作或者生活中带来了帮助,那么你愿意在生活中给予我帮助吗?如果你愿意,为我写博客添加一些动力,可以扫下面得二维码给予我少量得赞助。
(不管再小得赞助都是你对我得肯定,这会是我一直坚持下去得动力~! 谢谢!)
这是我的微信:
转载于:https://blog.51cto.com/yigemeng/1738174
Zabbix高可用,实现zabbix的无缝切换,无故障时间相关推荐
- mysql vip_MySQL高可用集群的VIP切换
一.目的 实现在mysql高可用集群的VIP切换,不涉及数据补偿 二.基础环境 python3.0+ 三.具体三大部分 1.启动条件检测检测集群是否down机 方式 select 1 检测主库是否有V ...
- Keepalived高可用与zabbix监控脑裂
Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭 ...
- 来了,Zabbix 6.0原生HA高可用抢先体验
马嘉炜 | Zabbix开源社区签约专家 SRE运维工程师,六年Zabbix监控系统使用经验.在Zabbix架构设计及性能优化领域有丰富的经验,擅长监控模板制作及Zabbix API的二次开发. 官方 ...
- Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]
-------------------- 添加 zabbix 客户端主机 -------------------- 关闭防火墙 systemctl disable --now firewalld se ...
- 【三】部署zabbix-proxy代理服务器和高可用,以及监控windows系统和java应用
zabbix代理服务器和高可用 1.部署zabbix代理服务器 1.1 代理端zabbix-proxy配置 1.2 客户端zabbix-agent配置 1.3 zabbix-proxy总结 2. 部署 ...
- Nginx 高可用集群解决方案 Nginx + Keepalived
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:10pcm 链接:https://blog.51cto.co ...
- Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结
对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现nginx+redis+ehcache. Nginx 对于中间件nginx常用来做流量的分发,同时nginx本身 ...
- postgresql 集群_谁说postgresql 没有靠谱的高可用(2)
接上期说,(没看上期的,还是先看上期,要不从这看是看不懂的) 那到底这个手动转换的过程是如何的,这个要搞一搞清楚 repmgr -f /etc/repmgr.conf standby switchov ...
- Keeplived配置Nginx双机高可用【转】
原文:http://bbs.51cto.com/thread-1021620-1.html 一.简介 不管是Keepalived还是Heartbeat做高可用,其高可用,都是站在服务器脚本去说的高可用 ...
最新文章
- Docker 仓库管理
- 爬虫Selenium报错“cannot find Chrome binary“解决方案
- unbuntu 的更新源
- html注释的爱情故事,爱情故事”为你的婚礼贴上专属标签
- jlink怎么调试linux程序_STM32开发板JLINK调试步骤
- python自编一个循环计算题_Python练习:循环
- 第四章 政策过程及其理论模型
- Linux 下安装与设置Vim编辑器
- 腹腰部肌肉锻炼(腰会变粗)
- srand((unsigned int)time(NULL))的理解(C语言)
- 【建议收藏】15755字,讲透MySQL性能优化(包含MySQL架构、存储引擎、调优工具、SQL、索引、建议等等)
- FA-RPN: Floating Region Proposals for Face Detection(论文阅读笔记)
- 面试题整理 自问自答
- C/C++基础 hypot函数
- SpringBoot 之 Web开发
- Flexpoint: An Adaptive Numerical Format for Efficient Training of Deep Neural Networks:弯曲点:一种有效训练深度神
- Matplotlib的一些常规操作
- 微信支付SDK接入流程梳理
- border:none以及border:0的区别
- Java小程序开发实例!字节跳动Java岗经典面试真题,实战解析