当前位置: 首页 > news >正文

做app网站有哪些广州越秀公司网站建设

做app网站有哪些,广州越秀公司网站建设,国内大型php网站建设,绵阳市建设工程质量监督站网站目录 keepalivedHA简介常用的高可用软件keepalived简介 keepalived常用模块keepalived功能简介keepalived常用文件keepalived配置文件详解keepalived实验1-上手环境准备安装服务主配置文件修改启动服务效果查看 keepalived脑裂1. 脑裂现象简介2. 脑裂的原因3. 脑裂的预防和解决… 目录 keepalivedHA简介常用的高可用软件keepalived简介 keepalived常用模块keepalived功能简介keepalived常用文件keepalived配置文件详解keepalived实验1-上手环境准备安装服务主配置文件修改启动服务效果查看 keepalived脑裂1. 脑裂现象简介2. 脑裂的原因3. 脑裂的预防和解决方案4. 脑裂的处理流程 keepalived实验2-nginxkeepalived联动编写脚本检测到nginx down关闭keepalived服务使主备切换测试脚本修改keepalived配置脚本使其调用验证 keepalived 非抢占延迟抢占不抢占延迟抢占 keepalived 双主模式keeplived 通知脚本语法脚本脚本解释 脚本增加x权限并修改keepalived配置文件测试 keepalived 官网http://keepalived.org/ 官方文档https://keepalived.org/doc/ 官方文档http://keepalived.org/documentation.html HA简介 高可用即HA是指系统或服务能够在大部分时间内保持可用状态的能力。高可用性的设计目标是确保系统在面对硬件故障、软件错误、网络问题或其他意外情况时能够持续提供服务而不中断或降低性能。 常用的高可用软件 heartbeatkeepalived本文核心HAproxy keepalived简介 keepalived是基于vrrp协议改进出的一种用于Linux主机上的高可用软件用于进行L4的负载均衡ipvs。 keepalived的检查原理即vrrp协议是数通的一个常用协议用于热备路由器若主路由器宕机备份路由器自动接管业务无需修改配置本文不过多赘述可期待我后续文章或自行查阅别的文档。 keepalived为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)为ipvs集群的各RS做健康状态检测 keeplived支持基于脚本调用接口完成脚本中定义的功能进而影响集群事务以此支持nginx、haproxy等服务 分为主,备一般是2个节点.主备之间通过vrrp协议发送数据包沟通. 主给备定期发送数据包,备收到数据包表示主还活着,备无法收到数据包,表示主挂了,备胎转正了,接管用户请求流量. vrrp协议使用组播的ip. 224.xx.xx.xx可修改 keepalived常用模块 官方文档https://keepalived.org/doc/software_design.html 核心模块包含 LVS Framework: Uses the getsockopt and setsockopt calls to get and set options on sockets.Netfilter Framework: IPVS code that supports NAT and MasqueradingNetlink Interface: Sets and removes VRRP virtual IPs on network interfaces.Multicast: VRRP advertisements are sent to the reserved VRRP MULTICAST group (224.0.0.18). Core是keepalived的核心负责主进程的启动和维护全局配置文件的加载解析等 。Check负责healthchecker(健康检查)包括了各种健康检查方式以及对应的配置的解析包括LVS的配置解析VrrpVRRPD子进程VRRPD子进程就是来实现VRRP协议Libipfwciptables(ipchains)库配置LVS会用到Libipvs虚拟服务集群配置LVS会使用。 keepalived功能简介 提供负载均衡以vip虚拟ip进行工作提供L4的负载均衡但实际是主备架构检测服务器状态定时检查服务器状态不正常时自动启用备份服务器 keepalived常用文件 主配置文件/etc/keepalived/keepalived.conf主程序文件/etc/sysconfig/keepalived /usr/sbin/keepalived日志文件(keeplived没有自己的日志文件)/var/log/messages keepalived配置文件详解 配置文件keepalived.conf可以包含三个文本块全局定义块、VRRP实例定义块及虚拟服务器定义块。全局定义块和虚拟服务器定义块是必须的如果在只有一个负载均衡器的场合就不须VRRP实例定义块。 Global definitions全局配置定义邮件配置route_idvrrp配置组播地址 等VRRP instance(s)定义vrrp协议中的每个vrrp虚拟路由器的规则基本信息,vrrp协议配置,vip,主备,网卡…经常改动部分.Virtual server(s)LVS集群的VS和RS [全局定义块] global_defs {notification_email { # 指定keepalived在发生切换时需要发送email到的对象一行一个;xxxyyy.com } notification_email_from rootlocalhost # 指定发件人smtp_server 127.0.0.1 # 指定smtp服务器地址smtp_connect_timeout 3 # 指定smtp连接超时时间router_id LVS_DEVEL # 运行keepalived机器的标识 } [监控Nginx进程] vrrp_script chk_nginx { script /server/script/nginx.sh # 监控服务脚本脚本需要有x执行权限interval 2 # 检测时间间隔(执行脚本间隔)weight 1 # 权重user root # 执行脚本的用户 } [VRRP实例定义块] vrrp_sync_group VG_1{ # 监控多个网段的实例group { VI_1 # 实例名1VI_2 } notify_master /data/sh/nginx.sh # 指定当切换到master时执行的脚本notify_backup /data/sh/nginx.sh # 指定当切换到backup时执行的脚本notify /data/sh/nginx.sh # 发生任何切换均执行的脚本smtp_alert # 使用global_defs中提供的邮件地址和smtp服务器发送邮件通知 } vrrp_instance VI_1 { state BACKUP # 设置主机状态MASTER|BACKUPnopreempt # 设置为不抢占 interface ens33 # 对外提供服务的网络接口 lvs_sync_daemon_inteface ens33 # 负载均衡器之间监控接口; track_interface { # 设置额外的监控网卡出现问题都会切换ens33 ens37 } mcast_src_ip # 发送组播包的地址如果不设置默认使用绑定网卡的primary ipgarp_master_delay # 在切换到master状态后延迟进行gratuitous ARP请求virtual_router_id 50 # VRID标记 ,路由ID可通过#tcpdump vrrp查看priority 90 # 优先级优先级高者竞选为masteradvert_int 5 # 检查间隔默认5秒preempt_delay # 抢占延时默认5分钟debug # debug日志级别authentication { # 设置认证auth_type PASS # 认证方式auth_pass 1111 # 认证密码}track_script { # 以脚本为监控chk_nginxchk_nginx } virtual_ipaddress { # 设置vip地址192.168.111.188} } 注意使用了脚本监控Nginx或者MYSQL不需要下面虚拟服务器设置块。 [虚拟服务器定义块] virtual_server 192.168.111.188 3306 {delay_loop 6 # 健康检查时间间隔lb_algo rr # 调度算法rr|wrr|lc|wlc|lblc|sh|dhlb_kind DR # 负载均衡转发规则NAT|DR|TUNpersistence_timeout 5 # 会话保持时间protocol TCP # 使用的协议real_server 192.168.1.12 3306 { weight 1 # 默认为1,0为失效notify_up string | quoted-string # 在检测到server up后执行脚本notify_down string | quoted-string # 在检测到server down后执行脚本TCP_CHECK {connect_timeout 3 # 连接超时时间;nb_get_retry 1 # 重连次数;delay_before_retry 1 # 重连间隔时间;connect_port 3306 # 健康检查的端口;}HTTP_GET { url {path /index.html # 检测url可写多个digest 24326582a86bee478bac72d5af25089e # 检测效验码# digest效验码获取方法genhash -s IP -p 80 -u http://IP/index.html status_code 200 # 检测返回http状态码} } } 不过上述完整脚本非常复杂实际上简单实用仅需以下内容即可 [rootlb01 scripts]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {router_id lb01 # 所有keepalived集群中router_id唯一 }vrrp_instance VRRP_55 { # 实例名相同的在一个vrrp实例组中state MASTER # 只有一个master可以有多个BACKUPinterface ens33 # 使用的网口virtual_router_id 55 # vrrp idpriority 100 # 优先级越高越优先advert_int 1 # vrrp通告报文间隔1sauthentication { # 认证模块auth_type PASS # 是否认证auth_pass 5555 # 认证密码}virtual_ipaddress { # 该vrrp实例的vip192.168.100.55 dev ens33 label ens33:0} } keepalived实验1-上手 环境准备 lb01 nginxkeeplived lb02 (克隆lb01)安装服务 rpm -qa | grep keepalivedyum install -y keepalived主配置文件修改 具体的主配置文件参数见上文配置详解 启动服务 # 关闭防火墙和selinux不然会导致脑裂 systemctl stop firewalld setenforce 0 systemctl start keeplived效果查看 vip 抓包 keepalived脑裂 1. 脑裂现象简介 脑裂是指在多节点系统中由于网络问题、节点故障或其他原因导致系统中的多个节点同时认为自己是活动的从而产生数据不一致或服务中断的现象。在分布式系统中脑裂是一个严重的问题可能导致数据丢失或损坏服务不可用甚至系统崩溃。 在keeplived中即主备均有vip 2. 脑裂的原因 脑裂通常由以下原因引起 时钟同步问题节点间的时间不一致可能导致节点对系统状态的理解产生分歧。配置错误不当的配置可能导致节点无法正确判断其他节点的状态。节点故障节点的硬件故障或软件异常可能导致节点行为异常。防火墙selinux和防火墙默认不放行vrrp流量需要进行放行流量或关闭。 3. 脑裂的预防和解决方案 为了预防和解决脑裂问题可以采取以下措施 心跳检测节点之间通过定期发送心跳消息来监控彼此的状态一旦发现某个节点失联可以及时采取措施。时钟同步使用NTP网络时间协议或其他同步机制来确保节点间的时间一致性。监控和报警实时监控系统的状态一旦发现异常立即报警并采取措施。可以考虑只要BACKUP上出现vip就让MASTER下线非常粗暴的解决方式 4. 脑裂的处理流程 当系统发生脑裂时可以按照以下步骤进行处理 检测脑裂通过监控系统或日志分析发现节点间通信异常。隔离问题节点将问题节点从服务中隔离避免其继续影响系统状态。故障排查分析脑裂的原因修复网络或配置问题。 keepalived实验2-nginxkeepalived联动 需求在nginx服务down时自动触发keepalived主备切换 keepalived是主机down才会切换默认不会监控某个服务 可以修改主配置文件增加脚本监控 编写脚本检测到nginx down关闭keepalived服务使主备切换 [rootlb01 scripts]# cat check_ngx.sh #!/bin/bash # 脚本用于检测nginx的进程是否等于0nginx没有进程时就关闭keepalived服务 # 注意 脚本名.sh不要写全服务名不然在过滤进程时会将脚本过滤出来导致出现错误 countss -tunlp | grep nginx | wc -l echo ngx 端口数量 $count# -eq用于数值的比较用于字符串的比较-ne不等于 if [ ${count} -eq 0 ]; thensystemctl stop keepalived fi 测试脚本 nginx存在 [rootlb01 scripts]# sh check_ngx.sh ngx 端口数量 1 [rootlb01 scripts]# systemctl status keepalived.serviceActive: active (running) since Tue 2024-06-18 11:18:08 CST; 17min ago nginx不存在 [rootlb01 scripts]# pkill nginx [rootlb01 scripts]# sh check_ngx.sh ngx 端口数量 0[rootlb01 scripts]# systemctl status keepalived.serviceActive: inactive (dead) # 查看日志 [rootlb01 scripts]# tail -10 /var/log/messages Jun 18 11:35:41 lb01 systemd[1]: nginx.service: Failed with result exit-code. Jun 18 11:35:44 lb01 systemd[1]: Stopping LVS and VRRP High Availability Monitor... Jun 18 11:35:44 lb01 Keepalived[19322]: Stopping Jun 18 11:35:45 lb01 Keepalived_vrrp[19323]: (VRRP_55) sent 0 priority Jun 18 11:35:45 lb01 Keepalived_vrrp[19323]: (VRRP_55) removing VIPs. Jun 18 11:35:46 lb01 Keepalived_vrrp[19323]: Stopped - used 0.001242 user time, 0.161294 system time Jun 18 11:35:46 lb01 Keepalived[19322]: CPU usage (self/children) user: 0.001348/0.001242 system: 0.000000/0.162545 Jun 18 11:35:46 lb01 Keepalived[19322]: Stopped Keepalived v2.1.5 (07/13,2020) Jun 18 11:35:46 lb01 systemd[1]: keepalived.service: Succeeded. Jun 18 11:35:46 lb01 systemd[1]: Stopped LVS and VRRP High Availability Monitor. 修改keepalived配置脚本使其调用 # 脚本增加x权限 [rootlb01 scripts]# chmod x check_ngx.sh [rootlb01 scripts]# ll total 4 -rwxr-xr-x 1 root root 144 Jun 16 09:52 check_ngx.sh# 修改keepalived配置文件 [rootlb01 scripts]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {router_id lb01 } # 添加以下内容定义vrrp脚本 vrrp_script check_ngx { # 脚本名用于在vrrp_instance中调用script /server/scripts/check_ngx.sh # 指定的运行脚本需要x权限interval 2 # 检测间隔2sweight 1 # 权重1user root # 执行脚本的用户为root }vrrp_instance VRRP_55 {state MASTERinterface ens33virtual_router_id 55priority 100advert_int 1authentication {auth_type PASSauth_pass 5555}virtual_ipaddress {192.168.100.55 dev ens33 label ens33:0}track_script { # 调用上述vrrp脚本check_ngx # 即上面定义的名字} }# 重启服务 [rootlb01 scripts]# systemctl restart keepalived.service 验证 # 直接kill nginx不用执行脚本keepalived自动检测并关闭自身 [rootlb01 scripts]# pkill nginx [rootlb01 scripts]# tail -5 /var/log/messages Jun 18 11:50:21 lb01 Keepalived_vrrp[21044]: Stopped - used 0.000000 user time, 0.026432 system time Jun 18 11:50:21 lb01 Keepalived[21043]: CPU usage (self/children) user: 0.001334/0.090439 system: 0.000000/0.265936 Jun 18 11:50:21 lb01 Keepalived[21043]: Stopped Keepalived v2.1.5 (07/13,2020) Jun 18 11:50:21 lb01 systemd[1]: keepalived.service: Succeeded. Jun 18 11:50:21 lb01 systemd[1]: Stopped LVS and VRRP High Availability Monitor.[rootlb01 scripts]# systemctl status keepalived.serviceActive: inactive (dead) # 现在vip出现在lb02即BACKUP上 [rootlb02 ~]# ip a | grep 100.55inet 192.168.100.55/32 scope global ens33:0 # 即使手动拉起lb01的keepalived若没有在lb01上启动nginxkeepalived仍然会自动关闭 keepalived 非抢占延迟抢占 keepalived默认是抢占模式即MASTER活了之后会抢夺vip的控制权 如果在动荡网络中一直抢占与被抢占会导致业务不稳定 所以可以考虑修改为不抢占延迟抢占 不抢占 修改流程 两个节点均为BACKUP两个节点都增加一行nopreempt 延迟抢占 修改流程 两个节点均为BACKUP仅其中一台增加一行preempt_delay 30 keepalived 双主模式 即两个vrrp实例类似于数通中mstpvrrp实验。 keeplived 通知脚本 具体的配置邮件分发请参考我之前的博客如何使用openEuler 22.03 配置mail.rc给邮箱发送邮件 语法 事件脚本参数当前节点成为主节点时触发的脚本notify_master 当前节点转为备节点时触发的脚本notify_backup 当前节点转为“失败”状态时触发的脚本notify_fault 通用格式的通知触发机制notify 当停止VRRP时触发的脚本notify_stop 脚本 #!/bin/bash # contactxxxqq.com notify() {mailsubject$(hostname) to be $1, vip floatingmailbody$(date %F %T): vrrp transition, $(hostname) changed to be $1echo $mailbody | mail -s $mailsubject $contact } case $1 in master)notify master;; backup)notify backup;; fault)notify fault;; *)echo Usage: $(basename $0) {master|backup|fault}exit 1;; esac脚本解释 联系邮箱contact‘xxxqq.com’这行代码设置了接收通知的电子邮件地址。在实际使用中应该替换为真实的邮箱地址。notify 函数这个函数用于发送电子邮件。它接受一个参数表示Keepalived的新状态master、backup 或 fault。函数内部它构建了邮件的主题和正-文并使用 mail 命令将通知发送到指定的邮箱。mailsubject邮件主题包含了主机名和新状态的信息。mailbody邮件正文包含了变化发生的时间和主机名以及状态变化的信息。case 语句这是一个选择语句根据脚本接收的第一个参数$1来执行不同的操作。master如果参数是 master则调用 notify 函数并传入 master 参数表示主机成为主节点。backup如果参数是 backup则调用 notify 函数并传入 backup 参数表示主机成为备节点。fault如果参数是 fault则调用 notify 函数并传入 fault 参数表示主机状态变为故障。*如果参数不是以上任何一个脚本会输出一条使用帮助信息并退出脚本返回码为1。 脚本增加x权限并修改keepalived配置文件 chmod x malikl.sh# vrrp_instance中添加 [rootlb01 scripts]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {router_id lb01 } vrrp_script check_ngx {script /server/scripts/check_ngx.shinterval 2weight 1user root }vrrp_instance VRRP_55 {state MASTERinterface ens33virtual_router_id 55priority 100advert_int 1authentication {auth_type PASSauth_pass 5555}virtual_ipaddress {192.168.100.55 dev ens33 label ens33:0}# 添加以下3行notify_master /server/scripts/mailkl.sh masternotify_backup /server/scripts/malikl.sh backupnotify_fault /server/scripts/malikl.sh faulttrack_script {check_ngx} } 测试 [rootlb01 scripts]# systemctl restart keepalived.service检测到keepalived服务变化时自动发送邮件
http://www.dnsts.com.cn/news/242634.html

相关文章:

  • html创建站点的步骤wordpress付费播放
  • 餐饮品牌设计网站网站备案被注销的原因
  • 有哪些做副业的网站优秀的门户网站
  • 花都做网站公司wordpress博客字体
  • 用vs做网站在安装时要勾选霸州做网站1766534168
  • 网站怎么放404页面网站关键词排名优化方法
  • 网站备案icp备案wordpress部署到sae
  • 怎么查看网站是否降权wordpress demo数据
  • 做网站最好的工具优化方案2021版语文答案
  • 简诉网站建设的基本流程图唐山石家庄做网站哪家好
  • 搜狐快站免费html网站模板
  • 专业做网站广州河南大宗商品交易平台
  • 葫芦岛手机网站建设怎么在网站上做外链
  • ui网页设计规则南宁seo 网站收录
  • 博星卓越营销网站设计淘宝网店运营策划书3000字
  • 湖南营销型网站建设磐石网络省钱个人店铺名字大全
  • 外贸网站用wordpress电商平台寻求供货商
  • 商务网站网络环境设计建网站相关知识
  • 电脑什么网站可以做长图攻略网站优化三要素
  • 网站营销外包公司网站建设及托管合同
  • 网站流量的作用广告在什么网站做
  • 南宁seo网站排名优化公司网页建设
  • 深圳响应式网站建设一个成功的网站必须具备
  • 申请个人网站域名绍兴公司做网站
  • 自己建设网站用哪个wordpress安装谷歌分析代码
  • 在线生成个人网站推荐高端的网站建设怎么做
  • 花都有沒有网站建设的平台网站建设ppt
  • 本地网站建设教程xampp企业管理培训课程游戏
  • 长沙网站开发智logo在线制作设计
  • 京东商城网站域名专业建网站价格