菜鸟学Linux 第093篇笔记 keepalived

简介:

菜鸟学Linux 第093篇笔记 keepalived




内容总览

keepalived介绍

配置keepalived的ipvs功能

keepalived的几个问题解决方法




keepalived

它可以实现ipvs的功能,并且还可以实现前端的ipvs-server高可用,以及后台realserver

的健康状态检查,而不像ipvs需要用户自己来写脚本完成后台的realserver健康状态检测


HA的底层功能

ipvs --> ha 为ipvs提供高可用功能ha

ipvs --> 可以使VIP在节点间流转

vrrp 虚拟路由冗余协议

能将多个物理接口虚拟成一个物理接口,用来解决局域网网关的冗余






配置keepalived 使其实现ipvs的功能,可以检测后台realserver的状态


准备工作

两台realserver节点 192.168.11.105 192.168.11.106

/proc/sys/net/ipv4/conf/all/arp_announce=2

/proc/sys/net/ipv4/conf/all/arp_ignore=1

/proc/sys/net/ipv4/conf/lo/arp_announce=2

/proc/sys/net/ipv4/conf/lo/arp_ignore=1

netstat -tunlp 开启80端口 (httpd)


两台keepalived + ipvsadm节点 192.168.11.101 192.168.11.102

虚拟的IP为192.168.11.100



1. 两台keepalived + ipvsadm节点安装

# yum -y install keepalived ipvsadm(安装ipvsadm软件是为了查看规则)


2. 配置节点的keepalived /etc/keepalived/keepalived.conf

# vim /etc/keepalived/keepalived.conf

修改如下

global_defs {

   notification_email {

    root@localhost (此项里是添加email地址,当有信息是将通知到此mail里)

   }

   notification_email_from keepalive@localhost (寄件人)

   smtp_server 127.0.0.1  

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}


vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 101

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass keepaliveps

    }

    virtual_ipaddress {

192.168.11.100/24 dev eth0 label eth0:0  (所虚拟的地址)

    }

}


virtual_server 192.168.11.100 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    #persistence_timeout 50

    protocol TCP


    real_server 192.168.11.105 80 {

        weight 1

        HTTP_GET { (验证http的方式)

            url {

              path /

      status_code 200

            }

            connect_timeout 2

            nb_get_retry 3

            delay_before_retry 1

        }

    }

    real_server 192.168.11.106 80 {

        weight 1

        HTTP_GET {

            url {

              path /

      status_code 200

            }

            connect_timeout 2

            nb_get_retry 3

            delay_before_retry 1

        }

    }

}

备节点里只需要将此配置文件复制过去然后修改state MASTER 为备份节点即可BACKUP



keepalived的几个问题解决

1. 所有realserver都down,如何处理?

在两台前端ipvs服务器安装httpd 并开启此服务 记得要添加html文档

在配置文件/etc/keepalived/keepalived.conf

virtual_server 192.168.11.100 80 括号里添加sorry_server 127.0.0.1 80


2. 自写监测脚本,完成维护模式切换ipvs-server主备切换

# vim /etc/keepalived/keepalived.conf

在vrrp_instance 添加一段

    track_script {

chk_schedown

    }

添加一段在末尾

vrrp_script chk_schedown {

    script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"

    interval 1

    weight -2

    fall 2

    rise 1

}

当要测试使其ipvs服务器切换只需要在/etc/keepalived/目录创建一个down文件,查看其是否

会切换


3. 如何在vrrp事务发生时,主备切换时,如何发送警告邮件给指定的管理员?

编写脚本vim /etc/keepalived/notify.sh

#!/bin/bash

#


contact='root@localhost'


Usage() {

  echo "Usage: `basename $0` {master|backup|fault} VIP"

}


Notify() {

  subject="`hostname`'s state changed to $1"

  mailbody="`date "+%F %T"`: `hostname`'s state changed to $1, $VIP floating."

  echo $mailbody | mail -s "$subject" $contact

}


VIP=$2


case $1 in

  master)

    Notify master

    ;;

  backup)

    Notify backup

    ;;

  fault)

    Notify fault

    ;;

  *)

    Usage

    exit 1

    ;;

esac

此脚本可接受参数,当接受到指定的参数时,则会将相应的信息发送给root用户的mailbox里


编辑/etc/keepalived/keepalived.conf

在vrrp_instance 括号里添加

    notify_master "/etc/keepalived/notify.sh master 192.168.11.100"

    notify_backup "/etc/keepalived/notify.sh backup 192.168.11.100"

    notify_fault "/etc/keepalived/notify.sh fault 192.168.11.100"


至此,当主节点和备节点切换时,,则会以邮件形式通知给root

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1895007如需转载请自行联系原作者

Winthcloud
相关文章
|
3天前
|
存储 运维 Java
Linux笔记02 —— Shell补充
Linux笔记02 —— Shell补充
29 2
|
3天前
|
安全 Linux Shell
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
16 1
|
4天前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
12天前
|
编解码 Linux
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
在《FFmpeg开发实战》一书中,介绍了如何在Linux环境下为FFmpeg集成libopus和libvpx,以支持WebM格式的Opus和VP8/VP9编码。首先,下载并安装libopus。接着,下载并安装libvpx。最后,在FFmpeg源码目录下,重新配置FFmpeg,启用libopus和libvpx,编译并安装。通过`ffmpeg -version`检查版本信息,确认libopus和libvpx已启用。
FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
|
12天前
|
编解码 Linux
FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
在Linux环境下,为FFmpeg添加对AAC、MP3、OGG和AMR音频格式的支持,需安装libogg、libvorbis和opencore-amr库。首先,从官方源下载各库的最新源码,如libogg-1.3.5、libvorbis-1.3.7和opencore-amr-0.1.6,然后解压并依次执行`./configure`、`make`和`make install`进行编译安装。接着,在FFmpeg源码目录中,使用`./configure`命令重新配置,并重新编译安装FFmpeg。最后,验证FFmpeg版本信息确认已启用ogg和amr支持。
FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
|
12天前
|
Linux 开发工具
【Linux笔记】文件查看和编辑
【Linux笔记】文件查看和编辑
|
12天前
|
Linux
【Linux笔记】文件和目录操作
【Linux笔记】文件和目录操作
|
12天前
|
运维 监控 Linux
【Linux笔记】系统信息
【Linux笔记】系统信息
|
12天前
|
安全 Linux 网络安全
【Linux笔记】网络操作命令详细介绍
【Linux笔记】网络操作命令详细介绍
|
12天前
|
Linux 数据安全/隐私保护
【Linux笔记】用户和权限管理基本命令介绍
【Linux笔记】用户和权限管理基本命令介绍