从零起步到Linux运维经理,你必须掌握的4个细节!

不想成为将军的士兵,不是好士兵-拿破仑

如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题。

如何成为运维经理。一般来说,运维经理大概有两种出身,一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作也比较重视,逐步走向Manager的岗位。第二种是业务管理出身或者有IT技术背景,具备了一定经验直接进入IT管理层的人员。无论如何,你都需要完全熟悉Linux!

那么从初学者向Linux运维经理进阶,你需要哪些技能武器、具备什么样的能力?

如果,你想尝试除了 Mac 和 Windows 以外的桌面系统, Linux 无疑应该成为你的首选。它不仅是免费的,而且是可定制的。类似于智能手机的 Android 系统,你也可以在 Linux 上定制你想要的东西。

一、首先,你得了解什么是 Linux?

当有人问这个问题的时候,他所问及的 Linux 通常与另外一个名词附带在一起,比如 Fedora Linux,Ubuntu Linux,Android 的 Linux 技术支持等等,这样的例子不胜枚举。那么,什么是 Linux 呢?“Linux”指的是 Linux 内核,是应用软件和计算机硬件之间的接口程序。前面说到的各种关于 Linux 的名词都有一个共同点,它们使用相同的内核作为硬件和软件之间的接口。因此,在计算机中“运行 Linux”的意思就是以 Linux 作为内核运行操作系统。

二、运维技能武器库

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&sysbench

三、Linux运维常见问题及解决办法

如果你是新Linux用户大军的一员,那恭喜你作出了明智的抉择!现在你将终生免于进入高花费、被厂商锁住、遭受频繁流氓软件攻击,以及其他很多与Windows 和 Mac OS X相关联的不利条件当中。

但作为一个linux运维,在从零起步向Linux运维经理进阶的过程中,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯。

每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着的继续努力,从中也积累了更多的经验,这就是实践给予我们的丰厚回报。

早一点的先知先觉能帮助防范这些不必要的沮丧。不麻烦了,在此给出6个Linux运维的常见问题及解决办法。

第一、常见问题解决集锦

1. shell脚本不执行

(1) 问题:

某天研发某同事找我说帮他看看他写的shell脚本,死活不执行,报错。我看了下,脚本很简单,也没有常规性的错误,报“:badinterpreter:Nosuchfileordirectory”错。

看这错,我就问他是不是在windows下编写的脚本,然后在上传到linux服务器的……果然。

(2) 原因:

在DOS/windows里,文本文件的换行符为rn,而在nix系统里则为n,所以DOS/Windows里编辑过的文本文件到了nix里,每一行都多了个^M。

(3) 解决:

重新在linux下编写脚本;

vi:%s/r//g:%s/^M//g(^M输入用Ctrl+v,Ctrl+m)

附:sh-x脚本文件名,可以单步执行并回显结果,有助于排查复杂脚本问题。

2. crontab输出结果控制

(1) 问题:

/var/spool/clientmqueue目录占用空间超过100G

(2) 原因:

cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了/var/spool/clientmqueue目录下的那些文件,日积月累可能撑破磁盘。

(3) 解决:

直接手动删除:ls|xargsrm-f;

彻底解决:在cron的自动执行语句后加上>/dev/2>&1

3. Read-onlyfilesystem

(1) 问题:

同事在mysql里建表建不成功,提示如下:

mysql>createtablewosontest(colddname1char(1));

ERROR1005(HY000):Can’t create table‘wosontest’(errno:30)

经检查mysql用户权限以及相关目录权限没问题;用perror30提示信息为:OSerrorcode30:Read-onlyfilesystem

(2) 可能原因:

文件系统损坏;

磁盘又坏道;

fstab文件配置错误,如分区格式错误错误(将ntfs写成了fat)、配置指令拼写错误等。

(3) 解决:

由于是测试机,重启机器后恢复;

网上说用mount可解决。

4. find文件提升性能

(1) 问题:

在tmp目录下有大量包含picture_*的临时文件,每天晚上2:30对一天前的文件进行清理。之前在crontab下跑如下脚本,但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务。

#!/bin/sh

find/tmp-name“picture_*”-mtime+1-execrm-f{};

(2) 原因:

目录下有大量文件,用find很耗资源。

(3) 解决:

#!/bin/sh

cd/tmp

time=`date-d“2dayago”“+%b%d”`

ls-l|grep“picture”|grep“$time”|awk‘{print$NF}’|xa

5. 获取不了网关mac地址

(1) 问题:

从2.14到3.65(映射地址2.141)网络不通,但是从3端的其他机器到3.65网络OK。

(2) 原因:

#arp

AddressHWtypeHWaddressFlagsMaskIface

192.168.3.254etherincompletCMbond0

表面现象是机器自动获取不了网关MAC地址,网络工程师说是网络设备的问题,具体不清。

(3) 解决:

arp绑定,arp-ibond0-s192.168.3.25400:00:5e:00:01:64

6. http服务无法启动一例

(1) 问题:

某天研发某同事说网站前端环境http无法启动,我上去看了下。报如下错:

/etc/init.d/httpdstart

Startinghttpd:[SatJan2917:49:002011][warn]moduleantibot_moduleisalreadyloaded,skipping

Useproxyforwardasremoteip:true.

Antibotexcludepattern:.*.[(js|css|jpg|gif|png)]

Antibotseedcheckpattern:login

(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress[::]:7080

(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress0.0.0.0:7080

nolisteningsocketsavailable,shuttingdown

Unabletoopenlog[FAILED]

(2) 原因:

端口被占用:表面看是7080端口被占用,于是netstat-npl|grep7080看了下发现7080没有占用;

在配置文件中重复写了端口,如果在以下两个文件同时写了Listen7080/etc/httpd/conf/http.conf

/etc/httpd/conf.d/t.10086.cn.conf

(3) 解决:

注释掉/etc/httpd/conf.d/t.10086.cn.conf的Listen7080,重启,OK。

故障排查汇总表

四、总结:

作为一名合格的 Linux 运维工程师,一定要有一套清晰、明确的解决故障思路,当问题出现时,才能迅速定位、解决问题,这里给出一个处理问题的一般思路:

重视报错提示信息:每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。分析、定位问题:这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其它相关情况,最终找到引起问题的原因。

4、解决问题:找到了问题出现的原因,解决问题就是很简单的事情了。

从这个流程可以看出,解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。

下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
在这里插入图片描述在这里插入图片描述
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你

关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦

猜你喜欢

转载自blog.csdn.net/m0_53918927/article/details/113061494
今日推荐