2019-04-12-day31中小规模集群架构

第1章 中小规模集群架构

1.1 什么是集群

  集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。简单的说,集群就是很多设备做同一件事。
例如:
京东提供卖东西服务这就是一件事,可能是几千台服务器,在背后运转支撑这个网站。
百度搜索页面看着就是一个搜索框,背后可能是上万台服务器。

1.2 为什么企业要用集群

  1. 让业务7*24小时服务,需要多台机器同时工作,互为实时备份。
  2. 高并发的访问,需要多台服务器同时提供服务。

1.3 集群特点

  1. 数据量大、用户多
  2. 7*24持续服务
  3. 高并发
  4. 用户分布广泛,网络情况复杂

1.4 图形化描述集群

中小规模集群架构图

1.5 集群基础优化

1.5.1 规范目录

规范文件的存放目录,也就是说不同功能的文件放在不同的目录。

mkdir -p /server/tools
mkdir -p /server/scripts

服务器目录结构规划图

目录说明 目录结构说明
/server/scripts 服务器本地存放脚本程序的目录
/server/tools 服务器本地存放软件安装包的目录
/application/软件名 服务器本地安装的根目录,软件名不带版本号,例如:
/application/nginx,/application/mysql
/application/nfinx/html Web服务器站点目录(bbs,blog,www,edu)
/application/nginx/logs Web服务器日志{bbs|blog|www}_access.log
/backup 服务器本地数据备份目录,也是备份服务器Rsync的备份目录
/data NFS共享存储共享文件目录

1.5.2 配置所有主机域名解析

将集群中要用到的所有IP和域名放入本地的DNS文件中。

cat >/etc/hosts<<EOF   <===将域名信息写入/etc/hosts文件中
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

cat /etc/hosts   <===查看文件内容
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

ping lb01   <===验证结果,有返回IP就说明没问题
PING lb01 (172.16.1.5) 56(84) bytes of data.

1.5.3 基础优化操作项:更新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

1.5.4 安全优化

1.5.4.1关闭selinux

方法1:
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
方法2:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
方法3:
setenforce 0
查看更改结果:
grep SELINUX=disabled /etc/selinux/config 
getenforce

1.5.4.2关闭firewalld防火墙服务

systemctl stop firewalld        <===关闭防火墙服务
systemctl disable firewalld     <===关闭防火墙开机自启动
systemctl status firewalld      <===检查防火墙状态

1.5.5 基础优化操作项:设置普通用户提权操作(可选优化)

提权oldboy可以利用sudo

useradd oldboy                         <===创建用户oldboy
echo 123456|passwd --stdin oldboy      <===修改密码
\cp /etc/sudoers /etc/sudoers.ori      <===拷贝文件
echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers <===将提权信息添加到文件中
tail -1 /etc/sudoers    <===检查添加的信息
visudo -c               <===检查语法

1.5.6 设置系统中文UTF8字符集

[root@oldboy ~]$ cat /etc/locale.conf  <===查看原来字符集
LANG="en_US.UTF-8"                        <===为英文字符集
修改命令如下:
CentOS 6操作方法:
cp /etc/locale.conf  /etc/locale.conf.ori      
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf  
source /etc/locale.conf     <===执行文件中的所有语句
echo $LANG
CentOS 7操作方法:
cp /etc/locale.conf  /etc/locale.conf.ori
localectl set-locale LANG="zh_CN.UTF-8"
cat /etc/locale.conf 

1.5.7 基础优化操作项:时间同步设置

设置系统时间同步

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

1.5.8 基础优化操作项:提升命令行操作安全性(可选优化)

提升命令行安全(可选配置)

echo 'export TMOUT=300' >>/etc/profile       <===远程连接命令行300秒未操作自动断开
echo 'export HISTSIZE=5' >>/etc/profile      <===历史记录只保留5条
echo 'export HISTFILESIZE=5' >>/etc/profile  <===历史记录文件只保留5条
tail -3 /etc/profile
. /etc/profile      <===查看更改效果

1.5.9 基础优化操作项:加大文件描述符

实例演示:加大文件描述

echo '*         -       nofile        65535 ' >>/etc/security/limits.conf 
tail -1 /etc/security/limits.conf
ulimit -SHn   65535 
ulimit -n       <==命令方式查看配置结果

1.5.10 基础优化操作项:优化系统内核

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

1.5.11 基础优化操作项:安装系统常用软件

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

1.5.12 基础优化操作项:优化SSH远程连接效率(练习不需要优化)

禁止root远程连接
修改默认22端口,改为52113
监听内网服务器IP

1.5.13 扩展优化操作项-修改yum.conf文件配置信息

保留yum安装的软件包
将yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。

1.5.14 锁定关键系统文件

如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab, 处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。

1.5.15 清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

1.5.16 清除多余的系统虚拟用户账号。

1.5.17 为grub引导菜单加密码(自学)。

1.5.18 禁止主机被ping(内核参数)。

1.5.19 打补丁并升级有已知漏洞的软件。

yum update   <===升级软件

1.5.20 精简开机自启动服务

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
保留服务:
sshd|crond|sysstat|rsyslog|NetworkManager|irqbalance

1.6 企业生产最小化原则:

1、安装软件包最小化
2、用户权限最小化 visudo授权
3、目录文件权限最小化
4、自启动服务最小化
5、服务运行用户最小化

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 一上午就在公司修改H5邀请函,马上要举办换届晚宴,该邀请的人都已经接龙了。那还要做这个干嘛呢?花了三天时...
    李丁梅阅读 284评论 4 5
  • 我对谁可无可有,却让我偏执若疯魔? 我对谁不假辞色,又让谁枯守空蹉跎? 人类,真是奇怪,总是畏惧身后的追逐,却又追...
    越寒阅读 276评论 5 3
  • EOS是Block.one公司正在研发的一个区块链底层公链系统,目的是解决现有的区块链应用性能低、安全性差、开发难...
    KayChan阅读 236评论 0 0