1.运维标准化
物理设备层面:
1.服务器标签化、设备负责人、设备采购详情、设备摆放标准。
2.网络划分、远程控制卡、网卡端口
3.服务器机型、硬盘、内存统一。根据业务分类。
4.资产命名规范、编号规范、类型规范
5.监控标准
操作系统层面:
1.操作系统版本
2.系统初始化(DNS、NTP、内核参数调优、rsyslog、主机名规范)
3.基础Agent配备(Zabbix Agent、Logstash Agent、Saltstack minion)
4.系统监控标准(CPU、内存、硬盘、网络、进程)
应用服务层面:
1.Web服务器选型(Apache、Nginx)
2.进程启动用户、端口监听规范、日志收集规范(访问日志、错误日志、运行日志)
3.配置管理(配置文件规范、脚本规范)
4.架构规范(Nginx+Keepalived、LVS+Keepalived等等)
5.部署规范(位置、包命名等)
运维操作层面:
1.机房巡检流程(周期、内容、报修流程)
2.业务部署流程(先测试、后生产。回滚)
3.故障处理流程(紧急处理、故障升级、重大故障管理)
4.工作日志标准(如何编写工作日志)
5.业务上线流程(1.项目发起 2.系统安装 3.部署Nginx 4.解析域名 5.测试 6.加监控 7.备份)
6.业务下线流程(谁发起,数据如何处理。)
7.运维安全规范(密码复杂度、更改周期、VPN使用规范、服务登录规范)
标准化 (规范化 流程化 文档化) 目标:文档化
工具化:
1.SHELL脚本(功能性(流程)脚本、检查性、报表性、)
2.开源工具:Zabbix ELKStack SaltStack Cobbler
目标:1.促进标准化的实施
2.将重复的操作,简单化
3.将多次操作,流程化
4.减少人为操作的低效和降低故障率
工具化和标准化是好基友!
痛点:
1.你至少要ssh到服务器执行。可能犯错
2.多个脚本有执行顺序的时候,可能犯错。
3.权限不好管理,日志没法统计。
4.无法避免手工操作。
例子:比如某天我们要对一台数据库从库进行版本停机升级。那么要求进行评估:
停机影响:3:00 晚上有定时任务连接该数据库,做数据报表统计。
1.凌晨3:00 我们所有系统的定时任务有哪些 crontab
2.这些crontab哪些连接我们要停止的从库。
3.哪些可以停,哪些不能停(修改到主库),哪些可以后补。
4.这些需要后补的脚本哪个业务、谁加的、什么时候加的。
运维操作平台
例子:Job管理平台
1.做成Web界面
2.权限控制
3.日志记录
4.弱化流程
5.不用ssh到服务器,减少人为操作造成的故障 Web ssh
DNS Web管理 bind-DLZ
负载均衡Web管理
Job管理平台
监控平台 Zabbix
操作系统安装平台