1.编写脚本自动部署反向代理、web、nfs;
I、部署nginx反向代理两个web服务,调度算法使用加权轮询
II、所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
proxy 192.168.11.62 #nginx代理,nfs服务端web01 192.168. 11.74 #web01,nfs客户端web02 192.168.11.75 #web02,nfs客户端#poxy上安装nginx代理,nfs客户端,脚本如下[root@proxy mnt]# cat install_nginx.sh#!/bin/bash#insatll nginx proxy IP=`ifconfig | awk -F" " '/inet/{print $2}' | head -1` #insyall nginx proxyfunction install_nginx() {yum remove nginx -yyum install nginx -ytouch /etc/nginx/conf.d/proxy.confcat > /etc/nginx/conf.d/proxy.conf <<EOF upstream web { server 192.168.11.74; server 192.168.11.75; } server { listen 80; server_name $IP; location / { proxy_pass http://web; } }EOFsystemctl start nginx}#install nfs serverfunction install_nfs_server() {yum install rpcbind nfs-utils -y[ -d /share ] || mkdir /share && chmod o+w /shareecho "/share 192.168.11.62/24(rw,sync,fsid=0)" > /etc/exportssystemctl start rpcbind.servicesystemctl start nfs-server.service}while :do read -p "please choice your install server{nginx|nfs}: " server if [ $server = "nginx" ] then install_nginx elif [ $server = "nfs" ] then install_nfs_server else exit fidone#web01安装nginx web 和nfs客户端[root@web01 mnt]# cat install_nginx.sh#!/bin/bash#insatll nginx proxy IP=`ifconfig | awk -F" " '/inet/{print $2}' | head -1` #insyall nginx proxyfunction install_nginx() {yum install nginx -yecho "welcome to web01" >/usr/share/nginx/html/index.htmlsystemctl start nginx}#install nfs serverfunction install_nfs_server() {yum install rpcbind nfs-utils -ysystemctl start rpcbind.servicesystemctl start nfs-server.servicemount -t nfs 192.168.11.62:/share /usr/share/nginx/html/}while :do read -p "please choice your install server{nginx|nfs}: " server if [ $server = "nginx" ] then install_nginx elif [ $server = "nfs" ] then install_nfs_server else exit fidone |
2.编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件
步骤一:准备发送邮件的工具
步骤二:将上述文件内容拷贝到/usr/bin/mail并chmod+x /usr/bin/mail
步骤三:然后新建监控脚本servermonitor.sh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/bin/sh function ngxMonitor(){ #监控nginx服务ps aux | grep nginx| grep -v grep &>/dev/nullif [ $? -ne 0 ];then msg="TIME:$(date +%F_%T) HOSTNAME:$(hostname) IPADDR:$(/usr/sbin/ifconfig |awk 'NR==2{print $2}') MSG:Nginx program is crash, Waiting to restart" echo $msg /usr/bin/my_mail $msg systemctl restart nginxfi} function nfsMonitor(){ #监控nfs服务ps aux | grep nfs| grep -v grep &>/dev/nullif [ $? -ne 0 ];then msg="TIME:$(date +%F_%T) HOSTNAME:$(hostname) IPADDR:$(/usr/sbin/ifconfig |awk 'NR==2{print $2}') MSG:NFS program is crash, Waiting to restart" echo $msg /usr/bin/my_mail $msg systemctl restart nginxfi} function memMonitor(){ #监控内存mem_use=`free | awk 'NR==2{print $3}'`mem_total=`free | awk 'NR==2{print $2}'`mem_per=`echo "scale=2;$mem_use/$mem_total"|bc -l |cut -d . -f2` if [ ! -e /usr/bin/bc ];then yum install bc -y -q echo "bc install successful"fiif (( $mem_per > 10 )); then msg="TIME:$(date +%F_%T) HOSTNAME:$(hostname) IPADDR:$(/usr/sbin/ifconfig |awk 'NR==2{print $2}') MSG:Memory usage exceeds the limit,current value is ${mem_per}%" echo $msg /usr/bin/my_mail $msgfi} function diskMonitor(){ #监控磁盘space_use=`df $disk |awk 'NR==2{print $5}'|cut -d% -f1` if [ $space_use -gt 80 ];then msg="TIME:$(date +%F_%T) HOSTNAME:$(hostname) IPADDR:$(/usr/sbin/ifconfig |awk 'NR==2{print $2}') MSG:Disk space usage exceeds the limit,current value is ${space_use}%" echo $msg /usr/bin/my_mail $msgfi} ngxMonitor &>>/tmp/monitor.lognfsMonitor &>>/tmp/monitor.logmemMonitor &>>/tmp/monitor.logdiskMonitor &>>/tmp/monitor.log |
步骤四:计划任务
|
1
|
* * * * * /shell/sysCheck.sh |
浙公网安备 33010602011771号