博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发脚本自动部署及监控
阅读量:4685 次
发布时间:2019-06-09

本文共 4086 字,大约阅读时间需要 13 分钟。

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 proxy
function install_nginx() {
yum remove nginx -y
yum install nginx -y
touch /etc/nginx/conf.d/proxy.conf
cat > /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;
        
}
    
}
EOF
systemctl start nginx
}
 
#install nfs server
function install_nfs_server() {
yum install rpcbind nfs-utils -y
[ -d /share ] || mkdir  /share && chmod o+w /share
echo 
"/share 192.168.11.62/24(rw,sync,fsid=0)" 
> /etc/exports
systemctl start rpcbind.service
systemctl 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
    
fi
done
 
 
#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 proxy
function install_nginx() {
yum install nginx -y
echo 
"welcome to web01" 
>/usr/share/nginx/html/index.html
systemctl start nginx
}
 
#install nfs server
function install_nfs_server() {
yum install rpcbind nfs-utils -y
systemctl start rpcbind.service
systemctl start nfs-server.service
mount -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
    
fi
done

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/
null
if 
[ $? -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 nginx
fi
}
  
function nfsMonitor(){ #监控nfs服务
ps aux | grep nfs| grep -v grep &>/dev/
null
if 
[ $? -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 nginx
fi
}
  
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"
fi
if 
(( $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 $msg
fi
}
  
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 $msg
fi
}
  
  
ngxMonitor  &>>/tmp/monitor.log
nfsMonitor  &>>/tmp/monitor.log
memMonitor  &>>/tmp/monitor.log
diskMonitor &>>/tmp/monitor.log

步骤四:计划任务

1
* * * * * /shell/sysCheck.sh

转载于:https://www.cnblogs.com/Baby-Lady/p/6625025.html

你可能感兴趣的文章
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
python——网络编程
查看>>
Spark的39个机器学习库
查看>>
Electron学习笔记(一)
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>
VS2005编译VTK5.10.1
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
总结上海永辉云商高级前端职位面试题集
查看>>
中国计算机学会推荐国际学术会议和期刊目录
查看>>
各种可以远程
查看>>
分治法实现1-N的数字按字典序全排列组合 Java语言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>