版本号 V1.0 V1.4
版本日期 2013.03.12 2013.07.15 修改人 李志明 李志明 修改章节 修改记录 创建 修改 目录
Linux运维标准化方案 ..................................................................................................................... 1 1 内部DNS规范 .......................................................................................................................... 2
1.1 内部DNS简介 ............................................................................................................. 2 1.2 命名规范 ...................................................................................................................... 2 1.3 配置解析DNS规范流程 ............................................................................................. 2 2 操作系统配置标准 ................................................................................................................... 2
2.1 操作系统安装标准 ...................................................................................................... 2 2.2 主机名标准 .................................................................................................................. 5 2.3 操作系统网络标准 ...................................................................................................... 5 2.4 操作系统权限标准 ...................................................................................................... 5 2.5 操作系统环境配置标准 .............................................................................................. 5 3 WEB服务器标准化 .................................................................................................................. 7
3.1 WEB server配置标准 .................................................................................................. 7 3.2 负载均衡标准 .............................................................................................................. 8 3.3 以下软件禁止研发同事安装、使用 .......................................................................... 9 4 JAVA应用标准化 ...................................................................................................................... 9
3.1权限说明............................................................................................................................. 9 3.2 目录使用说明 .................................................................................................................... 9 3.3 单个Tomcat实例控制脚本 ............................................................................................ 10 5 配置文件敏感信息分离 ......................................................................................................... 10 6 预发布机制 ............................................................................................................................. 10
1
1 内部DNS规范
1.1 内部DNS简介
内部DNS用于在IDC机房提供DNS解析服务,只限于为部署在IDC内部的应用提供服务; 可为服务器的主机名、内部域名提供DNS解析;
内部域名是指应用名,具体命名规范请参考“1.2 命名规范”;
如果应用需要提供对解析,需要申请域名,并在应用服务器上为应用做别名;
1.2 命名规范
域名:从域名可以确定机器用途; 数据库服务器:
pekingr1.ms.jd.local对应peking这个sqlserver数据库的只读库集群之一,解析到虚拟IP。 pekingr1-01.ms.jd.local对应到上面数据库集群中间的一台机器,解析到真实IP。 peking:数据库名;
r:读,代表只读库,如果是w代表可写库;r1代表有多个这样的集群,这是其中的一个集群。
ms--sqlserver my—mysql mg-mongo oc—oracle
应用服务器:
app.pop.jd.local pop部门的app这个应用,解析到虚拟IP。
1.3 配置解析DNS规范流程
应用需要做对做DNS解析时,请参考相关流程。
DNS是指需要对用户(包括公司内以及普通用户)提供服务
内网DNS是只对IDC内部应用间调用提供DNS解析,不对任何用户提供解析服务。 注:如果即需要机房内部应用间调用,也需要对用户提供服务,需要同时申请内、DNS。
2 操作系统配置标准
2.1 操作系统安装标准
应用服务器(如有变化,另行通知)
1. 操作系统为CentOS 6.3 X86_
2
2. 安装的相关Packages为
a)
%packages --ignoremissing @additional-devel @base
@chinese-support @client-mgmt-tools @compat-libraries @console-internet @core
@debugging @development @dial-up
@directory-client @ftp-server
@hardware-monitoring @ha
@large-systems @legacy-unix @load-balancer
@network-file-system-client @network-tools @performance @perl-runtime
@system-management-snmp @server-platform
@server-platform-devel @server-policy
@system-admin-tools @ruby-runtime libXinerama-devel xorg-x11-proto-devel startup-notification-devel libgnomeui-devel libbonobo-devel libXau-devel libgcrypt-devel popt-devel libXrandr-devel libxslt-devel libglade2-devel gnutls-devel mtools pax
3
oddjob sgpio edac-utils glibc-utils gdb-gdbserver lslk
flightrecorder gcc-gnat cmake imake
compat-gcc-34 gcc-java
compat-gcc-34-g77 jpackage-utils gcc-objc gcc-objc++
compat-gcc-34-c++ python-docs pptp
certmonger pam_krb5
krb5-workstation xferstats edac-utils lm_sensors
python-repoze-what-quickstart talk-server telnet
tcp_wrappers nmap sg3_utils perl-LDAP
perl-DBD-SQLite perl-Date-Calc perl-suidperl perl-Date-Manip perl-Mozilla-LDAP perl-Frontier-RPC net-snmp-python net-snmp-perl symlinks rrdtool pexpect screen
4
ftp tree
2.2 主机名标准
略
2.3 操作系统网络标准
路由IP、配置 如果需要连接外地IDC、各分公司网络,需要运维内网组提供路由网关 时间同步 IDC机房内部配置有NTP时间服务器 时间服务器ntp.jd.local
2.4 操作系统权限标准
1、所有线上Linux服务器禁使用root用户登录服务器;禁止使用任何用户跟其他机器建立ssh信任; 2、禁止使用root用户启动所有应用级程序,所有应用级程序全部使用admin普通用户程序;
2.5 操作系统环境配置标准
1、Linux系统分区说明(如需要修改,请提前与运维沟通)
a) 禁止在系统分区下有任何程序的运行,以及禁止数据、日志等写入系统分区 b) / 20G
swap 16G /export 其余所有
2、目录说明
a) /export/App 应用程序部署目录 b) /export/Logs 应用日志部署目录 c) /export/Data 应用数据目录
d) /export/servers Nginx等容器级程序部署目录 e) /export/Domains Tomcat的实例部署目录 f) /export/Shell 应用启动、重启脚本 g) /export/Config 应用程序配置文件存放目录
3、 日志保留说明: 系统上所有形式的日志(包括程序日志、Tomcat控制台日志、Nginx日志),如无特殊说明,全部保留7天。
5
4、 系统编码(如需要修改,请提前与运维沟通) a) LANG=zh_CN.UTF-8
LC_CTYPE=\"zh_CN.UTF-8\" LC_NUMERIC=\"zh_CN.UTF-8\" LC_TIME=\"zh_CN.UTF-8\" LC_COLLATE=\"zh_CN.UTF-8\" LC_MONETARY=\"zh_CN.UTF-8\" LC_MESSAGES=\"zh_CN.UTF-8\" LC_PAPER=\"zh_CN.UTF-8\" LC_NAME=\"zh_CN.UTF-8\" LC_ADDRESS=\"zh_CN.UTF-8\" LC_TELEPHONE=\"zh_CN.UTF-8\" LC_MEASUREMENT=\"zh_CN.UTF-8\" LC_IDENTIFICATION=\"zh_CN.UTF-8\"
5、Linux系统优化标准(如需要修改,请提前与运维沟通) a) /etc/sysctl.conf
kernel.shmall = 4294967296 net.core.somaxconn = 32768
net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 0 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_fin_timeout = 10 net.ipv4.tcp_keepalive_time = 100 net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 20000
b) ulimit
在/etc/security/limits.d目录中,添加配置
i. 90-nproc.conf用于配置nproc
* soft nproc 204800 * hard nproc 307200 ii. 90-nofile.conf用于配置nofile
* soft nofile 102400
6
* hard nofile 204800 iii.
90-stack.conf 用于配置Stack * soft stack * hard stack
10240
20480
3 WEB服务器标准化
3.1 WEB server配置标准
Apache已经被淘汰,运维全部默认使用Jengined,版本1.2.7稳定版;
Jengined使用的1.2.7稳定版Nginx,并加入了Tengine、openresty等特色,默认编译进了很多常用模块,以及支持Lua语言。 Jengined环境说明如下:
i. 已经关闭keepalived(如果需要开启,请在项目部署文档中说明) ii. 配置说明如下: 1. Configure参数
./nginx -V
nginx version: JDWS/1.2.7 TLS SNI support enabled configure arguments:
--prefix=/export/servers/jengined-1.2.7.1/nginx --add-module=../ngx_devel_kit-0.2.18 --add-module=../echo-nginx-module-0.42 --add-module=../xss-nginx-module-0.03rc9 --add-module=../ngx_coolkit-0.2rc1
--add-module=../set-misc-nginx-module-0.22rc8 --add-module=../form-input-nginx-module-0.07
--add-module=../encrypted-session-nginx-module-0.02 --add-module=../srcache-nginx-module-0.19 --add-module=../ngx_lua-0.7.16
--add-module=../headers-more-nginx-module-0.19 --add-module=../array-var-nginx-module-0.03rc1 --add-module=../memc-nginx-module-0.13rc3 --add-module=../redis2-nginx-module-0.09 --add-module=../redis-nginx-module-0.3.6 --add-module=../auth-request-nginx-module-0.2 --add-module=../rds-json-nginx-module-0.12rc10 --add-module=../rds-csv-nginx-module-0.05rc2
--add-module=../session-sticky-tengine-module-1.4.4
--add-module=../murmurhash-nginx-upstream-module-0.01 --add-module=../user_agent-tengine-module-1.4.4 --add-module=../upstream-check-tengine-module-1.4.4
7
--add-module=../chunkin-nginx-module-0.23rc4 --with-ld-opt=-Wl,-rpath,/usr/local//lib --with-http_ssl_module 2. 默认的配置:
a)
server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 300m; sendfile on; tcp_nopush on; keepalive_timeout 0; tcp_nodelay on; client_body_buffer_size 512k; fastcgi_intercept_errors on; proxy_connect_timeout 90; proxy_read_timeout 180; proxy_send_timeout 180; proxy_buffer_size 256k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; server_name_in_redirect off; proxy_hide_header X-Powered-By; b) upstream tomcat_xxx {
server 127.0.0.1:8001 weight=10 max_fails=2 fail_timeout=30s; } location / { proxy_next_upstream http_500 http_502 http_503 http_504 \\
error timeout invalid_header;
proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat_xxx; expires 1d; } c) Jengined(Nginx)禁止直接通过IP进行访问。
3.2 负载均衡标准
Jengined(Nginx)会做为反向代理,将请求按比例转发给后面的Tomcat
8
为了合理负载,禁止各项目在服务器本地写session。如果需要写session,建议将Session写在Redis或其它缓存系统中。
3.3 以下软件禁止研发同事安装、使用
Puppet Rsync
除统一监控以外的其它的监控客户端 除统一日志以外的其它的日志收集客户端
所有收集线上服务器信息、网络设备信息以及网络拓扑的客户端 所有用于性能测试、功能测试的软件 所有有安全漏洞的软件、程序
4 JAVA应用标准化
3.1权限说明
所有应用都以admin用户启动(如果有特殊要求,请提前与运维沟通)。 admin用户为受限权限,没有在应用部署目录(/export/App)写权限,只有/export/Data、/export/Logs写权限
3.2 目录使用说明
应用程序部署路径(xxx.jd.local为项目名)
i. 应用部署路径为:/export/App/xxx.jd.local,为只读权限
ii. 禁止在应用程序部署路径中写入任何数据,数据产生应写入/export/Data/xxx.jd.local c) local_policy.jar和US_export_policy.jar已经替换 d) 日志路径(禁止写入隐藏文件)
/export/Logs/xxx.jd.local 日志的格式为: LogName.log.Year-Month-Day(例:UserData.log.2013-02-28) e) 数据路径(禁止写入隐藏文件)
/export/Data/xxx.jd.local
9
3.3单个Tomcat实例控制脚本
命名tomcat_ctrl.sh 接收参数:start stop
用途:用于控制单个tomcat实例的启动与停止,并确保操作成功。 部署路径:tomcat实例的bin目录下。
5 配置文件敏感信息分离
1、 标准说明
a) 将数据库等敏感信息与普通配置信息分离,普通配置文件通过自动部署系统修改;
数据库等敏感信息的配置由运维修改
b) 发布包内包含多台机器用到的所有配置文件,应用程序根据机器载入所需配置。 2、 用途与效果
a) 研发人员在上线之前完成普通配置文件的修改,减少上线时由于配置文件修改导致
的耗时。
3、 具体目录结构
数据库 :/export/Config/xxx.jd.local/DB.conf 敏感信息:/export/Config/xxx.jd.local/Info.conf
6 预发布机制
(暂未实行) 1、 标准说明
a) 预发布机器的环境与线上环境完全一致。
b) 允许研发人员在预发布机器上,通过自动化部署系统,在任何时间内,进行有限次
数的上线、业务检查、调试与回滚。
2、 用途与效果
a) 研发人员在正式上线之前,完成业务检查与调试工作。 b) 预发布测试通过,方可触发正式上线。
c) 正式上线时不再进行业务检查与调试工作,根据匹配错误日志、测试URL判断上
线是否成功,以大幅度减少上线耗时。
10
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务