51

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

 5 years ago
source link: http://blog.sina.com.cn/s/blog_679bde160102xrt8.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

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

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

zANvMnF.jpg!web

一、首先,你得了解什么是 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。

  1. 故障排查汇总表
mY3e2eV.png!web
uYveYza.png!web
eyQva2i.png!web
RrmMN3J.png!web

四、总结:

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK