Linux 系统生产环境配置指南

1.服务器基本配置

1、物理服务器使用RAID1或RAID10磁盘配置,虚拟服务器不受此限制

2、物理服务器操作系统使用整体物理硬盘

3、虚拟服务器系统盘80G,数据盘按业务需求新增并附加

2.安装步骤及注意事项2.1.系统安装

最小化安装系统,安装基本的开发组件,不安装图形界面

2.2.配置软件源

配置升级使用阿里云资源,包括EPEL资源

??https://opsx.alibaba.com/mirror??

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repomv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backupmv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backupcurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpmyum install https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.1-1.el7.x86_64.rpmyum makecacheyum update

2.3.安全设置

默认启动防火墙,禁用selinux,添加时间同步

yum install vim wget iftop lsof ntpdatesystemctl enable firewalldsystemctl start firewalldvim /etc/selinux/configcrontab -e00 00 * * * /usr/sbin/ntpdate 192.168.0.1 #每天0点定期更新

3.其他软件安装3.1.zabbix

使用上面的资源安装zabbix

3.2.MySQL数据库

https://mirrors.cloud.tencent.com/mysql/yum/mysql-8.0-community-el7-x86_64/mysql80-community-release-el7-3.noarch.rpmvi /etc/yum.repos.d/MariaDB.repo# MariaDB 10.1 CentOS repository list – created 2016-12-31 08:44 UTC# http://downloads.mariadb.org/mariadb/repositories/[mariadb]name = MariaDBbaseurl = http://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64gpgkey = http://mirrors.aliyun.com/mariadb/yum//RPM-GPG-KEY-MariaDBgpgcheck = 1

3.3.容器安装

# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 3: 更新并安装 Docker-CEsudo yum makecache fastsudo yum -y install docker-ce# Step 4: 开启Docker服务sudo service docker start注意:其他注意事项在下面的注释中# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。# vim /etc/yum.repos.d/docker-ce.repo# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1## 安装指定版本的Docker-CE:# Step 1: 查找Docker-CE的版本:# yum list docker-ce.x86_64 –showduplicates | sort -r# Loading mirror speeds from cached hostfile# Loaded plugins: branch, fastestmirror, langpacks# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable# Available Packages# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)# sudo yum -y install docker-ce-[VERSION]# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。# yum list docker-ce-selinux- –showduplicates | sort -r# sudo yum -y install docker-ce-selinux-[VERSION]# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令# 经典网络:# sudo yum-config-manager –add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo# VPC网络:# sudo yum-config-manager –add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo

3.4.高版本gcc

yum install centos-release-scl scl-utils-buildyum list all –enablerepo=’centos-sclo-rh’yum list all –enablerepo=’centos-sclo-rh’ | grep “devtoolset-“yum install -y devtoolset-8-toolchainscl enable devtoolset-8 bashgcc –version

3.5.npm源

curl -sL https://rpm.nodesource.com/setup_12.x | bash -yum install nodejsnpm config set registry https://registry.npm.taobao.orgnpm config ls

3.6.github加速

通过直接解析github的CDN地址实现加速访问。

yum -y install bind-utilsnslookup github.global.ssl.fastly.netnslookup github.comvim /etc/hosts

3.7.Golang加速

go env -w GO111MODULE=ongo env -w GOPROXY=”https://goproxy.io,direct”

3.8.安装 yarn

完成 npm安装后,通过 npm方式安装。

npm install yarn -g

3.9.git版本升级

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc gcc perl-ExtUtils-MakeMakerwget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.gztar zxvf git-2.27.0.tar.gzmake prefix=/usr/local/git allyum remove gitmake prefix=/usr/local/git installecho “export PATH=$PATH:/usr/local/git/bin” >> /etc/profilesource /etc/profile

4.参考内容4.1.fs 参数

fs参数主要是调整系统的文件打开数,适用与文件交互频繁的系统场景,例如Oracle数据库服务器或Nginx代理服务器。

cat > /etc/sysctl.d/99-fs.conf <<EOF# 最大文件句柄数fs.file-max=1048576# 最大文件打开数fs.nr_open=1048576# 同一时间异步IO请求数fs.aio-max-nr=1048576# 在CentOS7.4引入了一个新的参数来控制内核的行为。 # /proc/sys/fs/may_detach_mounts 默认设置为0# 当系统有容器运行的时候,需要将该值设置为1。fs.may_detach_mounts=1EOF

4.2.vm 参数

vm参数用于优化 vmware虚拟机的系统配置

cat > /etc/sysctl.d/99-vm.conf <<EOF# 内存耗尽才使用swap分区vm.swappiness=10# 当内存耗尽时,内核会触发OOM killer根据oom_score杀掉最耗内存的进程vm.panic_on_oom=0# 允许overcommitvm.overcommit_memory=1# 定义了进程能拥有的最多内存区域,默认65536vm.max_map_count=262144EOF

4.3.net 参数

net参数主要用于调整系统的网络参数

cat > /etc/sysctl.d/99-net.conf <<EOF# 二层的网桥在转发包时也会被iptables的FORWARD规则所过滤net.bridge.bridge-nf-call-arptables=1net.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1# 关闭严格校验数据包的反向路径,默认值1net.ipv4.conf.default.rp_filter=0net.ipv4.conf.all.rp_filter=0# 进程间通信发送数据, 默认100net.unix.max_dgram_qlen=512# 设置 conntrack 的上限net.netfilter.nf_conntrack_max=1048576# 设置连接跟踪表中处于TIME_WAIT状态的超时时间net.netfilter.nf_conntrack_tcp_timeout_timewait=30# 设置连接跟踪表中TCP连接超时时间net.netfilter.nf_conntrack_tcp_timeout_established=1200# 端口最大的监听队列的长度net.core.somaxconn=21644# 接收自网卡、但未被内核协议栈处理的报文队列长度net.core.netdev_max_backlog=262144# 系统无内存压力、启动压力模式阈值、最大值,单位为页的数量#net.ipv4.tcp_mem=1541646 2055528 3083292# 内核socket接收缓存区字节数min/default/maxnet.core.rmem=4096 65536 8388608# 内核socket发送缓存区字节数min/default/maxnet.core.wmem=4096 65536 8388608# 开启自动调节缓存模式net.ipv4.tcp_moderate_rcvbuf=1# TCP阻塞控制算法BBR,Linux内核版本4.9开始内置BBR算法#net.ipv4.tcp_congestion_control=bbr#net.core.default_qdisc=fq# 用作本地随机TCP端口的范围net.ipv4.ip_local_port_range=10000 65000# 打开ipv4数据包转发net.ipv4.ip_forward=1# 允许应用程序能够绑定到不属于本地网卡的地址net.ipv4.ip_nonlocal_bind=1# 系统中处于 SYN_RECV 状态的 TCP 连接数量net.ipv4.tcp_max_syn_backlog=16384# 内核中管理 TIME_WAIT 状态的数量net.ipv4.tcp_max_tw_buckets=5000# 指定重发 SYN/ACK 的次数net.ipv4.tcp_synack_retries=2# TCP连接中TIME_WAIT sockets的快速回收# 4.12内核版本开始移除了 tcp_tw_recycle net.ipv4.tcp_tw_recycle=0# 不属于任何进程的tcp socket最大数量. 超过这个数量的socket会被reset, 并告警net.ipv4.tcp_max_orphans=1024# TCP FIN报文重试次数net.ipv4.tcp_orphan_retries=8# 加快系统关闭处于 FIN_WAIT2 状态的 TCP 连接net.ipv4.tcp_fin_timeout=15# TCP连接keepalive的持续时间,默认7200net.ipv4.tcp_keepalive_time=600# TCP keepalive探测包发送间隔net.ipv4.tcp_keepalive_intvl=30# TCP keepalive探测包重试次数net.ipv4.tcp_keepalive_probes=10# TCP FastOpen# 0:关闭 ; 1:作为客户端时使用 ; 2:作为服务器端时使用 ; 3:无论作为客户端还是服务器端都使用net.ipv4.tcp_fastopen=3# 限制TCP重传次数net.ipv4.tcp_retries1=3# TCP重传次数到达上限时,关闭TCP连接net.ipv4.tcp_retries2=15EOF

4.4.修改limits参数

cat > /etc/security/limits.d/99-centos.conf <<EOF* – nproc 1048576* – nofile 1048576root – nproc 1048576root – nofile 1048576EOF

4.5.修改journal设置

sed -e ‘s,^#Compress=yes,Compress=yes,’ \-e ‘s,^#SystemMaxUse=,SystemMaxUse=2G,’ \-e ‘s,^#Seal=yes,Seal=yes,’ \-e ‘s,^#RateLimitBurst=1000,RateLimitBurst=5000,’ \-i /etc/systemd/journald.conf

4.6.修改终端提示符

export PS1=”[\t]\[$(tput setaf 1)\][\u@\h:\W]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]”echo ‘export PS1=”[\t]\[$(tput setaf 1)\][\u@\h:\W]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]”‘ >> ~/.bashrc

4.7.修改网卡配置信息

CentOS安装设置网卡后,会添加很多不需要的字段,例如UUID、HWADDR什么的

删减后字段信息如下

cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetBOOTPROTO=noneNAME=ens33DEVICE=ens33ONBOOT=yesIPADDR=172.16.80.200NETMASK=255.255.255.0GATEWAY=172.16.80.2DNS1=114.114.114.114NM_CONTROLLED=noUSERCTL=no

4.8.配置 lvs 模块

??LVS的调度算法简介??

cat > /etc/modules-load.d/ipvs.conf <<EOFip_vs# 负载均衡调度算法-最少连接ip_vs_lc# 负载均衡调度算法-加权最少连接ip_vs_wlc# 负载均衡调度算法-轮询ip_vs_rr# 负载均衡调度算法-加权轮询ip_vs_wrr# 源地址散列调度算法ip_vs_shEOF

4.9.配置连接状态跟踪模块

cat > /etc/modules-load.d/nf_conntrack.conf <<EOFnf_conntracknf_conntrack_ipv4#nf_conntrack_ipv6EOF

4.10.配置 kvm 模块

cat > /etc/modules-load.d/kvm.conf <<EOF# Intel CPU开启嵌套虚拟化options kvm-intel nested=1options kvm-intel enable_shadow_vmcs=1options kvm-intel enable_apicv=1options kvm-intel ept=1# AMD CPU开启嵌套虚拟化#options kvm-amd nested=1EOF

5.内核更新rpm –import ??https://www.elrepo.org/RPM-GPG-KEY-elrepo.org??yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpmyum list available –disablerepo=* –enablerepo=elrepo-kernelyum -y install kernel-lt-4.4.241-1.el7.elrepo –enablerepo=elrepo-kernel 走过的路成为背后的风景,不能回头不能停留,若此刻停留,

Linux 系统生产环境配置指南

相关文章:

你感兴趣的文章:

标签云: