中小规模集群架构
1、什么事集群?
简单的说,集群就是一堆机器做同一件事。
例如:www.jd.com提供买东西服务这就是一件事,可能事上千台服务器
2、为什么用集群?
a.要让业务可以提供724小时服务。选哟堕胎机器同时工作,互为实时备份
b.高并发访问,需要多台服务器同时提供服务。
3、集群特点
a.数据多、用户多
b.724持续服务
c.高并发
d.用户分布广泛,网络情况复杂
硬件配置:
给模板机添加一个网络适配器LAN网段为172.16.1.0/24
然后添加一块网卡eth1
然后重启即可
基础优化目录:
1、规范目录
mkdir -p /server/tools
mkdir -p /server/scripts
2、配置所有主机域名解析
cat >/etc/hosts<<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
EOF
3、修改主机名
hostnamectl set-hostname xxxx
4、更新yum源
第一个:就近使用yum源地址,安装软件更快。
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
第二个:安装RHEL/CentOS官方源不提供的软件包
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
5、安全优化
关闭selinux
1)关闭selinux
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config 查看修改selinux状态
setenforce 0 临时关闭selinux。
getenforce 查看selinux状态
2)关闭防火墙和开机自启
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁止开启自启动
systemctl status firewalld 查看防火墙状态
6、设置普通用户提权操作(可选优化)
useradd oldboy <===创建用户oldboy
echo 123456|passwd --stdin oldboy <===更改密码为123456
\cp /etc/sudoers /etc/sudoers.ori <===复制文件\不提示
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers <===更改用户执行权限
tail -1 /etc/sudoers <===查看一下
visudo -c
7、设置系统中文UTF8字符集(防止出现中文乱码)
cat /etc/locale.conf 查看字符集
LANG="en_US.UTF-8"
cp /etc/locale.conf /etc/locale.conf.ori
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf
8、基础优化操作项:设置系统时间同步
yum install ntpdate -y 安装时间同步
/usr/sbin/ntpdate ntp3.aliyun.com
echo '#crond-id-001:time sync by oldboy' >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root
crontab -l
9、基础优化操作:提升命令行操作安全性(可选优化)
echo 'export TMOUT=300' >>/etc/profile 设置会话超时时间为300淼
echo 'export HISTSIZE=5' >>/etc/profile 命令行历史纪录保留五个
echo 'export HISTFILESIZE=5' >>/etc/profile 历史文件
tail -3 /etc/profile
. /etc/profile
10、加大文件描述符
ulimit -SHn 65535 <=== 更改为65535
ulimit -n
65535
11、优化内核
cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
######以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
sysctl -p
12、安装软件
CentOS6和CentOS7都要安装的企业运维常用基础工具包
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y
CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y
13、远程链接:优化ssh远程链接效率
进制root远程连接
修改默认22端口
监听内网
14、扩展优化操作项-修改yum.conf文件配置信息
保留yum安装的软件包
将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。
- 锁定关键系统文件
如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,
处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。
- 清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。
17、 清除多余的系统虚拟用户账号。
18、 为grub引导菜单加密码(自学)。
19、 禁止主机被ping(内核参数)。
20、yum update 升级yum服务
21、精简开机自启服务
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash
过滤这四个服务 其他关闭
systemctl list-unit-files |grep enable 查看一下
最小化安装原则:
安装软件包最小化
权限最小化 visudo