sách gpt4 ai đã đi

Sử dụng đơn giản keepalived

In lại Tác giả: Tôi là một chú chim nhỏ Thời gian cập nhật: 2023-04-05 22:34:22 26 4
mua khóa gpt4 Nike

Nguyên tắc

Bài viết này chủ yếu nghiên cứu keepalived và nginx để đạt được tính khả dụng cao của nginx, nghĩa là keepalived cần phải bị vô hiệu hóa khi phát hiện nginx ngừng hoạt động và bản sao lưu keepalived sẽ tự động nhận được.

Nguyên lý thì đơn giản (như hình dưới). Máy chủ chính và máy chủ dự phòng sẽ được cấu hình với cùng VIP (IP ảo). Máy chủ nào có mức độ ưu tiên cao hơn sẽ nhận được yêu cầu VIP. Sau đó, nginx và keepalived được triển khai trên cùng một máy chủ. Máy điều khiển keeplived nhận được yêu cầu VIP và chuyển cho nginx để xử lý yêu cầu. Chức năng chính của nginx là cân bằng tải. Việc cài đặt và cấu hình nginx sẽ không được nhắc lại ở đây. Bạn có thể tham khảo tại đây: cài đặt và sử dụng ngix.

Keepalived có nhiều chức năng, bài viết này chỉ là bản demo đơn giản nhất để đạt được tính khả dụng cao với ngxin.

Cài đặt

  • Cài đặt các gói lệnh phổ biến: yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel .

  • Cài đặt: yum install -y keepalived .

  • Bắt đầu: systemctl start keepalived .

  • Khởi động lại: systemctl restart keepalived .

  • Để tắt: systemctl stop keepalived .

  • Tự động khởi động khi khởi động: systemctl enable keepalived .

  • Sửa đổi tệp cấu hình: vim /etc/keepalived/keepalived.conf .

                                
                                  ! Tệp cấu hình cho keepalived # Định nghĩa bộ định tuyến ảo, phải được gọi VI_1 vrrp_instance VI_1 { state MASTER #Đặt thành máy chủ chính, máy chủ dự phòng thành giao diện BACKUP enp0s3 #Giám sát giao diện mạng (lệnh ifconfig hoặc ip addr để tìm ra card mạng) priority 100 #(priority, high hơn cho master, lower cho backup) virtual_router_id 99 #RouterId phải nhất quán trong cùng một vrrp_instance authentication { auth_type PASS #phương thức xác thực vrrp phải nhất quán giữa master và backup auth_pass 12345 #password} virtual_ipaddress { 192.168.0.99 #IP ảo, master và slave nhất quán, có thể cấu hình nhiều ip} }
    
                                
                              
  • Sử dụng cùng phương pháp và cấu hình trên máy kia (thay đổi trạng thái thành BACKUP và điều chỉnh mức độ ưu tiên, trong ví dụ này là 80).

Thiết bị chủ và thiết bị tớ của vrrp không được xác định bởi MASTER và BACKUP được cấu hình trong stat mà theo mức độ ưu tiên.

  • Vị trí nhật ký mặc định: /var/log/tin nhắn Tham chiếu sửa đổi vị trí: phương pháp nhật ký cấu hình keepalived

Tài liệu tham khảo 1: Cài đặt và cấu hình Keepalived trên Linux.

Tài liệu tham khảo 2: Giới thiệu về nguyên tắc Keepalived và thực hành cấu hình.

Tài liệu tham khảo 3: giới thiệu, cài đặt và cấu hình keepalived.

Tài liệu tham khảo 4: https://codor.lanzoue.com/b012qnsvc Mật khẩu: 1i77.

Kiểm tra não bị chia đôi

  • Sử dụng tcpdump -i enp0s3 -nn host 224.0.0.18 hoặc tcpdump -i enp0s3 | grep VRRP để kiểm tra. Kênh phát sóng mặc định là 224.0.0.18 (tôi đã xóa thời gian và thay đổi nội dung).

                                
                                  192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 192.168.0.117 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 80, authtype đơn giản, intvl 1 giây, chiều dài 20 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, prio 100, authtype đơn giản, intvl 1 giây, chiều dài 20 192.168.0.117 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, prio 80, authtype đơn giản, intvl 1 giây, chiều dài 20
    
                                
                              
  • Nếu kết quả như trên thì tức là não bị chia đôi (cả chủ và dự bị đều thề với thế giới bên ngoài rằng mình là ông chủ).

    Nguyên nhân của tình huống này là tường lửa hoặc iptables chặn yêu cầu vrrp, vì vậy hãy bỏ qua.

    Tường lửa (khuyến nghị)

                                
                                  tường lửa-cmd --add-rich-rule='giá trị giao thức quy tắc="vrrp" chấp nhận' --permanent tường lửa-cmd --tải lại
    
                                
                              

    iptables

                                
                                  iptables -A INPUT -s 192.168.1.0/24 -d 224.0.0.18 -j CHẤP NHẬN iptables -A INPUT -s 192.168.1.0/24 -p vrrp -j CHẤP NHẬN
    
                                
                              

    Nếu không tồn tại, bạn có thể cài đặt nó bằng lệnh yum install iptables-services.

    • Tài liệu tham khảo 1: Quy trình chuyển mạch có tính khả dụng cao Keepalived.

    • Tài liệu tham khảo 2: Cấu hình tường lửa giao thức VRRP keepalived của centos7.

    • Tài liệu tham khảo 3: Vấn đề não chia đôi của keepalived và giải pháp.

    • Tài liệu tham khảo 4: iptables yêu cầu một giao thức mở khi sử dụng keepalived.

    • Tài liệu tham khảo 5: Các lệnh thường dùng trong tường lửa iptables của Linux.

  • Cuối cùng, kết quả hoạt động bình thường được đính kèm, tức là chỉ có máy có mức độ ưu tiên 100 hoặc 80 mới phát đi thông báo rằng nó là máy chủ.

                                
                                  09:26:55.782258 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 09:26:56.782910 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 09:26:57.783787 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, 09:26:58.784709 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 09:26:59.784792 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản, intvl 1 giây, chiều dài 20 09:27:00.785171 IP 192.168.0.111 > 224.0.0.18: VRRPv2, Quảng cáo, vrid 99, ưu tiên 100, authtype đơn giản 100, authtype đơn giản, intvl 1s, chiều dài 20
    
                                
                              

Kiểm tra IP trôi

IP drift: Là quá trình chuyển mạch chính và dự phòng, quá trình chuyển mạch VIP sang IP thực. Còn được gọi là chuyển mạch chính và dự phòng.

Quá trình kiểm tra là vô hiệu hóa keepalived trên máy chủ hoặc tắt máy chủ, và kiểm tra xem máy dự phòng có thể tiếp quản bình thường không. Nói chung, có thể chuyển đổi trong khoảng 1 giây. Khi xảy ra hiện tượng não bị tách, quá trình chuyển đổi cũng có thể thực hiện được, nhưng rất chậm, khoảng 7 giây. Lý do cụ thể không được điều tra.

Quá trình drift có thể đạt được bằng cách bắt các gói tin, chuyển tiếp chúng đến các dự án tomcat hoặc trang web khác nhau thông qua hai ngxin hoặc sửa đổi trang web mặc định của ngxin để thử nghiệm.

Đến đây, việc sử dụng đơn giản đã hoàn tất. Sau đây là một số cấu hình chức năng.

Tập lệnh VRRP

  • Kiểm tra thư mục cấu hình keepalived: cd /etc/keepalived/ .

  • Tạo một tệp lệnh: vim nginx_check.sh .

                                
                                  #!/bin/bash count=`ps -C nginx --no-header |wc -l` nếu [ $count -eq 0 ];sau đó killall keepalived fi
    
                                
                              
  • Cấp quyền thực thi: chmode +x nginx_check.sh .

  • Nhập tập lệnh: vim keepalived.conf .

    Ở cùng cấp độ với vrrp_instance, trong đó.

    • chk_nginx: tên tập lệnh, có thể tùy chỉnh.

    • script: Vị trí tập lệnh.

    • interval : khoảng thời gian thực hiện.

    • weight: weight. Nếu là số âm, nó sẽ ảnh hưởng đến mức ưu tiên trong vrrp_instance khi thực thi không thành công. Vì công tắc active-standby được chuyển đổi theo mức ưu tiên, nên công tắc active-standby cũng có thể được điều khiển chủ động theo mức ưu tiên này. Nội dung trong tập lệnh có thể linh hoạt triển khai nhiều chức năng. Bản demo này chỉ đơn giản triển khai việc tự động tắt keepalived sau khi phát hiện ngxin đã tắt. Nó cũng có thể được bật sau khi phát hiện được bắt đầu, sau đó kiểm tra xem quá trình khởi động có thành công hay không sau thời gian trễ 2 giây. Nếu không thành công, keepalived sẽ bị đóng hoặc mức ưu tiên sẽ bị hạ xuống (có thông báo nhấp chuột phải).

                                      
                                        vrrp_script chk_nginx { tập lệnh "/etc/keepalived/nginx_check.sh" khoảng thời gian 2 #trọng số -30 }
      
                                      
                                    
  • Được cấu hình trong vrrp_instance, ở cùng cấp độ với authentication và virtual_ipaddress.

                                
                                  theo dõi_kịch_bản { chk_nginx }
    
                                
                              
  • Tệp cấu hình đã được sửa đổi.

                                
                                  ! Tệp cấu hình cho keepalived vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 #weight -30 } vrrp_instance VI_1 { trạng thái MASTER giao diện enp0s3 priority 100 advert_int 1 virtual_router_id 99 xác thực { auth_type PASS auth_pass 221531 } track_script { chk_nginx } virtual_ipaddress { 192.168.0.99 } }
    
                                
                              
  • Bài kiểm tra.

    Trong quá trình khởi động bình thường, hãy tắt nginx theo cách thủ công và kiểm tra trạng thái keepalived.

  • tham khảo

    • Tài liệu tham khảo 1: Giải thích chi tiết về vrrp_script trong keepalived.

    • Tài liệu tham khảo 2: Cách thực hiện chuyển đổi chủ-tớ của Keepalived.

Cấu hình thư

Hàm mail là lệnh mail trên Linux.

  • Cài đặt mail: yum -y install mailx .

  • Chỉnh sửa tệp cấu hình (thiết lập thông tin người gửi): vim /etc/mail.rc , thêm vào cuối.

                                
                                  đặt từ=xxx@163.com đặt smtp=smtp.163.com đặt smtp-auth-user=xxx@qq.com đặt smtp-auth-password=KJFHTOSXZQPNFAIU #Hộp thư cần bật dịch vụ POP3/SMTP và đặt khóa đặt smtp-auth=đăng nhập đặt ssl-verify=bỏ qua
    
                                
                              
  • Kiểm tra chức năng thư: echo test mail | mail -s testa recipientid@qq.com.

    • -s nghĩa là chủ ngữ.

    • Thư kiểm tra trong echo test mail là nội dung của email.

    • Cuối cùng hãy theo dõi người nhận.

  • Cấu hình trong keepalived, phương pháp 1.

    • Tạo tập lệnh vim mail_send.sh (nhớ cấp quyền thực thi).

      Bạn có thể sử dụng ./mail_send.sh master để kiểm tra.

                                      
                                        #!/bin/bash contact='hộp thư của người nhận@qq.com' thông báo() { mailsubject="$(hostname) thành $1, chuyển vip" mailbody="$(ngày +'%F %T'): chuyển tiếp vrrp, $(hostname) đã thay đổi thành $1" echo "$mailbody" | mail -s "$mailsubject" $contact } trường hợp $1 trong master) thông báo cho master ;; sao lưu) thông báo cho backup ;; lỗi) thông báo cho error ;; *) echo "Cách sử dụng: $(basename $0) {master|backup|fault}" thoát 1 ;; esac
      
                                      
                                    
    • Sửa đổi tệp cấu hình: vim keepalived.conf .

      Ở cùng cấp độ với xác thực trong vrrp_instance.

                                      
                                        thông báo_chủ "/etc/keepalived/mail_send.sh chủ" thông báo_sao lưu "/etc/keepalived/mail_send.sh sao lưu" thông báo_lỗi "/etc/keepalived/mail_send.sh lỗi"
      
                                      
                                    
    • Tệp cấu hình tổng thể.

                                      
                                        ! Tệp cấu hình cho keepalived vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 #weight -30 } vrrp_instance VI_1 { state MASTER interface enp0s3 priority 100 advert_int 1 virtual_router_id 99 # Kích hoạt script khi vào trạng thái master/backup/fault và có thể mang theo các tham số notify_master "/etc/keepalived/mail_send.sh master" notify_backup "/etc/keepalived/mail_send.sh backup" notify_fault "/etc/keepalived/mail_send.sh fault" authentication { auth_type PASS auth_pass 221531 } track_script { chk_nginx } virtual_ipaddress { 192.168.0.99 } }
      
                                      
                                    
  • Cấu hình trong keepalived, phương pháp 2.

    • Nội dung tập lệnh sau đây tạo bản sao lưu và lỗi khi chuyển sang chế độ chính.

                                      
                                        #!/bin/bash contacts='Hộp thư người nhận 1, Hộp thư người nhận 2' ip a > ipa_temp.txt echo "$(date +'%F %T'): Phiên bản Keepalived Tôi đã trở thành MASTER trên $(hostname). --- từ master" | mail -s "Thông báo Keepalived của Master" -a ipa_temp.txt "$contacts"
      
                                      
                                    
    • Sửa đổi tệp cấu hình: vim keepalived.conf .

      Trong vrrp_instance, ở cùng cấp độ với xác thực, gốc rễ đằng sau nó là trình thực thi và nhóm mà nó thuộc về.

                                      
                                        thông báo_master /etc/keepalived/mail_send_master.sh gốc gốc thông báo_sao lưu /etc/keepalived/mail_send_backup.sh gốc gốc thông báo_lỗi /etc/keepalived/mail_send_fault.sh gốc gốc gốc
      
                                      
                                    
  • Chỉ cần kiểm tra xem có hộp thư nào nhận được tin nhắn khi trạng thái được chuyển tiếp hay không và vô hiệu hóa hộp thư đó bằng cách khởi động lại.

  • tham khảo

    • Tài liệu tham khảo 1: cài đặt nhật ký keepalived, cài đặt hộp thư và thông báo.

    • Tài liệu tham khảo 2: thông báo qua email keepalived.

    • Tài liệu tham khảo 3: Thông báo qua email trong quá trình chuyển đổi dự phòng Keepalived.

    • Tài liệu tham khảo 4: lệnh gửi thư cho nhiều người dùng cùng một lúc.


Liên kết nghiên cứu

  • Cân bằng tải LVS
  • Tài liệu trang web chính thức
  • Bản ghi lỗi triển khai

Cuối cùng, bài viết này về cách sử dụng đơn giản keepalived kết thúc tại đây. Nếu bạn muốn biết thêm về cách sử dụng đơn giản keepalived, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

26 4 0
Tôi là một chú chim nhỏ
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com