运维_运维面试题 - CSDN
运维 订阅
运维,这里指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。一个互联网产品的生成一般经历的过程是:产品经理、需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。运维,本质上是对网络、服务器、服务的生命周期各个阶段的运营与维护,在成本、稳定性、效率上达成一致可接受的状态。 展开全文
运维,这里指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。一个互联网产品的生成一般经历的过程是:产品经理、需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。运维,本质上是对网络、服务器、服务的生命周期各个阶段的运营与维护,在成本、稳定性、效率上达成一致可接受的状态。
信息
中文名
运维
DBA
Database Administrator
运维平台
运维相关工作平台
外文名
Operation and maintenance
运维工程师
运维从业人员
SRE
Site Reliability Engineer
运维运维的职责
对于初创公司,运维部和系统部一般是合二为一的,相关工作由同一批人负责,界限可能不是很明显。大型公司对运维工作的要求更高,需要有更精细的分工,因此机房/网络/操作系统相关的底层工作分离出来由专人负责,成为系统管理部,而上层和应用产品相关的工作则由运维负责,成为运维部。以下从互联网产品生命周期和运维涉及的技术分别来看分工较细的大型互联网公司中运维工作的职责。 [1] 
收起全文
  • 本人现在一个企业做运维经理,分享给大家自己2年时间从一个初级运维做到运维经理一些个人经验 ,让学习linux同学不在迷茫,走出困惑,找到理想一个高薪工作,改变一生
  • 从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。 既然讲,就讲最重要的吧。 监控是...

    从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。

    既然讲,就讲最重要的吧。

    监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方案。当然,对监控不是很明白的朋友们,看了以下文章可能会对监控整个体系有比较深刻的认识。

    一、监控目标

    每个人由于所在的行业、公司、业务、岗位不同,对监控的理解也不尽相同,但是我们需要注意,监控是需要站在公司的业务角度去考虑,而不是针对某个监控技术的使用。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    1. 对系统不间断的实时监控:实际上是对系统不间断的实时监控(这就是监控);
    2. 实时反馈系统当前状态:我们监控某个硬件、或者某个系统,都是需要能实时看到当前系统的状态,是正常、异常、或者故障。
    3. 保证服务可靠性安全性:我们监控的目的就是要保证系统、服务、业务正常运行
    4. 保证业务持续稳定运行:如果我们的监控做得很完善,即使出现故障,能第一时间接收到故障报警,在第一时间处理解决,从而保证业务持续性的稳定运行。

    二、监控方法

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    1.了解监控对象:我们要监控的对象你是否了解呢?比如CPU到底是如何工作的?

    2.性能基准指标:我们要监控这个东西的什么属性?比如CPU的使用率、负载、用户态、内核态、上下文切换。

    3.报警阈值定义:怎么样才算是故障,要报警呢?比如CPU的负载到底多少算高,用户态、内核态分别跑多少算高?

    4.故障处理流程:收到了故障报警,我们怎么处理呢?有什么更高效的处理流程吗?

    三、监控核心

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    • 发现问题:当系统发生故障报警,我们会收到故障报警的信息。
    • 定位问题:故障邮件一般都会写某某主机故障、具体故障的内容,我们需要对报警内容进行分析。比如一台服务器连不上,我们就需要考虑是网络问题、还是负载太高导致长时间无法连接,又或者某开发触发了防火墙禁止的相关策略等,我们就需要去分析故障具体原因。
    • 解决问题:当然我们了解到故障的原因后,就需要通过故障解决的优先级去解决该故障。
    • 总结问题:当我们解决完重大故障后,需要对故障原因以及防范进行总结归纳,避免以后重复出现。

    四、监控工具

    下面我们需要选择一款适合公司业务的监控工具进行监控,。这里我对监控工具进行了简单的分类。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    1、老牌监控

    • MRTG(Multi Route Trffic Grapher)是一套可用来绘制网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发,以GPL授权。MRTG最好的版本是1995年推出的,用Perl语言写成,可跨平台使用,数据采集用SNMP协议,MRTG将手机到的数据通过Web页面以GIF或者PNG格式绘制出图像。
    • Ganglia是一个跨平台的、可扩展的、高性能的分布式监控系统,如集群和网格。它基于分层设计,使用广泛的技术,用RRDtool存储数据。具有可视化界面,适合对集群系统的自动化监控。其精心设计的数据结构和算法使得监控端到被监控端的连接开销非常低。目前已有成千上万的集群正在使用这个监控系统,可以轻松地处理2000个节点的集群环境。
    • Cacti(英文含义为仙人掌)是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,但使用者无须了解RRDtool复杂的参数。提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP结合进行用户认证,同时也能自定义模板。在历史数据展示监控方面,其功能相当不错。Cacti通过添加模板,使不同设备的监控添加具有可复用性,并且具备可自定义绘图的功能,具有强大的运算能力(数据的叠加功能)
    • Nagios是一个企业级监控系统,可监控服务的运行状态和网络信息等,并能监视所指定的本地或远程主机状态以及服务,同时提供异常告警通知功能等。Nagios可运行在Linux和UNIX平台上。同时提供Web界面,以方便系统管理人员查看网络状态、各种系统问题、以及系统相关日志等。Nagios的功能侧重于监控服务的可用性,能根据监控指标状态触发告警。目前Nagios也占领了一定的市场份额,不过Nagios并没有与时俱进,已经不能满足于多变的监控需求,架构的扩展性和使用的便捷性有待增强,其高级功能集成在商业版Nagios XI中。
    • Smokeping主要用于监视网络性能,包括常规的ping、www服务器性能、DNS查询性能、SSH性能等。底层也是用RRDtool做支持,特点是绘制图非常漂亮,网络丢包和延迟用颜色和阴影来标示,支持将多张图叠放在一起,其作者还开发了MRTG和RRDtll等工具。 Smokeping的站点为:http://tobi.oetiker.cn/hp。
    • 开源监控系统OpenTSDB用HBase存储所有时序(无须采样)的数据,来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集,支持永久存储,可以做容量规划,并很容易地接入到现有的告警系统里。OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的采集指标,并进行存储、索引和服务,从而使这些数据更容易让人理解,如Web化、图形化等。

    2、王牌监控

    • Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的。相对来说,它的总体功能做得非常优秀。从以上各种监控系统的对比来看,Zabbix都是具有优势的,其丰富的功能、可扩展的能力、二次开发的能力和简单易用的特点,读者只要稍加学习,即可构建自己的监控系统。
    • 小米的监控系统:Open-Falcon。Open-Falcon的目标是做最开放、最好用的互联网企业级监控产品。

    3、三方监控

    现在市场上有很多不错的第三方监控,比如:监控宝、监控易、听云、还有很多云厂商自带监控,但在这里我不打算着重介绍,如果想了解三方监控可自行上官网咨询。(避免说广告植入)

    五、监控流程

    上面介绍了这么多,到底选择什么监控工具最合适呢?我这里推荐几款开源监控工具:Zabbix、Open-Falcon、LEPUS天兔(专用于监控数据库)。但本文还是基于Zabbix来构建整个监控体系生态圈。 下面我们就来聊聊Zabbix的整个流程:

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    1. 数据采集:Zabbix通过SNMP、Agent、ICMP、SSH、IPMI等对系统进行数据采集;
    2. 数据存储:Zabbix存储在MySQL上,也可以存储在其他数据库服务;
    3. 数据分析:当我们事后需要复盘分析故障时,Zabbix能给我们提供图形以及时间等相关信息,方面我们确定故障所在;
    4. 数据展示:Web界面展示、(移动APP、java_php开发一个Web界面也可以);
    5. 监控报警:电话报警、邮件报警、微信报警、短信报警、报警升级机制等(无论什么报警都可以);
    6. 报警处理:当接收到报警,我们需要根据故障的级别进行处理,比如:重要紧急、重要不紧急,等。根据故障的级别,配合相关的人员进行快速处理。

    六、监控指标

    上面了解了监控方法、目标、流程、也了解了监控有哪些工具,可能有人会疑惑,我们具体要监控些什么东西,在这里我进行了分类整理,包含硬件监控、系统监控、应用监控、网络监控、流量分析、日志监控、安全监控、API监控、性能监控、业务监控。

    1、硬件监控

    早期我们通过机房巡检的方式,查看硬件设备灯光闪烁情况判断是否故障,这样非常浪费人力,并且是重复性无技术含量的工作,大家懂得。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    当然我们现在可以通过IPMI对硬件详细情况进行监控,并对CPU、内存、磁盘、温度、风扇、电压等设置报警设置报警阈值(自行对监控报警内容编写合理的报警范围) 。

    IPMI监控硬件服务参考资料:Zabbix IPMI Interface

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    2、系统监控

    中小型企业基本全是Linux服务器,那么我们肯定是要监控起系统资源的使用情况,系统监控是监控体系的基础。

    监控主要对象:

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    CPU有几个重要的概念:上下文切换、运行队列和使用率。这也是我们CPU监控的几个重点指标。

    通常情况,每个处理器的运行队列不要高于3,CPU 利用率中用“户态/内核态”比例维持在70/30,空闲状态维持在50%,上下文切换要根据系统繁忙程度来综合考量。

    针对CPU常用的工具有:htop、top、vmstat、mpstat、dstat、glances。Zabbix提供系统监控模板:Zabbix Agent Interface。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    CPU整体状态

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    上下文切换

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    负载状态

    内存:通常我们需要监控内存的使用率、SWAP使用率、同时可以通过Zabbix描绘内存使用率的曲线图形发现某服务内存溢出等。

    针对内存常用的工具有:free、top、vmstat、glances。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    内存使用率

    IO分为磁盘IO和网络IO。除了在做性能调优我们要监控更详细的数据外,日常监控只关注磁盘使用率、磁盘吞吐量、磁盘写入繁忙程度,网络也是监控网卡流量即可。常用工具有:iostat、iotop、df、iftop、sar、glances。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    磁盘使用率

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    磁盘读/写吞吐

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    网卡进出口流量

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    TCP11种状态信息

    其它系统监控还有运行的进程端口、进程数、登陆用户、Open File等(详细查看Zabbix自带OS Linux模板)。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    其它相关监控

    3、应用监控

    把硬件监控和系统监控研究明白后,我们进一步操作是需要登陆到服务器上查看服务器运行了哪些服务,都需要监控起来。

    应用服务监控也是监控体系中比较重要的内容,例如:LVS、HAProxy、Docker、Nginx、PHP、Memcached、Redis、MySQL、RabbitMQ等,相关的服务都需要使用zabbix监控起来。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    nginx_status

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    PHP-FPM_status

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    Redis_status

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    JVM监控

    笔者之前写过服务监控详细的操作过程,这里就不一一展示,详情访问:Zabbix监控各种应用服务。

    • Zabbix提供应用服务监控:Zabbix Agent UserParameter
    • Zabbix提供的Java监控:Zabbix JMX Interface
    • Percona提供MySQL数据库监控:percona-monitoring-plulgins

    4、网络监控

    作为一个针对全国用户的电商网站,时刻掌握各地到机房的网络状态也是必须的。

    网络监控是我们构建监控平台是必须要考虑的,尤其是针对有多个机房的场景,各个机房之间的网络状态,机房和全国各地的网络状态都是我们需要重点关注的对象,那如何掌握这些状态信息呢?我们需要借助于网络监控工具Smokeping。

    Smokeping 是rrdtool的作者Tobi Oetiker的作品,是用Perl写的,主要是监视网络性能,www服务器性能,DNS查询性能等,使用rrdtool绘图,而且支持分布式,直接从多个agent进行数据的汇总。

    同时,由于自己监控点比较少,还可以借助很多商业的监控工具,比如监控宝、基调、博瑞等。同时这些服务提供商还可以帮助你监控CDN的状态。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    监控宝

    5、流量分析

    网站流量分析对于运维人员来说,更是一门必须掌握的知识了。比如对于一家电商公司来说:通过对订单来源的统计和分析,可以了解我们在某个网站上的广告投入有没有收到预期的效果。 可以区分不同地区的访问人数、甚至商品交易额等。百度统计、Google分析、站长工具等,只需要在页面嵌入一个js即可。

    但是,数据始终是在对方手中,个性化定制不方便,于是Google出一个叫Piwik的开源分析工具。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    piwik

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    百度统计

    6、日志监控

    通常情况下,随着系统的运行,操作系统会产生系统日志,应用程序会产生应用程序的访问日志、错误日志,运行日志,网络日志,我们可以使用ELK来进行日志监控。

    对于日志监控来说,最见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:Logstash(收集)+ElasticSearch(存储+搜索)+Kibana(展示)。

    我们将这三个组合起来的技术称之为ELK Stack,所以说ELK Stack指的是Elasticsearch、Logstash、Kibana技术栈的结合。

    如果收集了日志信息,部署更新有异常出现,可以立即在Kibana上看到。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    ELK日志展示

    当然也可以通过Zabbix过滤错误日志来进行告警。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    Zabbix日志展示

    7、安全监控

    虽然Linux开源的安全产品不少,比如四层iptables,七层WEB防护Nginx+Lua实现WAF,最后将相关的日志都收至ELkstack,通过图形化进行不同的攻击类型展示。但是始终是一件比较耗费时间,并且个人效果并不是很好。这个时候我们可以选择接入第三方服务厂商。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    某某三方安全

    三方厂商提供全面的漏洞库,涵盖服务、后门、数据库、配置检测、CGI、SMTP等多种类型。

    全面检测主机、Web应用漏洞自主挖掘和行业共享相结合第一时间更新0-day漏洞,杜绝最新安全隐患。

    8、API监控

    由于API变得越来越重要,很显然我们也需要这样的数据来分辨我们提供的 API是否能够正常运作。

    监控API接口GET、POST、PUT、DELETE、HEAD、OPTIONS的请求。可用性、正确性、响应时间为三大重性能指标。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    API监控

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    三方API监控

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    响应时间

    9、性能监控

    全面监控网页性能,DNS响应时间、HTTP建立连接时间、页面性能指数、响应时间、可用率、元素大小等。Zabbix提供URL监控:Zabbix Web 监控。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    Zabbix站点监控

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    终端响应时间

    第三方监控监控大盘。各类图表一目了然,全面体现网页性能健康状况。

    10、业务监控

    没有业务指标监控的监控平台,不是一个完善的监控平台,通常在我们的监控系统中,必须将我们重要的业务指标进行监控,并设置阈值进行告警通知。比如电商行业:

    每分钟产生多少订单、每分钟注册多少用户、每天有多少活跃用户、每天有多少推广活动、推广活动引入多少用户、推广活动引入多少流量、推广活动引入多少利润等,重要指标都可以加入Zabbix上,然后通过Screen展示。

    注:由于业务监控图表,涉及到隐私的数据太多,就不截图了。

    七、监控报警

    故障报警通知的方式有很多种,当然最常用的还是短信和邮件。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    短信报警

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    邮件报警

    八、报警处理

    一般报警后故障如何处理,首先我们可以通过告警升级机制先自动处理,比如Nginx服务down了,可以设置告警升级自动启动Nginx。

    但是如果一般业务出现了严重故障,我们通常根据故障的级别、业务,来指派不同的运维人员进行处理。

    当然不同业务形态、不同架构、不同服务可能采用的方式都不同,这个没有一个固定的模式套用。

    做了5年运维,靠着这份监控知识体系,我从3K变成了40K

     

    九、面试监控

    在运维面试中,常常会被问题监控相关的问题,这个问题到底该如何来回答,我针对本文给大家提供了一个简单的回答思路

    1、硬件监控

    通过SNMP来进行路由器交换机的监控(这些可以跟一些厂商沟通来了解如何做)、服务器的温度以及其它,可以通过IPMI来实现。当然如果没有硬件全都是云,直接跳过这一步骤。

    2、系统监控

    如CPU的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘inode使用率。当然这些都是需要配置触发器,因为默认太低会频繁报警。

    3、服务监控

    比如公司用的LNMP架构,Nginx自带Status模块、PHP也有相关的Status、MySQL的话可以通过Percona官方工具来进行监控。Redis这些通过自身的info获取信息进行过滤等。方法都类似。要么服务自带。要么通过脚本来实现想监控的内容,以及报警和图形功能。

    4、网络监控

    如果是云主机又不是跨机房,那么可以选择不监控网络。当然你说我们是跨机房以及如何如何,推荐使用smokeping来做网络相关的监控,或者直接交给你们的网络工程师来做,因为术业有专攻。

    5、安全监控

    如果是云主机可以考虑使用自带的安全防护。当然也可以使用iptables。如果是硬件,那么推荐使用硬件防火墙。使用云可以购买防DDOS,避免出现故障导致down机一天。如果是系统,那么权限、密码、备份、恢复等基础方案要做好。Web同时也可以使用Nginx+Lua来实现一个Web层面的防火墙。当然也可以使用集成好的OpenResty。

    6、Web监控

    Web监控的话题其实还是很多。比如可以使用自带的Web监控来监控页面相关的延迟、js响应时间、下载时间、等等。这里我推荐使用专业的商业软件监控宝或听云来实现。毕竟人家全国各地都有机房(如果本身是多机房那就另说了)。

    7、日志监控

    如果是Web的话可以使用监控Nginx的50x、40x的错误日志,PHP的ERROR日志。其实这些需求无非是,收集、存储、查询、展示,我们其实可以使用开源的ELKStack来实现。Logstash(收集)、Elasticsearch(存储+搜索)、Kibana(展示)。

    8、业务监控

    上面做了那么多,其实最终还是保证业务的运行。这样我们做的监控才有意义。所以业务层面这块的监控需要和开发以及总监开会讨论,监控比较重要的业务指标,(需要开会确认)然后通过简单的脚本就可以实现,最后设置触发器即可 。

    9、流量分析

    平时我们分析日志都是拿awk sed xxx一堆工具来实现。这样对我们统计IP、PV、UV不是很方便。那么可以使用百度统计、Google统计、商业,让开发嵌入代码即可。为了避免隐私也可以使用Piwik来做相关的流量分析。

    10、可视化

    通过Screen以及引入一些第三方的库来美化界面,同时我们也需要知道,订单量突然增加、突然减少。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了,还是被攻击了。可以结合监控平来梳理各个系统之间的业务关系。

    11、自动化监控

    如上我们做了那么多的工作,当然不能是一台一台的来加key实现。可以通过Zabbix的主动模式以及被动模式来实现。当然最好还是通过API来实现。

    总结

    真正想做到更完整的监控体系,目前的开源软件确实无法很好地满足,有条件的公司都开始自己开发自己的监控系统,比如小米开源的Open-Falcon。

    也有比较好的开源的监控框架如Sensu等,再加上InfluxDB、Grafana可以用来定制符合自己企业的监控平台。

    展开全文
  • 听说你精通运维?Apache、Nginx、tomcat、vmstat、iftop、awk、sed、sar、iostat、LVS、HA-proxy、MHA、Zookeeper、Zabbix、Nagios、Cacti、Prometheus、shell、python、go、rundeck、ansible、saltstack、puppet、...

    听说你精通运维?Apache、Nginx、tomcat、vmstat、iftop、awk、sed、sar、iostat、LVS、HA-proxy、MHA、Zookeeper、Zabbix、Nagios、Cacti、Prometheus、shell、python、go、rundeck、ansible、saltstack、puppet、chef、cobbler、fabric、docker、Moby, kubernetes 了解一下?

    我们这篇文章不是说运维除了懂Linux,还要懂Windows,而是涉及运维的其他方方面面。

    环境部署

    一开始这个世界是开发的,然后才是运维的。

    开发实现产品逻辑,将产品开发完成后,然后提交运维进行部署。此时允许就需要准备好部署环境,如部署在Linux服务器上,安装相应的软件,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只装了软件吧,还需要看看具体是哪个版本,java 7 和java 8 的差别还是有点的,php5和php7也有些语法不兼容。把软件都安装好了,就可以上线了?还是不行。还需要测试吧,那就还需要部署一套测试环境。有些时候,开发环境也是需要运维来部署的。

    排错和调优

    事情从来都没有一帆风顺的。

    上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。

    相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...

    备份

    做最好的计划,做最坏的打算。

    前不久的gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。

    相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, ...

    高可用和集群

    没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。

    出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。

    相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, ...

    监控告警

    运维工程师的第一次解放运动。

    时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。

    相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...

    安全和审计

    狂奔在互联网的康庄大道上,不过有些人是在裸奔。

    不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?

    相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...

    自动化和DevOps

    运维工程师的第二次解放运动。

    偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。

    相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...

    虚拟化和云服务

    正在发生的一场运维革命。

    这场革命的发起人是买书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。

    相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...

    来源:http://os.51cto.com/art/201805/573436.htm



    文末福利 || 免费领:运维大神速成秘籍(300页干货,基础、进阶、高端,全方位linux技能整理)




    展开全文
  • 运维一般干什么?

    2019-04-19 02:35:44
    运维一般干什么?”这个问题居然是百度上搜索“运维”的最热门问题:对应这个问题的最佳答案如下,不知道各位运维同学是否认同?一、运维工程师的工作:保障业务长期稳定运行(如...
        

    “运维一般干什么?”这个问题居然是百度上搜索“运维”的最热门问题:


    640?wx_fmt=png


    对应这个问题的最佳答案如下,不知道各位运维同学是否认同?

     

    一、运维工程师的工作:


    1. 保障业务长期稳定运行(如网站服务器、游戏服务器等)。

    2. 保障数据安全可靠(如用户名密码、游戏数据、博客文章、交易数据等)。

    3. 随时解决报警故障。

    4. 业务程序更新。

    5. 编写一些脚本,监控或完成其他可自动完成功能。

    6. 运维架构完善,部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范。

    7. 打杂,如调交换机,装系统,部署新环境等。


    运维和开发是两个截然不同的方向。如果做运维的话,有开发的底子那么转岗位也不是不可以。


    运维负责具体的产品线运维工作,同时也需要掌握开发的能力,深入业务,最了解业务的痛点和问题,同时研发/优化针对产品业务需求的平台、工具和手段,能够接触到各类优秀的系统架构并有能力做出优劣对比,同时对业务的掌控决定了相应运维工程师在业务发展中的作用。


    二、拓展资料:


    运维,这里指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。


    一个互联网产品的生成一般经历的过程是:产品经理、需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。


    运维是一个非常广泛的定义,在不同的公司不同的阶段有着不同的职责与定位,如果以operation字面的含义去理解,认为就是敲几行操作命令的工作,那就错了。 对于初创公司,运维工程师的工作可能需要从申请域名开始,购买/租用服务器,上架,调整网络设备的设置,部署操作系统和运行环境,部署代码,设计和部署监控,防止漏洞和攻击等等。

    展开全文
  • 本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些...

    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新,本博客命令基于Centos系统

    在这里插入图片描述

    一、系统监控

    1、free命令使用

    • free命令简介
      free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存

    • free命令语法

    语法:free [param]
    

    param可以为:

    • -b:以Byte为单位显示内存使用情况;

    • -k:以KB为单位显示内存使用情况;

    • -m:以MB为单位显示内存使用情况;

    • -o:不显示缓冲区调节列;

    • -s<间隔秒数>:持续观察内存使用状况;

    • -t:显示内存总和列;

    • -V:显示版本信息。

    • free命令使用
      在这里插入图片描述
      Mem:表示物理内存统计

    • total:表示物理内存总数(total=used+free)

    • used:表示系统分配给缓存使用的数量(这里的缓存包括buffer和cache)

    • free:表示未分配的物理内存总数

    • shared:表示共享内存

    • buffers:系统分配但未被使用的buffers 数量。

    • cached:系统分配但未被使用的cache 数量。

    -/+ buffers/cache:表示物理内存的缓存统计

    • (-buffers/cache) 内存数: (指的第一部分Mem行中的used – buffers – cached)
    • (+buffers/cache) 内存数: (指的第一部分Mem行中的free + buffers + cached)

    (-buffers/cache)表示真正使用的内存数, (+buffers/cache) 表示真正未使用的内存数

    Swap:表示硬盘上交换分区的使用情况

    2、ulimit命令使用

    ulimit用于显示系统资源限制的信息
    语法:ulimit [param]
    param参数可以为:

    • -a  显示目前资源限制的设定。
    • -c <core文件上限>  设定core文件的最大值,单位为区块。
    • -d <数据节区大小>  程序数据节区的最大值,单位为KB。
    • -f <文件大小>  shell所能建立的最大文件,单位为区块。
    • -H  设定资源的硬性限制,也就是管理员所设下的限制。
    • -m <内存大小>  指定可使用内存的上限,单位为KB。
    • -n <文件数目>  指定同一时间最多可开启的文件数。
    • -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
    • -s <堆叠大小>  指定堆叠的上限,单位为KB。
    • -S  设定资源的弹性限制。
    • -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
    • -u <程序数目>  用户最多可开启的程序数目。
    • -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB

    在这里插入图片描述

    3、top命令使用

    top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,有点像window系统的任务管理器

    语法:top [param]
    

    param为:

    • -b:以批处理模式操作;
    • -c:显示完整的治命令;
    • -d:屏幕刷新间隔时间;
    • -I:忽略失效过程;
    • -s:保密模式;
    • -S:累积模式;
    • -u [用户名]:指定用户名;
    • -p [进程号]:指定进程;
    • -n [次数]:循环显示的次数。

    top命令分为上下两个部分:

    • 系统统计信息
    • 系统进程信息
      在这里插入图片描述
      系统统计信息
    top - 11:38:01 up 231 days,  2:06,  1 user,  load average: 0.88, 0.22, 0.18
    Tasks: 170 total,   1 running, 169 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 38.7 us,  3.5 sy,  0.0 ni, 42.0 id, 15.5 wa,  0.0 hi,  0.3 si,  0.0 st
    KiB Mem :  8010580 total,   927820 free,  2411572 used,  4671188 buff/cache
    KiB Swap:  4063228 total,  2933688 free,  1129540 used.  5153128 avail Mem 
    
    • row1:任务队列信息,同 uptime 命令的执行结果
      top - 11:38:01 up 231 days, 2:06, 1 user, load average: 0.88, 0.22, 0.18

      • 11:38:01 (当前系统时间)
      • up 231 days, 2:06(系统运行时间)
      • 1 user (当前登录用户数)
      • load average: 0.88, 0.22, 0.18 (系统的平均负载数,表示 1分钟、5分钟、15分钟到现在的平均数)
    • row2:进程统计信息
      Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie

      • 170 total(系统当前总进程总数)
      • 1 running (正在运行的进程数)
      • 169 sleeping(睡眠进程数)
      • 0 stopped (停止进程数)
      • 0 zombie (僵尸进程数)
    • row3:CPU 统计信息
      %Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st

      • 38.7 us, (用户空间CPU占用率)
      • 3.5 sy (内核空间CPU占用率)
      • 0.0 ni (用户进程空间改变过优先级的进程CPU的占用率)
      • 42.0 id(空闲CPU占有率)
      • 15.5 wa (等待输入输出的CPU时间百分比)
      • 0.0%hi (硬件中断请求)
      • 0.3%si (软件中断请求)
      • 0.0%st (分配给运行在其它虚拟机上的任务的实际 CPU时间)
    • row4:内存状态
      KiB Mem : 8010580 4671188 , 927820 free, 2411572 used, 4671188 buff/cache

      • 4671188 total (物理内存总量 )
      • 2411572 used (已使用的内存 )
      • 927820 free (空闲内存 )
      • 4671188 buffers (内核缓存使用)
        ps:以k为单位
    • row5:swap交换分区信息
      KiB Swap: 4063228 total, 2933688 free, 1129540 used. 5153128 avail Mem

      • 4063228 total (交换分区总量 )
      • 1129540 used (已使用交换分区内存 )
      • 2933688 free (空闲交换分区 )
      • 5153128 cached (缓冲交换区 )

    在这里插入图片描述

    系统进程信息

    • PID :进程id
    • USER :进程所有者的用户名
    • PR :进程优先级
    • NI :nice值。负值表示高优先级,正值表示低优先级
    • VIRT :进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    • RES :进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    • SHR :共享内存大小,单位kb
    • S :进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    • %CPU :上次更新到现在的CPU时间占用百分比
    • %MEM :进程使用的物理内存百分比
    • TIME+ :进程使用的CPU时间总计,单位1/100秒
    • COMMAND :进程名称[命令名/命令行]

    在这里插入图片描述

    按“1”键,可打开或关闭显示详细CPU统计信息:
    在这里插入图片描述
    按字母“B”键,可打开或关闭当前进程的显示效果
    在这里插入图片描述

    4、df命令使用

    df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

    语法:df(选项)(参数)

    选项:

    -a或–all:包含全部的文件系统;
    –block-size=<区块大小>:以指定的区块大小来显示区块数目;
    -h或–human-readable:以可读性较高的方式来显示信息;
    -H或–si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
    -i或–inodes:显示inode的信息;
    -k或–kilobytes:指定区块大小为1024字节;
    -l或–local:仅显示本地端的文件系统;
    -m或–megabytes:指定区块大小为1048576字节;
    –no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
    -P或–portability:使用POSIX的输出格式;
    –sync:在取得磁盘使用信息前,先执行sync指令;
    -t<文件系统类型>或–type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
    -T或–print-type:显示文件系统的类型;
    -x<文件系统类型>或–exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
    –help:显示帮助;
    –version:显示版本信息。

    参数:

    文件:指定文件系统上的文件。

    比较常用的有:

    • df -a 查看全部的文件系统
    • df -h查看磁盘使用情况
    • df -i 查看inode使用情况

    在这里插入图片描述

    5、ps命令使用

    ps命令用于查看进程统计信息

    常用参数:

    • a:显示当前终端下的所有进程信息,包括其他用户的进程。
    • u:使用以用户为主的格式输出进程信息。
    • x:显示当前用户在所有终端下的进程。
    • -e:显示系统内的所有进程信息。
    • -l:使用长(long)格式显示进程信息。
    • -f:使用完整的(full)格式显示进程信息。

    在使用中可以加上grep命令一起使用,也可以单独使用

    # ps命令单独使用的情况
    ps -elf tomcat
    #结合管道操作和grep命令进行过滤,用于查询某一个进程的信息
    ps -elf | grep tomcat
    

    二、文件操作

    1、tail查看文件

    tail 命令可用于查看文件的内容,语法为

    tail [param] [filename]
    

    其中param可为:

    • -f :循环读取
    • -q :不显示处理信息
    • -v :显示详细的处理信息
    • -c [数目]: 显示的字节数
    • -n [行数]: 显示文件的尾部 n 行内容
    • –pid=PID :与-f合用,表示在进程ID,PID死掉之后结束
    • -q, --quiet, --silent :从不输出给出文件名的首部
    • -s, --sleep-interval=S :与-f合用,表示在每次反复的间隔休眠S秒

    2、查看文件情况

    ll -ah命令,可以用于查看文件情况

    ll -ah
    

    3、文件权限设置

    Linux的文件基本权限有9个,分别是owenr、group、others三种身份各自有自己的r、w和x,比如“rwxrwxrwx”,就表示owener具有r、w、x权限,同样group和others同样具有r、w、x权限,可以用xftp查看文件权限
    在这里插入图片描述

    可以使用数字表示权限:

    r->4

    w->2

    x->1

    当文件权限为“rwxrwxrwx”时,分数是:

    owner->4+2+1=7

    group->4+2+1=7

    others->4+2+1=1

    此时文件的权限数字就是777

    然后要给文件file赋权的话,就可以使用Linux命令:

    chmod 777 file
    

    owner、group和others三种身份各自的三个权限,用u、g、o代表三种身份,用a(all)代表所有身份,所以还有下面的Linux命令

    chmod u|g|o|a  =(设置权限)|+(添加权限)|-(减少权限)  r|w|x  文件或者目录
    

    eg:给文件file赋值权限

        chmod u=rwx file
    

    4、文件上传下载

    在不使用xftp等linux工具的情况,可以通过linux命令,sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。

    • 下载文件
      sz命令发送文件到本地:
    sz filename
    

    在这里插入图片描述
    敲命令之后,直接弹出下载保存窗口页面

    • 上传文件
    rz
    

    敲命令之后,直接弹出上传窗口页面
    在这里插入图片描述

    rz、sz命令需要有如下条件:

    • linux系统
    • root权限
    • lrzsz安装包

    lrzsz安装步骤:

    // 编译安装
    //root 账号登陆后,依次执行以下命令:
    tar zxvf lrzsz-0.12.20.tar.gz
    cd lrzsz-0.12.20
    ./configure
    make
    make install
    //上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:
    cd /usr/bin
    ln -s /usr/local/bin/lrz rz
    ln -s /usr/local/bin/lsz sz
    

    三、网络通信

    1、netstat监控命令

    netstat命令是用于监控进出网络的包和网络接口统计的命令行工具

    语法:netstat [param]
    

    param参数可以为:

    • -h : 查看帮助
    • -r : 显示路由表
    • -i : 查看网络接口

    2、linux重启网络

    设置了linux网络,需要重启网络,可以用命令:

    service network restart 
    

    3、SELinux简介

    SELinux全称是 Security-Enhanced Linux,它是由美国国家安全局(NSA)贡献的,它为 Linux 内核子系统引入了一个健壮的强制控制访问Mandatory Access Control架构。详情可以参考SELinux 入门SELINUX工作原理

    其实SELinux的功能也就是类似于防火墙的功能,不过安全相对比较好,ok,所以本博客介绍一下SELinux的使用命令

    查看selinux状态

    getenforce
    

    临时禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)

    setenforce
    

    永久禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)

     # 将SELINUX=enforce改成SELINUX=disabled
     vi /etc/selinux/config
    

    4、防火墙设置

    查询linux系统防火墙开启状态

    firewall-cmd --state
    

    临时关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用SELINUX)

    systemctl stop firewalld.service
    

    永久关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用SELINUX)

    systemctl disable firewalld.service
    

    5、CURL命令使用

    curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;
    在这里插入图片描述
    语法:语法格式:curl [参数] [网址]

    5.1 查看curl帮助

    • 查看命令参数
      curl的参数很多,可以用命令curl --help查看:
    [root@localhost ~]# curl --help
    

    国内翻译过来的curl文档:curl参数介绍

    5.2 查看curl手册

    • 查看详细使用
      也可以使用curl --manual查看基本用法例子:
      在这里插入图片描述

    5.3 提取指定网页

    • 查看网页源码
      语法:curl uri
    [root@localhost ~]# curl www.baidu.com
    <!DOCTYPE html>
    <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
    
    
    • 显示头信息
    curl -i https://www.baidu.com
    

    打印信息:

    [root@localhost ~]# curl -i https://www.baiud.com
    curl: (7) Failed connect to www.baiud.com:443; Connection refused
    [root@localhost ~]# curl -i https://www.baidu.com
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
    Connection: keep-alive
    Content-Length: 2443
    Content-Type: text/html
    Date: Mon, 13 Jul 2020 07:22:02 GMT
    Etag: "588603eb-98b"
    Last-Modified: Mon, 23 Jan 2017 13:23:55 GMT
    Pragma: no-cache
    Server: bfe/1.0.8.18
    Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
    ...	
    
    • 显示通信过程
    curl -v www.baidu.com
    
    curl -v www.baidu.com
    * About to connect() to www.baidu.com port 80 (#0)
    *   Trying 182.61.200.7...
    * Connected to www.baidu.com (182.61.200.7) port 80 (#0)
    > GET / HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: www.baidu.com
    > Accept: */*
    > 
    < HTTP/1.1 200 OK
    < Accept-Ranges: bytes
    < Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
    < Connection: keep-alive
    < Content-Length: 2381
    < Content-Type: text/html
    < Date: Mon, 13 Jul 2020 07:24:46 GMT
    < Etag: "588604c8-94d"
    < Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
    < Pragma: no-cache
    < Server: bfe/1.0.8.18
    < Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
    < 
    <!DOCTYPE html>
    ...
    
    • 查看议定书
    [root@localhost ~]# curl --trace-ascii output.txt https://www.baidu.com
    
    

    在这里插入图片描述

    在这里插入图片描述

    • 查看时间
    curl --trace-ascii output.txt --trace-time https://www.baidu.com
    

    在这里插入图片描述

    5.4 用curl进行认证

    • referer设置
      referer参数描述了一个网页的来源,可以按F12调试模式,查看:
      在这里插入图片描述
      访问百度时候,加上referer为csdn:
    [root@localhost ~]# curl --referer https://blog.csdn.net https://www.baidu.com
    
    • 用户代理设置
      用户代理常被用于兼容ie,有时,您会看到获取带有curl的页面不会返回与使用浏览器获取页面时看到的页面相同的页面,这时候可以设置用户代理:
    curl www.baidu.com --user-agent "Mozilla/5.0"
    curl www.baidu.com -A "Mozilla/5.0"
    

    5.5 curl文件操作

    • 保存文件
      语法:curl -o filename uri
    [root@localhost ~]# curl -o baidu.html www.baidu.com
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  2381  100  2381    0     0  22761      0 --:--:-- --:--:-- --:--:-- 22894
    
    

    在这里插入图片描述

    • 文件下载
      语法:curl uri filename --silent|progress
      • –silent:不显示进度条
      • –progress:显示进度条
    [root@localhost ~]# curl https://avatar.csdnimg.cn/3/5/E/1_meituantech_1564971608.jpg -omeituan.jpg --progress
    ######################################################################## 100.0%
    
    

    在这里插入图片描述

    • 上传文件
      语法:$ curl --form upload=@localfilename --form press=OK [URL]
    [root@localhost ~]# curl --form upload=@baidu.html --form press=OK url
    
    

    5.6 设置cookie

    设置cookie,可以用命令--cookie

    -c cookie-file可以保存服务器返回的cookie到文件,-b cookie-file可以使用这个文件作为cookie信息,进行后续的请求。

    $ curl -c cookies http://example.com
    $ curl -b cookies http://example.com
    
    [root@localhost ~]# curl -c "name=cookiename" www.baidu.com
    
    

    在这里插入图片描述

    也可以用–cookie-jar指定cookie文件

    [root@localhost ~]# curl www.baidu.com --cookie-jar cookie_file
    
    

    在这里插入图片描述
    指定可下载的最大文件大小,可以用命令–limit-rate

    [root@localhost ~]# curl www.baidu.com --limit-rate 50k
    
    

    5.7 RESTFul API

    ps:-H指定请求header,-d指定参数

    • CURL POST:
    [root@localhost ~]# curl -H "Content-Type:application/json" -X POST localhost:9200/company/employees/1 -d '{"id" :1,"name":"admin","password":"123"}'
    
    
    • CURL GET:
    [root@localhost ~]# curl -X GET localhost:9200/company/employees/1?pretty=true
    
    • CURL DELETE:
    [root@localhost ~]# curl -X DELETE localhost:9200/company/employees/1
    
    • CURL PUT:
    curl -H "Content-Type:application/json" -X PUT localhost:9200/company/employees/1 -d '{"id" :1,"name":"admin","password":"111"}'
    

    curl默认是GET方式请求url的,要调POST等接口,必须加上-X参数指定

    比较详细的可以参考:

    四、系统管理

    1、查看内核版本

    uname命令用于查看内核版本
    在这里插入图片描述

    2、查看linux系统ip

    查看linux的ip地址:可以用命令

     ip addr
    

    3、uptime命令使用

    uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

    用help参数参数

    [shared@localhost~]$ uptime --help
    
    Usage:
     uptime [options]
    
    Options:
     -p, --pretty   show uptime in pretty format 
     -h, --help     display this help and exit 
     -s, --since    system up since 
     -V, --version  output version information and exit
    
    For more details see uptime(1).
    [shared@localhost~]$ uptime -V
    uptime from procps-ng 3.3.10
    
    

    Options:

    • -p, --pretty show uptime in pretty format //比较美观的打印
    • -h, --help display this help and exit // 查看参数帮助
    • -s, --since system up since // 查看系统当前时间
    • -V, --version output version information and exit // 查看版本

    在这里插入图片描述

    4、telnet命令使用

    不管在window还是linux系统要校验某台服务器是否可以ping通,都可以使用命令,如果要加上断口的,linux可以使用telnet命令
    语法:telnet ip port

    telnet 127.0.0.1 8080
    

    附录:

    微信打赏
    在这里插入图片描述
    技术博客公众号
    在这里插入图片描述
    QQ群:1129337987

    展开全文
  • 很多运维人对未来充满忧虑,不知道该怎么办。但我到是对运维行业充满信心的,因为我坚信:运维其实是架构师的前身。你别说我吹牛,我们看看运维的发展:最开始的运维算是“工业”时代。丰富的开源社区...


    很多运维人对未来充满忧虑,不知道该怎么办。但我到是对运维行业充满信心的,因为我坚信:运维其实是架构师的前身你别说我吹牛,我们看看运维的发展:

    最开始的运维算是“工业”时代。丰富的开源社区,使得开源软件在企业的应用逐步增加。这就需要大量的手工运维人员,导致运维成为低门槛的岗位。

    互联网的普及让运维迎来了“蒸汽机”时代。大数据、AI 成为业务的核心,要求运维工程师具备更高效和成熟的自动化实现能力。就像汽车淘汰马车一样,大量的运维人在这个阶段被淘汰。

    到了互联网的下半场,运维也进入了“航天”时代。降低成本、提高效率、精耕细作是企业对运维的基本要求,也涌现出了 Docker、Kubernetes、SDN 这些成熟的技术。所以运维人除了掌握运维流程,还需要对开发方面有一些自己的思考。作为工程师除了把太空船发射出去,还要考虑如何实现载人、实现回收、甚至太空站对接的事项。

    所以你可以看到,运维的发展是在不断走向架构师这个方向的,这也是我对运维行业充满信心的原因。但最大的问题在于,你能不能跟得上行业的发展,也就是你能否成为运维行业的高手,这至关重要。 

    我认识一位具有 10 多年经验的运维老兵,叫牧客曾经是阿里巴巴的运维专家,靠着自己对行业和运维的理解,一路从人肉运维、到运维专家,现在成为了一名架构师。他不仅在阿里巴巴这样的巨头担任核心的运维岗位,还在一家大型互联网公司担任过架构师,从零搭建团队和运维架构,对于如何成为运维高手这件事,他有着自己独特的观点。

    ∆ 扫码即可免费试读 / 订阅

    正好他在拉勾网的专栏「运维高手的 36 项修炼」在拉勾网上架了。他发给我看了看内容,觉得让我眼前一亮,非常想推荐给你。

    这个课程会模拟一个运维工程师的全部核心工作,也就是部署、服务运维、割接、故障排除、监控、安全防护、方案设计 这7个模块。

    从较为基础的底层能力讲起,通过 36 讲带你掌握运维高手的运维技巧。最宝贵的是,全部的内容都来源于他这十余年的运维经验和工作技巧。这个专栏,是你修炼成为运维高手的绝佳秘籍。

    牧客是谁?

    牧客,运维领域深耕 10 余年,曾就职于大型互联网公司阿里巴巴、大型国企中体彩等,先后担任运维专家、SRE 负责人、架构师等核心岗位。曾经主导开源国内第一个基于 Ansible2.4 实现的完整运维自动化项目;曾带领 SRE、运维开发、DBA 三个团队出色重构近千级别主机的运维架构。

    ∆ 扫码即可免费试读 / 订阅

    课程目录

    根据运维的核心工作,专栏分成运维、部署、割接、监控、安全、方案、趋势 7 个模块,通过理论结合实战,保证:

    • 知识点全面:7个模块涵盖运维各项知识类型;

    • 学会就能用:36项修炼,也是36个面试和工作常见问题;

    • 实战化思考:10余年运维老兵从人肉运维到架构师的独家实战经验;

    • 进阶式学习:从基础开始,搭建一套运维高手的学习路径;

    所以不论你是想系统化提升运维技能,还是想转型成为运维开发。总之,如果你想成为运维领域的高手,欢迎来和牧客一起修炼成为运维高手。 

    限时优惠①

    原价¥98

    上新限时优惠 ¥68

    (新用户首次订阅立减 ¥20)

    限时优惠②

    点击 阅读原文,加入「运维高手交流群」

    ∆ 扫码即可免费试读 / 订阅

    点击阅读原文,加入「运维高手交流群」。

    展开全文
  • 运维那些事

    2017-01-23 15:35:16
    除了找运维上线,基本运维和我没搭边。当然心中有信念,如果线上出了问题就求助运维。久而久之,感觉运维有点像7*24小时的客服,因为混迹在各个公司技术群里,所以经常听到各种事故在联系运维。 比如: XXX页面不...
  • 因为本人喜欢研究一些哲学东西,在做运维工作中,我就想把运维工作进行一些归纳和演绎,抽象出运维行业的一些通用理念,寻找运维的未来方向,所以今天给大家分享我的一些探索。分享的内容目录如下:作为哲学历史爱好...
  • 运维基本概述

    2018-11-26 15:11:56
     下面将IT运维管理基础知识必须要学习或能让你运维任务加分的技艺稍做简介。最先我们假定你是一个公司的IT运维经理。须要完成五十台以上的服务器和若干杂七杂八的配备,哪些运维人员应该必备的技术? IT运维管理...
  • 在软件开发领域当中,前端、后端开发我们一般比较熟,但运维工程师是做什么的,很多人都不太了解。真的是只是维护工作吗?今天我们就介绍一下 运维工程师 到底是做什么呢 随时解决报警故障、业务程序更新 编写一些...
  • 运维是干什么的?

    2018-11-27 17:54:14
    什么是运维? 按照字面意思就是运行维护。 在软件产品的整个生命周期中运维工程师都需要适时地参与并发挥不同的作用,因此运维工程师的工作内容和方向非常多。 产品发布前:负责参与并审核架构设计的合理性和可运维...
  • 我认识的运维工作

    2020-06-28 14:38:49
    运维这个工作对于非运维岗位的人来讲,一直都是神秘的,大家对于运维的工作内容其实并不了解,或者了解的比较片面。其实算是一种工作类别了,除去互联网软件行业的运维人员不说,一般的机关事业单位也有相应的岗位...
  • 系统自动化运维

    2014-10-28 09:55:05
    站在“巨人”的肩膀上运维 现实问题 之前在论坛看到一个运维工程师的帖子,内容如下: “现在的一个IT工作者最头疼的就是加班,秃顶的是IT工作者最多、单身的是IT工作者最多、没有约会,没有休闲,没有...
  • windows运维实战视频从零基础讲起,做到全方位技术提高,内容包括Windows Server 2012 R2概述、安装与基本环境设置,本地用户与组账户的管理,建立Active Directory域,NTFS磁盘的安全性与管理,访问网络文件,...
  • Linux运维之道

    2018-09-03 20:28:33
    Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐) 丁明一 编&nbsp;&nbsp; ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1、《Linux运维之道》从运维工作的...
  • 不懂编程的运维人员到底还能走多远? 首先,可以肯定的说,未来的IT岗位需要的是综合能力强的人员,运维、开发、数据库、网络,技术岗位对上述知识体系都要会一些,才能很好的胜任对应岗位工作。 下面已经不是...
  • 资源名称:运维前线 一线运维专家的运维方法、技巧与实践内容简介:当前IT领域的概念层出不穷,云计算、物联网、移动互联网、大数据、人工智能、VR,所有的这一切都基于IT系统,IT系统正在向规模更大、更复杂、更...
  • IT运维服务分类目录 企业运维,至少包括如下几个大方面: 1,桌面运维(以windows为主,工资偏低,桌面运维经理可以达到8K到10K,很多人在公司里干的就是安装windows系统,windows里的QQ坏了重装下,砸个...
  • 本书作为运维前线系列的第一本书,覆盖了运维自动化、系统运维、云及虚拟化、Web运维、游戏运维、DBA运维等6个方面14个知识点; 本书都是各位作者总结自己多年实践经验的干货,每一篇文章都很精彩,都值得读者仔细...
  • Linux运维提升之路

    2018-11-12 17:26:31
    运维的职业现状 运维的工作 运维的晋升空间 运维要掌握的必备技能 初级: 中级: 高级: 资深: 运维的时间管理 首先,在进做IT运维行业前,你一定要做好心理准备,这并不是一个轻松的工作,工作中的事情...
1 2 3 4 5 ... 20
收藏数 327,096
精华内容 130,838
关键字:

运维