自动化运维
通过运维工具或平台,实现IT基础设施及业务应用日常任务处理和运维流程的自动化,从而提高效率和降低风险,促进运维组织的成熟和各种能力的升级。
自动化运维工具
-
部署类:jenkins
-
环境类:ansible/saltStack
-
监控类:nagios
运维自动化设计思想
- 管理体系化
- 工作流程化
- 人员专业化
- 任务自动化
Ansible
Ansible是一个自动化管理IT资源的工具
特性
- 自动化
- 管理
- IT资源
功能
- 系统环境配置
- 安装集成
- 持续集成
- 热回滚
优点与缺点
- 优点
- 无客户端
- 推送式
- 丰富的module
- 基于YAML的Playbook
- 商业化支持
- 缺点
- 效率低、易挂起
- 并发性能差
SaltStack
一个配置管理系统,能够维护预定状态的远程节点
一个分布式远程执行系统,用来在远程节点上执行命令和查询数据
特性
- 简单(相对于Puppet)
- 并行执行
- 基于成熟技术(ZeroMQ、AES)
- Python API
- 灵活、开放
服务架构
- Master–负责管理所有节点
- Minion–节点服务
- ZeroMQ–通信服务
- AES–数据加密方法
缺点
- 需要单独安装客户端
- 安全隐患大
Nagios
一款免费的开源IT基础设施监控系统,其功能强大,灵活性强,能有效的监控Windows、Linux、VMware和Unix主机状态,交换机、路由器等网络设置等。
特性
- 监控网络服务
- 监控主机资源
- 主动通知
- web页面
- 可扩展
优点与缺点
- 优点
- 轻量级,架构简单
- 容易部署
- 文档健全
- 灵活、全面
- 缺点
- 修改配置麻烦
- 太灵活,学习成本高
- 监控报警缺乏历史数据
- 严重依赖外部插件
原理
- Nagios 执行安装在它里面的 check_nrpe 插件,并告诉 check_nrpe 去检测哪些服务。
- 通过 SSL,check_nrpe 连接远端机子上的 NRPE daemon。
- NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,…etc)。
- 最后,NRPE 把检测的结果传给主机端 check_nrpe,check_nrpe 再把结果送到 Nagios 状态队列中。
- Nagios 依次读取队列中的信息,再把结果显示出来。