keepalived源码安装且配置邮件告警
源码编译安装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"
#启动服务
本文链接:
/archives/1704696352215
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Emporer-Linux!
喜欢就支持一下吧