项目4 移动电商运维自动化

项目引入

    在一次移动电商系统发布更新上,由于我的不小心,错误地删除了生产服务器上的执行代码,导致整个移动电商系统页面都无法访问,最后花很长时间才恢复,这次事故给公司带来了不小的麻烦。

Philip组织整个运维团队进行故障分析、总结经验,提出了系统运维的两个观点:

第一:进一步减少人为直接干预修改生产环境系统引发的故障;

第二:提升效率,包括对集群进行运维时的日常备份、服务器状态监控和报警等,并告诉我们可以尝试运维自动化。

Philip的一句话犹如迷雾中灯塔,这让非常懊恼自责的我看到了下一步工作的重点和方向。运维工作需要时时保持警惕和清醒,“不小心”的背后意味着错误甚至巨大的损失,人力虽然充满了创造的可能,但是自动化往往代表了更加地稳定而有效率,如何在其中权衡,是我们都要思考的问题

任务一: 自动化运维探索

1.知识总览

2.任务描述

近期一Web应用业务需要上线,预计短时间内会有几百台服务器要上线,部署几百台服务器,以运维部目前有限的人手根本不够,怎么办?

显然靠传统的运维不能快速有效的解决问题,解决方案就是我们这个项目中重点要讲的运维自动化。什么是运维自动化,一句话概括:采取自动化安装、配置及监控的方案,在最少的人工干预下,利用脚本与第三方工具,保证业务系统7*24小时高效稳定运行。

3.自动化运维概要

什么是自动化运

IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。

运维自动化对运维人员要求

1.事前预警          2.事中恢复              3.事后存档

运维知识体系

ITSM ITSM是一个理念,是一套方法论,可以帮助企业对IT服务进行有效管理的高质量。

ITIL: ITILCCTA(英国国家计算机和电信局)于20世纪80年代中期开始开发的一套针对IT行业的服务

管理标准库。

两者之间的关系和区别: ITIL是标准,是ITSM实施过程中的抽象和经验总结,它是ITSM实施中的一套流程

和准则

DevOps(DevOps: DevelopmentOperations的组合):DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。

4.自动化运维工具简介

安装

署相关

Cobbler:能够快速建立网络安装环境,可以为各种Linux提供自动化安装任务。

Spacewalk:管理Red Hat衍生发行版的软件内容更新,同时提供预备和监控的功能。

配置管

理相关

Chef:一个IT自动化平台,可让创建、部署、变更和管理基础设施运行时环境和应用。

Puppet:基于ruby开发,一种Lin`uxUnix平台的集中配置管理系统。可管理配置文件、用户、计划任务、软件包、系统服务等。

Ansible:基于Python开发,提供自动化运维框架。结合众多的模块工作,可实现批量系统配置、批量程序部署、批量运行命令等功能。

SaltStack:基于Python开发,一个异构平台基础设置管理工具。具备配置管理、远程执行、监控功能。

监控报警相关

Nagios:一个Linux/Unix操作系统下的监视系统,可以监控系统、应用、服务以及各种进程的运行状况,并提供多种报警机制。

Zabbix:一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制。

Cacti:基于PHP开发,一款网络流量监测图形分析工具。要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。

Zenoss Core:一个智能监控软件,可依靠单一的WEB控制台来监控网络架构的状态和健康度。主要功能具有监控可用性,性能,配置和各种事件。

5.常用集群软硬件的介绍及选型

企业运维中常用的集群软硬件产品

在互联网企业中常用开源负载均衡软件有:LVSNginxHaproxy,常用于高可用开源软件有:KeepalivedHeartbeat

常用负载均衡硬件有:F5NetscalerRadwareA10等,工作模式相当于Haproxy的工作模式。

对于集群负载均衡产品如何选型

第一阶段:利用Nginx或者Haproxy进行单点载均衡

第二阶段:随着网络服务进一步扩大这时使用LVS或者商用F5就是首要选择

第三阶段:这时网络服务已经成为主流产品开源的LVS,已经成为首选,这时LVS会成为主流。

如何选择开源集群软件产品

中小型互联网企业网站首选Nginx负载均衡考虑负载均衡的高可用功能,建议首先Keepalived软件

大型互联网企业,负载均衡产品可以选择LVS+ Keepalived在前端做四层转发再后面是应用服务器

任务二:构建cobbler网络自动装环

1.任务描述

服务器系统的部署是一件单一且重复性较高的事,那么该怎样避免“重复造轮子”?本节主要对Cobbler的介绍以及部署实践,通过配置Kickstart的无人值守安装方式,服务器通过PXE启动方式,实现通过网络就可以在服务器上自动部署系统的目的。

2.Cobbler简介

Cobbler概述

Cobblerpython语言开发,是对PXEKickstart以及DHCP的封装。融合很多特性,提供了CLIWeb

管理形式,更加方便的实行网络安装。同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展。

它不仅可以安装物理机,同时也支持KVMXEN虚拟化、Guest OS的安装。

Cobbler 组成

发行版:表示一个操作系统

配置文件:包含一个发行版、一个 kickstart 文件以及可能的存储库

系统:表示要配给的机器。

存储库:保存一个 yum rsync 存储库的镜像信息。

镜像:可替换一个包含不属于此类别的文件的发行版对象

3.Cobbler工作原理

任务三:Ansible自动化管理实践

1.任务描述

运维过程中,对服务器上业务程序的配置往往需要每台去连接,如果服务器数量不多尚且可以,但如果存在大量服务器这种连接方式显然耗费大量时间,那么如何解决这一问题?本小节讲解自动化配置管理工具Ansible的部署和使用,通过Ansible实现对服务器批量配置管理,从而提高运维效率。

2.Ansible简介

Ansible是一款基于Python开发的自动化运维的开源工具,主要是实现批量系统配置、批量程序部署、批量运行命令、批量执行任务等诸多功能。

Ansible基本架构

Ansible优点

1).量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可

2).批量任务执行可以写成脚本,而且不用分发到远程就可以执行

3).使用python编写,维护更简单,ruby语法过于复杂

4).支持sudo

3.Ansible部署及组件介绍

Ansible安装环境准备

Ansible控制主机系统可以是各种类UNIX操作系统,如Red HatDebianCentOSOS XBSD等各种版本,Windows环境系统当前还不能作为控制主机。Ansible所在的控制主机需要的组件包括Python 2.6或以上、paramiko模块、PyYAMLJinja2httplib2

安装Ansible

配置运行环境

1).配置Ansible环境需要安装Python 2.4或以上版本使用环境变量方式来配置设置ansible.cfg配置参数

2).使用公钥认证 Ansible 1.2.1之后的版本都默认启用公钥认证,采用SSH方式连接。

3).配置Linux主机SSH无密码访问通过证书签名达到SSH密码访问。使用ssh-keygenssh-copy-id实现快速证书的生成及公钥下发,其中ssh-keygen生产一对密钥,使用ssh-copy-id来下发生成的公钥。

4).测试Ansible

4.Ansible组件介绍

Ansible Inventory

Ansible Inventory实际上是包含静态Inventory和动态Inventory部分

静态Inventory指的是在文件/etc/ansible/hosts中定义主机和主机组。

1.定义主机和主机组

2.动态 Inventory

调用第三方脚本来动态的配置Inventory文件Ansible启用动态Inventory 是通过调用外部脚本(任何脚本都可以,二进制文件也可以,只要运行结果返回的是JSON 串就可以)生成指定格式的JSON串 。Ansible可以对JSON格式的字符串对行解析,最终转化Ansible可用的Inventory文件格式所以,所谓的动态Inventory文件脚本开发其实就是编写脚本根据具体环境将主机信息及关系(这些数据可以通过抓取数据库,调用外部API或者直接读取文件获得)以JSON格式来表示出来,并将其做为脚本输出结果传给Ansible

任务Zabbix自动化监控实践


1.任务描述

监控是运维过程中不可或缺的一环,监控能使运维人员实时掌握服务器运行状况,第一时间发现并解决故障,为良性运维提供宝贵时间。本小节通过对Zabbix主流开源监控软件部署和管理讲解,实现对Linux主机上所部署应用进行监控预警。

2.Zabbix简介

Zabbix 是一个企业级的、开源的、分布式的监控套件 Zabbix可以监控网络和服务的监控状况。

  Zabbix特性

zabbix架构及组件

Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行,C语言编写

Database Storage:专用于存储所有配置信息以及zabbix收集的数据;

Web GUIzabbixweb接口,通常与Server运行在同一台主机上,通常被称为frontendPHP语言开发;

Proxy可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;

Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy.

3.Zabbix部署实验

 Zabbix服务端安装

Zabbix自动化监控案列

Zabbix监控Linux主机设置

1.被监控的Linux主机,配置防火墙,开启1005010051TCPUDP端口   2.关闭SELINUX

3.下载Zabbix客户端   4.安装Zabbix   5.添加zabbix服务对应的端口   6.修改Zabbix配置文件  

7.添加开机启动脚本   8 .测试Zabbix客户端与Zabbix服务端通信是否正常

9.添加对Linux主机的监控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多屏多机同控!天途首发瑶光智控地面站

瑶光智控地面站全新发布!高性能处理器,高亮三屏显示。内置天途云控系统,融合图传、控制、存储和数据处理等功能与一体,强大算力,高度集成无人机、无人船、无人车和机械狗等多种无人装备进行云控云算。 内置4G公网通讯模…

LabVIEW调用外部DLL(动态链接库)

LabVIEW调用外部DLL(动态链接库) LabVIEW调用外部DLL(动态链接库)可以扩展其功能,使用外部库实现复杂计算、硬件控制等任务。通过调用节点(Call Library Function Node)配置DLL路径、函数名称和…

Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作[Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解]还在写0.0… 文章目录 系…

道歉性质的《情况说明》应如何写,才能赢得对方的谅解?

道歉性质的《情况说明》应如何写,才能赢得对方的谅解? ——从“成都地铁被诬陷偷拍案”两涉事女的《情况说明》中想到了什么? 据九派新闻报道,在“成都地铁被诬陷偷拍案”中,近日两名当事女子罗某某和曾某某首次公开回…

网关(GateWay)- 快速使用

引入依赖 <!-- gateway --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 路由配置 server:port: 8088 spring:application:name: api-gatew…

零基础学会asp.net做网站/公众号/小程序之三:实战初体验(简单程序教学)

关注我&#xff0c;持续分享逻辑思维&管理思维&面试题&#xff1b; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导&#xff1b; 博主在互联网大厂深耕近二十年&#xff0c;从一线码农做起&#xff0c;到人工智能公司副总裁。希望把过往经验总结出来&#xff0…

MySQL 命令总结篇-思维导图

一些常用命令以思维导图形式总结在这里了&#xff0c;掌握这些进行MySQL基本操作绝对没问题&#xff0c;加油&#xff01;友友们可以根据这些思维导图进行知识总结。 目录 一、快速上手 二、SQL 语句分类&#xff08;DDL、DML、DQL、DCL&#xff09; 三、数据类型 四、约束…

探索AI去衣技术中的反射应用

在当今数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展已经渗透到了我们生活的方方面面。其中&#xff0c;图像处理和计算机视觉作为AI的重要分支&#xff0c;正不断推动着创新应用的边界。今天&#xff0c;我们要探讨的是一个颇具争议但又技术上颇为有…

[Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解

目录 0.子序列 vs 子数组1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.摆动序列1.题目链接2.题目链接3.代码实现 0.子序列 vs 子数组 子序列&#xff1a; 相对顺序是跟源字符串/数组是一致的但是元素和元素之间&#xff0c;在源字符串/数组中可以是不连续的一般时间…

金融行业数字化上云及信创改造过程中的一些问题及解决方案|合集①

Q&#xff1a;对金融机构来讲&#xff0c;什么是一切业务运行的前提&#xff1f; 金融机构的业务连续性对系统的稳定性要求极高。任何系统故障都可能导致严重的业务中断和经济损失。因此&#xff0c;金融机构需要IT基础架构能够提供高稳定性的服务&#xff0c;确保业务的连续运…

Android Display Graphics #1 整体框架介绍一

软件基础 Android的framework层提供了一系列的图像渲染API&#xff0c;可绘制2D和3D。简单理解就是上层开发APP的小伙伴提供了接口&#xff0c;开发者可以直接显示对应的自己内容。但如果掌握了Display底层逻辑再写上层app&#xff0c;会有掌控力&#xff0c;出问题可以根据lo…

iOS自动连接已知Wi-Fi功能的实现

首先需要在配置文件申请的时候将hotspot勾选上&#xff0c;之后还要在x-code里添加对应的配置&#xff0c;由于我们并没有用到获取设备周边Wi-Fi的功能&#xff0c;所以就没申请相关权限 相关连接Wi-Fi代码如下&#xff1a; #import <NetworkExtension/NetworkExtension.h&…

探索k8s集群的存储卷 emptyDir hostPath nfs

目录 一 含义 查看支持的存储卷类型 emptyDir存储卷 1.1 特点 1.2 用途 1.3部署 二、hostPath存储卷 一 含义 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重…

FreeRTOS【12】队列集使用

1.开发背景 基于以上的章节&#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用&#xff0c;已经满足了日常使用场景。这个篇章要介绍的是队列集&#xff0c;实际上队列的升级版&#xff0c;存储信号量和队列等的触发事件。 队列集在实际的开发项目中应用相对比较少&…

chap4 simple neural network

全连接神经网络 问题描述 利用numpy和pytorch搭建全连接神经网络。使用numpy实现此练习需要自己手动求导&#xff0c;而pytorch具有自动求导机制。 我们首先先手动算一下反向传播的过程&#xff0c;使用的模型和初始化权重、偏差和训练用的输入和输出值如下&#xff1a; 我…

达梦数据库写文件的方式探索

0x01 前沿 这篇文章整体算是《达梦数据库手工注入笔记》的续集&#xff0c;达梦作为国内优秀的信创数据库&#xff0c;在关基单位中拥有越来越大的用户使用量。 通过SQL注入来写文件一直以来都是SQL注入漏洞深入利用的一种方式&#xff0c;对于不同的数据库通常写文件的方式也是…

刷代码随想录有感(86):贪心算法——跳跃游戏II(最小跳跃次数)

题干&#xff1a; 代码&#xff1a; class Solution { public:int jump(vector<int>& nums) {if(nums.size() 1)return 0;int curcover 0;int nextcover 0;int res 0;for(int i 0; i < curcover; i){nextcover max(i nums[i], nextcover);if(i curcover …

二叉树的链式存储

目录 1.二叉树的概念和性质2.二叉树的链式存储2.1二叉树的遍历2.1.1前中后遍历2.1.2层次遍历 2.2求节点的个数2.3求叶子节点的个数2.4求第k层节点个数2.5二叉树的销毁2.6怎样通过前序遍历构建二叉树2.7判断是否是满二叉树 1.二叉树的概念和性质 一&#xff0c;概念 1.五种形态…

掌握 JavaScript 基本输出方法

掌握 JavaScript 基本输出方法 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 JavaScript 是一种强大且灵活的编程语言&#xff0c;广泛用于 Web 开发。通过 JavaScript&#xff…

YOLOV8训练自己的数据集图文实战,包含voc数据集处理代码

yolov8官方链接: link 本文章是以labelimg标注好的voc数据集为基础,通过转换格式训练模型, 一,安装 pip install ultralyticsor pip install githttps://github.com/ultralytics/ultralytics.gitmainlink 二,数据集准备 数据集格式如下 ├── ultralytics └── datase…