“不想成为将军的士兵,不是好士兵”-拿破仑前端
如何成为运维经理?mysql
通常来讲,运维经理大概有两种出身:一种是从底层最基础的维护作起,经过出色的维护工做,让公司领导对这我的很是承认,同时对Linux运维工做也比较重视,逐步走向Manager的岗位;第二种是业务管理出身或者有IT技术背景,具有了必定经验直接进入IT管理层的人员。ios
那么作为一个Linux运维经理,你须要哪些技能武器、管理哪些细节,具有什么样的能力?nginx
运维技能武器库git
Bootstrapping: Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、Openstack、 Cloudstack、Opennebula、Eucalyplus、RHEV
配置类工具: Capistrano、Chef、puppet、func、salstack、Ansible、rundeck
监控类工具: Cacti、Nagios(Icinga)、Zabbix、基于时间监控前端Grafana、Mtop、MRTG(网络流量监控图形工具)、Monit
性能监控工具: dstat(多类型资源统计)、atop(htop/top)、nmon(类Unix系统性能监控)、slabtop(内核slab缓存信息)、sar(性能监控和瓶颈检查)、sysdig(系统进程高级视图)、tcpdump(网络抓包)、iftop(相似top的网络链接工具)、iperf(网络性能工具)、smem)(高级内存报表工具)、collectl(性能监控工具)
免费APM工具: mmtrix(见过的最全面的分析工具)、alibench
进程监控: mmonit、Supervisor
日志系统: Logstash、Scribe
绘图工具: RRDtool、Gnuplot
流控系统: Panabit、在线数据包分析工具Pcap Analyzer
安全检查: chrootkit、rkhunter
PaaS: Cloudify、Cloudfoundry、Openshift、Deis (Docker、CoreOS、Atomic、ubuntu core/Snappy)
Troubleshooting:Sysdig 、Systemtap、Perf
持续集成: Go、Jenkins、Gitlab
磁盘压测: fio、iozone、IOMeter(win)
Memcache Mcrouter(scaling memcached)
Redis Dynomite、Twemproxy、codis/SSDB/Aerospike
MySQL 监控: mytop、orzdba、Percona-toolkit、Maatkit、innotop、myawr、SQL级监控mysqlpcap、拓扑可视化工具
MySQL基准测试: mysqlsla、sql-bench、Super Smack、Percona's TPCC-MYSQL Tool、sysbench
MySQL Proxy: SOHU-DBProxy、Altas、cobar、58同城Oceanus
MySQL逻辑备份工具: mysqldump、mysqlhotcopy、mydumper、MySQLDumper 、mk-parallel-dump/mk-parallel-restore
MySQL物理备份工具: Xtrabackup、LVM Snapshot
MongoDB压测:iibench&sysbenchsql
运维管理工做全貌docker
一、域名数据库
从买域名开始,要买多个域名,50个甚至100个。分为主域名和推广域名(给推广连接用的)。要从godaddy上买域名,由于这里的域名稳定,不会出现被攻击等事情。同时还要买域名保护,这样互联网用户ping这个域名就解析不到真实的服务器地址。
同时域名解析的操做不要在godaddy上进行,要把解析的操做放在cloudflare上或者dnspod上进行操做,也能够放到zndns上(这个dns能够作到一个域名解析多个IP地址,根据就近原则,把最快的IP地址解析给用户。)也能够本身搭建dns服务器,在godaddy上只想到本身搭建的dns服务器就能够了。这样,修改dns指向的时候会更快。ubuntu
二、 CDNapi
必定要买cdn服务。若是出现部分用户访问不了就使用cdn服务。能够从cloudflare上购买cdn服务,这样域名解析到cdn上,而后cdn解析到肉盾击仍是那个,而后肉盾击指向核心服务器上。Cdn充当一个缓存和转发的做用,大流量攻击的时候他能够防护至少200G的攻击。Cdn是全球缓存的。
三、 图片服务器
在国内租用几台服务器作图片缓存服务器便可,这样提升访问速度。其实nginx自己就是一个图片缓存服务器。
图片服务器和其余服务器要分开,肉盾击可作图片缓存。
四、服务器机房
选择机房过重要了,要服务质量好的,还要高防好的,还要可靠性高的,还要相应及时的,还要能随时能够查看服务器状态的,最重要还要服务态度好了。
机房要买香港九河(用户核心服务器),美国圣安娜机房(用于肉盾击)(虽然慢,可是安全高防作的真好,大流量攻击的时候,这里的机房仍是能够访问,因此,鸡蛋不要放在一个篮子里头,要各个等级都有才叫好的,国内机房快,可是高防效果差,美国机房慢可是高防效果好)
五、主页
一个主页,就是招商或成为打广告的网站,能够租用云主机,这样被打死就被打死吧。里面能够有一个连接,指向游戏首页,这个连接能够是带端口号的,那就简单了。
也能够是不带端口号的,这时候就必定要用cdn服务器,或者使用免备案机房,把肉盾击放在免备案机房,由于国内搭建网站都是要备案的,博彩这个行业是被禁止的,为了不域名或者IP地址被和谐了(gwf)因此要用免备案机房。
或者就把肉盾击也放到香港或者台湾或者韩国等等机房。这样用户能够不使用端口号,直接用域名就能够访问我们的网站。
六、监控系统
要个网站要有监控系统,实时监控服务器是否有攻击,功过查看日志是否激增,还要把日志放到日志服务器上(syslog服务),使用cacti服务能够把日志放到cacti上。网速是必定要查看的,网速激增则证实必定是有攻击。
天天要看日志,要用日志分析软件,看看访问源是单一访问源仍是多个不一样的访问源.监控服务器要有报警功能,一旦状况异常就要马上报警,而后起床处理攻击。
七、 防攻击
攻击通常看状况而定,通常的攻击都是直接攻击域名。小量的攻击能够经过nginx和iptables自己的防护功能就防掉。大量的攻击因为直接把网络带宽占用满了,服务器没法正常相应,只能依靠机房的高防了。
因此要买大量的高防,建议至少200G。若是攻击源是单一IP或者几个IP,那么就让机房把这几个IP给屏蔽就能够了。遇到cc或者ddos攻击,只能靠机房解决。一台服务器被打死后,须要马上把域名指向另外一台服务器,(或者直接把域名指向百度)。
大量的攻击还要使用cdn,让cdn直接指向核心服务器就能够了,这样能快一点,让用户还能够玩。总之大流量攻击是不能彻底防止的。
八、冗余
一个网站必定要有冗余,好比如今是1000人同时访问的并发量,必定要让网站的负载达到2000人的并发量,要否则一搞活动,网站负载不了那么多人就完了。
九、服务器
服务器的配置,要用三网卡,一个用于用户链接,对外的访问(要好的网卡)。一个用于内网服务器之间的访问使用。一个用于ssh管理,这样大量攻击的时候我们还能够操做服务器。
每一个网卡还要多个IP地址,这样防止某个IP被屏蔽了。国内网络和国外网络常常会有IP很差用的状况。硬盘至少要镜像(raid 1),cpu要两路的,双电源,总之不要有单点故障。至于肉盾击的配置能够低一些,甚至台式机的配置均可以,可是网络必定要好,尤为是和核心服务器之间的网络必定要好。
十、数据库
数据库要作主从复制,要有异地备份,nginx服务器要作集群,就是upstream。前台(提供用户访问页面)和后台(员工管理界面)要用两台不一样的机器,不要互相影响。其他的服务可使用一台虚拟机完成。
这样能够省钱,邮箱直接买google的gmail企业邮箱就行了,很是好用,最好没人一个。或者公司内部搭建本身的聊天软件(最好还钱买聊天软件)。
十一、测试环境
测试环境要三套,开发人员电脑上本身的环境,要局域网一套测试环境,互联网一套测试环境,生产环境。局域网的测试环境必定要稳定,能够买一个机柜等等的网络设备放在一块儿,不要用普通电脑。局域网要有svn或git的代码管理工具。充分测试后在上传到生产环境。
十二、肉盾击和核心服务器
肉盾击和核心服务器之间必定要可使用ping命令,这样能够看看那个IP地址不能使用了,网络连通性均可以看出来。
1三、运维人员
至少两个,若是有运维经理一个运维人员就够了。这样全部运维工做必须有操做文档,两我的互相协调工做,不须要倒班,可是24小时待命。网管一个就够了。
普通的运维部门大概就这样,若是是大的网络架构,会有本身的数据中心机房到时候在安排人手。
1四、 Linux系统优化和安全
要有优化和安全配置,好比说nginx基于cpu的优化,每一个程序基于cpu和内存的限制。
全部密码要有3个月就修改一次,尤为是域名的帐号和邮箱密码,域名是最重要也是最脆弱的环节。
1五、局域网
局域网必定要稳定,能够买两条网线,至少10M带宽,还要买一个移动wifi,给员工手机上网。
1六、机房
若是是大型网络架构,那得有本身的核心机房,就不是租用机房了,每一个岗位都是若干人组成的,包括运维工程师,数据库管理工程师,网络工程师,安全工程师,存储备份系统工程师,运维经历负责协调各个部门间的工做。目前就是一个运维就能完成全部的工做。
1七、运维工具
运维的工具要统一,好比链接数据库使用sqlyog工具,链接服务器使用crt工具,密码管理用keepass,上传服务器代码使用winscp工具,等等。这样运维人员之间工做比较好协调。
另外运维必定要有大量时间学习,天天都要上网找新技术,好的资料,最好要懂英文,由于好的技术文档都是英文写的。这样对运维工做颇有帮助,并且运维技术实力会有很大的进步的,为迎接更大的需求作准备。
1八、灾备预案
最后必定要有预案,就是服务器一旦出现重大问题,就是解决不了了,这个时候就不要去解决这台服务器,使用预案,把启用备用方案,尽快让网站可用。
平时多作预案演习,还要多作备份的还原操做,由于有的备份不可用,这是常见现象。别到关键时刻备份不能用,整个网站就完了。
1九、服务器安全
要有一整套的安全配置,包括用户安全,应用安全,系统安全,文件安全等。这样防止服务器被黑客侵入。
20、高并发测试
必定要作高并发测试,模拟同时在线用户2000人,看服务器的负载状况,要有服务器高并发配置,网络方面是机房的事情,可是得选择最合适的IP地址,最适合的机房,及出口带宽。
高并发是服务器架构的事情,不是单单一台服务器的事情。该花钱的地方必定要花,能够省钱的地方要知道怎么省钱。
2一、 运维信息
运维全部信息两我的共享,包括密码和服务器配置步骤,由运维经理带领团队,打形成一个互相学习,技术实力雄厚,目标一致的和谐团队。让每一个人在团队中都获得本身想要的。
运维经理的为人就很重要,要否则留不住人,你们心不往一块儿使劲。运维工做技术不是最重要的,由于这个职位现学现用也来得及,因此工做态度/为人和经验是最重要的。
2二、服务器日志
对服务器创建日志,全部服务器的全部操做都要有记录,而且写清时间操做内容。对生产服务器操做以前必定要作风险评估及解决方案。
2三、运维工做
应用上线后,运维工做才刚开始,具体工做可能包括:升级版本上线工做、服务监控、应用状态统计、平常服务状态巡检、突发故障处理、服务平常变动调整、集群管理、服务性能评估优化、数据库管理优化、随着应用PV增减进行应用架构的伸缩、安全、运维开发工做。
核心运维管理工具箱
重点介绍运维流程管理、运维发布变动、运维监控告警三个方面的具体工具,可做为工做日记使用。
第一类:运维流程管理工具
1.发布变动流程管理工具
作为系统接口与其余角色的工做衔接。并提供审批环节控制发布变动的风险。流程管理工具并不负责具体的业务操做的执行,只是做为单据系统跟踪流程和确保闭环。
2.告警和突发管理工具
体现业务受损的告警自动建单管理。人工确认以后升级为突发单。经过建单管理告警和突发确保流程的闭环,以及每次故障都可以总结出经验,并未度量业务的可用性提供KPI。
第二类:运维发布变动工具
1.版本管理工具(数据库)
全部的发布应该以版本管理为起点。研发给的版本包先入版本管理工具,再从版本管理工具分发到现网发布。杜绝 rsync 一台服务器发布另一台的作法。
2.配置管理工具(数据库)
版本加配置等于现网每台机器的状态。最粗粒度的配置管理是到 IP 级别,至关于对机器作资产管理,分组到不一样的业务,模块和大区等业务概念上。细粒度一点会管理到进程以及进程的相关配置。
3.配置和版本下发工具
把指定的版本,结合配置好的配置下发到现网的机器上。不一样的版本和配置方式须要彻底不一样的下发方式。以 ssh/fabric 为表明的下发方式是以脚本为中心的。以 puppet/chef 为表明的下发方式是以配置为中心的。
4.现网状态同步工具
为了规避现网状态漂移,与管理工具内的记录不一致。须要有一个工具定时上报现网的实际情况。
5.服务调度工具
发布变动常常须要一个串行的流程,先作A模块,再作B模块。不少机器的时候,须要把能并发的操做并发执行,不能并发的操做确保串行执行。同时不少发布变动流程须要操做管理范围外的服务,好比云端的DNS服务器记录等。这就须要有一个服务调度工具统一调度配置和版本下发工具,流程单据工具,以及其余系统的API接口共同组装成一个流程。
6.资源管理和隔离工具
以xen/kvm为表明的工具让运维能够更灵活的切割资源。好比虚拟机的快速起停,ip在idc内的漂移等。以 lxc/docker 为表明的工具让运维能够进一步的切割资源到进程级别。资源隔离代理的细粒度的资源控制能够得到更好的资源利用率,以及更容易进行可伸缩的资源配置。
7.发布变动统一界面
包装全部的下层工具,提供简单的界面完成标准化的发布变动操做。
第三类:运维监控告警工具
1.采集工具
通常是采集日志文件,也能够是定时轮询 DB 或者其余系统的接口。流行的开源方案是 logstash。
2.收集工具
采集工具上报给收集工具。或者由开发直接修改代码上报指标给收集工具。流程的开源方案仍是 logstash。
3.统计入库工具
上报多是每次调用就上报一次,统计工具负责统计出一分钟内的次数。上报也多是每5秒上报一次数值,统计工具负责统计出一分钟内的最大值。统计工具的存在是为了上报的方便。流行的开源方案是 statsd,也有大公司基于 storm 来作二次开发的。
4.时间序列数据库
全部定时指标会落地到数据库里。监控告警所须要的数据库须要可以支撑很是大的数据量,可是并无很严格的 ACID 要求。
5.运维事件数据库
记录全部的告警。包括从其余系统得到告警,以及对现网的全部变动操做记录。这些数据用于支撑告警的缘由定位。
6.指标异常检测工具
基于数学模型发现指标是否与过去的稳定模式背离,而推测出现网状态的变化。
7.拨测工具
定时 PING 或者 HTTP GET,模拟实际用户发现服务是否中断,产生告警。同时也产生指标上报给收集系统。拨测又分为本地拨测,和远程拨测。本地拨测能够用于发现磁盘只读等本机告警。远程拨测能够模拟用户的地理分布,把网络的链路情况也包含在拨测覆盖的范围内。
8.告警收敛工具
综合全部来源的告警,进行频率收敛,根源分析。统一汇总成报告催促人工修复。
9.告警自动修复工具
接受告警进行自动化的处理。帮运维完成固定的故障机下架退库等操做。或者在业务自己没有作高可用的状况下,作故障机替换,ip漂移等现网修复操做,必定程度地提升业务可用性。
10.告警通知工具
重要的告警须要升级为电话。须要有高可用的电话,短信,微信等通知接口。
11.监控告警统一界面
屏蔽下层各类工具,提供统一的agent安装,指标采集设置,指标曲线展现,告警查询的界面。一个地方知道现网的全部的问题。
优秀运维经理的能力
一、系统架构的设计和规划能力。
做为一个技术工程师,你关注更多的是具体的技术和问题分析、故障处理等细节,而作为一名运维经理,则须要你站在全局的高度,把控各环节的应用来规划和设计系统架构,以实现高效稳定的IT系统。
二、量化和问题管理的能力。
熟悉ITIL以及相关运维工具,经过运维管理工具,跟踪事件的流程,实现整个IT系统的统一与协调;经过运维管理工具,帮助运维人员监控和定位问题根源;经过知识库的积累能够有效解决人员变动后的管理问题。
能够说,IT系统不只仅须要人的运维,为了发挥IT系统的最大做用,利用工具来量化、标准化管理更是有必要的。咱们能够运用自动化的一些工具来采集输出更为全面的监控预警信息,化被动运维为主动运维;经过自动化的运维工具把多点的管理集中减小到一点都能更好的简化运维工做量和提升运维的效率。
标准的流程清晰明确了,这样当问题出现时,就不会出现A部门找B部门反馈,B部门又找C部门处理,C可能说是D部门的问题,这样致使很简单的问题没法获得及时有效的处理,影响的不只仅是业务自己,部门之间也会怨声载道。
三、管理团队和协调能力。
大多数时候,运维人员都在进行着简单重复的工做,且很可贵到最终用户的确定。曾有一个词“穷忙族”形容运维工程师,工位上不见人影,一坐下电话不断,是否是你该解决的问题都有人来找你。这样的场景,你们应该都有体会。
标准化流程的制定很是重要,不只方便问题的梳理并且能让对应的问题找到对应的人,这对运维是很重要的,同时有利于团队的协做。做为运维经理还要关心团队中的每个成员,协调每名工程师的工做时间和CASE,合理安排工做任务。另外确定每一个工程师的付出,对他们优秀完成的工做给予积极确定和表扬,这些都有助于凝聚人心和培养团队的荣誉感。
四、资产管理与审计能力。
准确了解公司现有的IT资产和设备,对设备进行清查,明确每个设备的损耗和维保信息。当公司须要购置新机时,都会有明确的数据来支撑你的采购申请。当设备出故障或发生变动时,经过前期的数据均可以作到实时掌握第一手准确数据。并且随着公司的业务发展,分支机构和员工的增多,资产管理与审计都会变得更重要,对IT运维支持的意义就更大了。
五、组建运维梯队,合理搭配运维资源的能力。
人员管理问题,在运维当中是比较重要的。不少时候因为运维工做分配不合理,业绩没法准确考核。若将运维人员分红1、2、三线支持,不一样运维人员各司其职,就能使有限的运维力量获得合理利用,总体工做效率将明显提高;同时也方便对各自的工做业绩进行评估。再据此制定相应奖惩措施,或针对不一样岗位提供不一样服务技能培训,亦能提升员工工做积极性。
好比:将全部IT问题统一汇总到技术服务台,对于绝大多数(80%以上)问题,服务台可直接解决;服务台解决不了的,再按照问题处理优先级,统一分配不一样级的运维力量,来确保不一样问题的处理,同时运维人员也不会错过须要及时处理的重大问题。
六、技术创新与积累能力。
运维经理自己须要有过硬的技术能力,须要熟悉各类设备、不一样的操做系统、各环节应用、数据库、存储、备份与灾难恢复、调优、安全等。
可是在具体的问题和重大的问题处理上,须要听取团队的意见,这样方案会因你们的补充和建议更加完善。多数时候在具体的细节处理上还会有技术创新,同时对你们都是一个学习和积累。对每一个处理过的重大问题和典型问题编写技术文档,日积月累造成知识库,不只方便本身总结学习也方便技术的传承和积累。
七、开会与分享能力。
开会有时是个很好的沟通方式,也许不少时候你可能比较反感开会。那多是由于它的 形式化、一言堂或跑题、不能解决实际问题。其实开会的做用在于:
归一化:让你们在项目、任务、工做的理解、反馈、描述、执行等层面达到一致性。减小内部沟通成本,提升团队效率。
可视化:追求项目的可视化是项目管理的最高境界。逐层分解下来,就要求各级管理者对项目、任务的进度、风险、问题作到一目了然的管理。
项目管理:经过对团队各维度进行管理、项目管控,人员工做安排,团队学习提高,工做方向调整等等。
理念贯彻和方向:贯彻公司文化和团队文化,统一你们的思路和模式。传达上面领导的指示和部署,同时明确下一步工做重点和方向。
具体问题解决:针对疑难点,进行指导或头脑风暴,集思广益群策群力。
最后,说一点如何成为优秀的运维经理。什么是优秀的运维经理,是否是具有了以上七大能力就是优秀呢,不少人心中或许有不一样的定义,我认为优秀的管理者所须要具有的一大品质,就是带领本身的团队不断进取和拥有永不止步的精神。
看一看,这么多能力你还差什么?
参考文章: https://blog.csdn.net/servicehot/article/details/78083625?locationNum=7&fps=1