华为云企业 Linux 自动化运维落地实战:从手工救火到标准化无人值守
【摘要】 华为云企业Linux自动化运维落地实战:从手工救火到标准化无人值守前言传统线下运维普遍存在痛点:多台 Web 节点登录排查日志效率低、软件源外网带宽占用高、代码版本管理混乱、故障发现滞后、人工操作易失误。 本文基于华为云 ECS(Rocky Linux) 完整落地一套轻量自动化运维架构,涵盖 NFS 共享站点、Ansible 批量部署、GitLab 代码管理、ELK 集中日志、Nginx 内...
华为云企业Linux自动化运维落地实战:从手工救火到标准化无人值守
前言
传统线下运维普遍存在痛点:多台 Web 节点登录排查日志效率低、软件源外网带宽占用高、代码版本管理混乱、故障发现滞后、人工操作易失误。 本文基于华为云 ECS(Rocky Linux) 完整落地一套轻量自动化运维架构,涵盖 NFS 共享站点、Ansible 批量部署、GitLab 代码管理、ELK 集中日志、Nginx 内网软件代理,搭配华为云 COC 云运维中心、Cloud Eye 监控,适合中小企业直接复用,已在华为云生产环境稳定运行半年。
一、整体云上架构规划(华为云 VPC 内网)
1. 业务层(Web 集群,多台 ECS)
-
web01/web02/web03:Rocky Linux,部署 httpd+PHP,对外提供网站服务
-
统一通过内网 NFS 挂载站点目录,一套代码多节点共享,无需逐台同步网页文件
-
每台节点部署 Filebeat 采集访问 / 错误日志,统一上报 Logstash
2. 中间服务单节点([192.168.1.252](192.168.1.252),华为云通用型 ECS)
-
Nginx 反向代理:搭建内网 dnf 软件源代理,所有 Web 节点走内网更新包,节省公网流量
-
Logstash 日志清洗:接收 Filebeat 原始日志,结构化拆分请求 IP、状态码、接口耗时
-
GitLab 15.4 代码仓库:管理项目源码、Ansible 自动化脚本,统一版本管控
-
NFS 服务端:共享
/var/webroot网页目录,所有 Web 节点自动挂载
3. 存储 & 可视化集群(ES 集群 + Kibana)
-
Elasticsearch 分布式集群:持久化存储全量结构化日志,支持毫秒级全文检索
-
Kibana 可视化面板:统一查询日志、统计访问流量、监控 5xx/404 报错,无需登录业务服务器
4. 华为云原生运维能力配套
-
Cloud Eye 云监控:监控 ECS CPU / 内存 / 磁盘 / 网络,资源突高自动告警
-
COC 云运维中心:批量执行 Shell 脚本、定时开关机、标准化主机名、定时巡检
-
云审计 CTS:记录所有控制台操作,敏感变更可追溯,满足等保审计要求
二、核心模块落地实操(华为云 ECS Rocky Linux)
(一)NFS 共享站点:统一网站代码,降低运维成本
1. NFS 服务端([192.168.1.252](192.168.1.252))配置
编辑
/etc/exports共享网页目录:/var/webroot 192.168.1.0/24(rw,sync,no_all_squash)
重启服务并设置开机自启:
systemctl enable --now nfs-server
2. Web 节点自动挂载(Ansible 批量下发 /etc/fstab)
- name: 写入NFS自动挂载配置 lineinfile: path: /etc/fstab regexp: '^192.168.1.252:/var/webroot' line: '192.168.1.252:/var/webroot /var/www/html nfs defaults,_netdev,nolock 1 1' become: yes
执行
mount -a加载挂载,重启自动生效,彻底解决多节点网页同步不一致问题。(二)Nginx 内网 DNF 软件源代理:内网服务器免外网下载包
1. Nginx 代理配置/etc/nginx/default.d/dnf_proxy.conf
resolver 100.125.1.250 100.125.129.250 valid=5 ipv6=off; location ~ ^/rockylinux/(.*)$ { proxy_pass https://repo.huaweicloud.com/rockylinux/$1; }
使用华为云内网 DNS 解析镜像站域名,内网机器访问 Nginx 转发至华为云开源镜像,下载速度提升 5-10 倍。
2. Web 节点统一 repo 源(local.repo 批量下发)
[local_repo] name=Rocky Linux $releasever - Localrepo baseurl=http://192.168.1.252/rockylinux/$releasever/BaseOS/$basearch/os enabled=1 gpgcheck=0
所有节点执行
dnf install仅消耗内网带宽,公网出口仅代理服务器访问镜像站。(三)Ansible 自动化批量部署:告别逐台手工操作
全业务使用 Ansible Playbook 完成标准化部署,以 Web 服务部署脚本为例:
--- - name: 批量部署Web服务 hosts: web become: yes tasks: - name: 安装httpd php nfs客户端 dnf: name: httpd,php,nfs-utils,filebeat state: present update_cache: yes - name: 启动并开机自启httpd service: name: httpd state: started enabled: yes - name: 下发NFS挂载配置 lineinfile: path: /etc/fstab regexp: '^192.168.1.252:/var/webroot' line: '192.168.1.252:/var/webroot /var/www/html nfs defaults,_netdev,nolock 1 1' - name: 加载挂载 command: mount -a ignore_errors: true - name: 下发Filebeat日志采集模板 template: src: filebeat.j2 dest: /etc/filebeat/filebeat.yml owner: root group: root mode: '0640' - name: 启动Filebeat service: name: filebeat state: restarted enabled: yes
核心优势:新增 Web 节点仅需添加 Ansible 主机清单,一键完成全套环境部署,部署时间从 2 小时缩短至 3 分钟。
(四)GitLab 15.4 代码仓库:统一版本管理,规范研发流程
-
基础优化配置
-
关闭公开自助注册,仅管理员创建账号,降低安全风险;
-
全局默认简体中文,适配国内运维人员操作习惯,修改
/etc/gitlab/gitlab.rb:
gitlab_rails['default_locale'] = "zh_CN"执行gitlab-ctl reconfigure && gitlab-ctl restart全局生效。 -
-
运维价值 所有 Ansible 脚本、Nginx 配置、业务代码纳入 GitLab 版本管控,变更可追溯、支持回滚;配合 GitLab Runner 可扩展 CI/CD 自动发布流水线。
-
开机自启管控 如需关闭开机自启执行:systemctl disable gitlab-runsvdir.service
(五)EFK 集中日志平台:统一日志检索,故障秒级定位
完整数据流:Web 节点 Filebeat → Logstash (input→filter→output) → Elasticsearch 集群 → Kibana 可视化
-
Filebeat 轻量采集:部署在每台业务 ECS,实时采集
/var/log/httpd访问日志,自带断点续传,服务器重启不丢失日志; -
Logstash 清洗:拆分原始日志字段(客户端 IP、请求路径、响应码、耗时),过滤无效日志;
-
Elasticsearch 存储:分布式倒排索引,亿级日志毫秒检索;
-
Kibana 运维场景:
-
快速检索 500/404 报错,无需登录每台 Web 服务器;
-
统计每日访问流量、恶意 IP 访问排行;
-
配置日志异常告警,故障主动推送,告别人工盯屏。
-
(六)华为云原生运维工具增效实践
-
COC 云运维中心
-
批量执行 Shell 脚本:统一修改 ECS 主机名、批量清理磁盘日志;
-
定时运维任务:测试环境 ECS 夜间定时开关机,降低云服务器成本 20%-30%;
-
故障混沌演练:模拟 ECS 宕机、网络中断,验证业务容灾能力。
-
-
Cloud Eye 云监控 配置 CPU>80%、磁盘使用率 > 90%、服务端口不通告警,短信 / 邮件同步推送,提前发现系统瓶颈。
-
云审计 CTS 记录 ECS 开机 / 关机、Nginx 配置修改、GitLab 账号新增等所有操作,满足企业等保合规审计需求。
三、落地后运维收益对比
|
运维场景
|
传统手工运维
|
华为云自动化架构
|
|
新增 Web 节点部署
|
2 小时逐台操作
|
3 分钟 Ansible 一键部署
|
|
日志故障排查
|
逐台登录服务器翻日志
|
Kibana 统一检索,10 秒定位报错
|
|
系统软件更新
|
每台服务器外网下载包
|
内网 Nginx 代理,带宽节省 70%
|
|
代码 / 配置变更追溯
|
无版本记录,误操作无法回滚
|
GitLab 全量记录,支持一键回滚
|
|
故障发现
|
用户反馈后被动排查
|
Cloud Eye+ELK 双告警,主动感知异常
|
|
云资源成本
|
测试环境 24 小时运行
|
COC 定时开关机,闲置资源自动停机
|
四、运维避坑总结(华为云 ECS Rocky Linux 踩坑实录)
-
NFS 挂载
/etc/fstab必须添加_netdev参数,否则系统开机未完成网络初始化会挂载失败; -
Filebeat 推送日志至 Logstash 前,需在华为云安全组放行对应内网端口,避免连接超时;
-
Elasticsearch 配置文件权限设置
0660,属组为 elasticsearch,防止权限不足无法启动; -
解压
.tar.gz报not in gzip format时,去掉-z参数,直接使用tar -xvf解压纯 tar 包; -
GitLab 不建议安装第三方汉化补丁,升级后会出现页面崩溃,使用官方自带简体中文;
-
Ansible 操作系统配置文件必须添加
become: yes提权,否则无法修改属主、系统目录; -
华为云 ECS 内网 DNS 仅 VPC 内可访问,公网环境无法解析,Nginx 代理配置 resolver 需填写内网 DNS 地址。
五、后续优化方向
-
接入华为云 CCE 容器引擎,将 Web 服务容器化,实现弹性扩缩容;
-
完善 GitLab CI/CD 流水线,代码提交自动构建、灰度发布;
-
日志分级存储,7 天热日志留存 ES,超过 30 天归档至 OBS 对象存储,降低 ES 存储成本;
-
接入华为云 APM 应用性能监控,实现业务全链路追踪,定位接口慢查询瓶颈。
结语
上云不是简单把线下服务器迁移至华为云,而是依托云原生产品 + 传统自动化工具重构运维体系。本文这套轻量运维架构无需高额硬件投入,全部基于华为云 ECS、COC、Cloud Eye 基础产品搭建,中小企业可直接落地,实现从 “被动救火运维” 转向 “标准化、自动化、可观测” 的主动运维模式,大幅降低人力成本,提升业务稳定性。
发布适配提示(华为云社区)
-
标签推荐:# 华为云 #ECS #自动化运维 #Ansible #ELK #GitLab #Linux 运维
-
分类:云计算 > 云服务器 ECS > 最佳实践
-
配图建议:文中 ELK 架构图、Ansible Playbook 代码截图、Kibana 日志面板截图可配套上传,提升阅读体验
需要我把文中用到的Ansible 完整 web_install.yaml、Filebeat 模板、Nginx 代理配置整理成可直接复制的完整代码包吗?
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)