源码编译安装keepalived,添加邮件告警

#下载软件包

cd /usr/local/src

wget https://keepalived.org/software/keepalived-2.1.5.tar.gz 

tar -zxvf keepalived-2.1.5.tar.gz  

#安装依赖


sudo yum install openssl-devel

sudo yum groupinstall "Development Tools" -y

#解压 编译安装


./configure --with-init=systemd --with-systemdsystemunitdir=/usr/lib/systemd/system --prefix=/usr/local/keepalived --with-run-dir=/usr/local/keepalived/run

make && make install 

#拷贝二进制命令创建工作目录

cp /usr/local/keepalived/sbin/keepalived  /usr/sbin/keepalived  
ln -s /usr/local/keepalived/etc/sysconfig/keepalived   /etc/sysconfig/keepalived
mkdir /usr/local/keepalived/run

#创建服务启动文件

cat > /usr/lib/systemd/system/keepalived.service <<EOF 

[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target

[Service]
Type=simple
PIDFile=/usr/local/keepalived/run/keepalived.pid
KillMode=process
EnvironmentFile=-/etc/sysconfig/keepalived
ExecStart=/usr/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf $KEEPALIVED_OPTIONS 
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
EOF

#更改配置文件,启动keepalived

cp  /usr/local/keepalived/etc/keepalived/keepalived.conf{,.bak}
cat >/usr/local/keepalived/etc/keepalived/keepalived.conf <<EOF
vrrp_script check_alive {
    script "/root/test.sh"
    interval 2
    fall 2
    rise 10
}
vrrp_instance vip_50 {
    state BACKUP
    nopreempt
    interface ens33
    virtual_router_id 50
    priority 1
    advert_int 1
    virtual_ipaddress {
        10.11.201.215/24 dev ens33
    }
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    track_script {
        check_alive
    }
}
EOF

#安装邮件告警


yum -y install postfix
yum -y install mailx

#更改postfix配置文件

[root@pro1 postfix]# cat main.cf |grep -Ev "^$|^#"
compatibility_level = 2
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = localhost
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix/samples
readme_directory = /usr/share/doc/postfix/README_FILES
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key
smtpd_tls_security_level = may
smtp_tls_CApath = /etc/pki/tls/certs
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_security_level = may
meta_directory = /etc/postfix
shlib_directory = /usr/lib64/postfix

#设置邮件告警发件人

[root@pro1 postfix]# cat /etc/mail.rc
set from=3118308113@qq.com  
set smtp=smtp.qq.com 
set smtp-auth-user=3118308113@qq.com  
set smtp-auth-password=#授权码
set smtp-auth=login
set ssl-verify=ignore

#邮件告警脚本

#编辑告警脚本
[root@pro1 ~]# cd /etc/keepalived/
[root@pro1 keepalived]# ls
keepalived.conf  notify.sh
[root@pro1 keepalived]# cat notify.sh 
#!/bin/bash
contact='emporerlinux@163.com'
function notify() {
    mailsubject="$(hostname) to be $1 , vip转移"
    mailbody="$(date +'%F %T'): VRRP Transition, $(hostname) changed to be  $1 "
    echo "$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 100
        ;;
esac

#更改keepalived配置文件添加配置段

    notify_master "/usr/local/keepalived/etc/keepalived/notify.sh master"
    notify_backup "/usr/local/keepalived/etc/keepalived/notify.sh backup"
    notify_fault "/usr/local/keepalived/etc/keepalived/notify.sh fault"

#启动服务

文章作者: emporer
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Emporer-Linux
linux linux-服务
喜欢就支持一下吧