2018-09-13随笔

运维工程师的工作内容:
1.怎么知道你的业务出来问题啊?
这就需要监控软件来邮件或短信来通知你,常用的有zabbix,nagios等。报警发邮件,也得一个邮件程序呀,sendmail或postfix。

2.在家里收到报警,但服务器是内网IP,怎么也得解决问题吧?

在公司搭建openvpn或pptp或openswan,在家里通过VPN拨入内网,24小时解决问题…唉,半夜爬起来解决问题也没工资

3.你是如何防止黑客的
ssh轻易不能让外人访问,那么就设置只允许公司的IP或跳板机IP访问,这些都通过iptables来控制。

4.为了防止你的客户上传图片坏了,你会怎么办
定时备份可能还不够,需要使用rsync加inotify来实时备份。以便任一时刻主服务器坏掉,也能保障所有图片有备份可以用来恢复。

5.如果有N多个客户同时下载文件,磁盘扛不住怎么办:
把多块磁盘做成raid,或者使用分布式存储文件系统如MFS,GlusterFS来提高磁盘的读写能力。

6.你的公司的网站,服务器比较多,客户反应比较慢,你会怎么做》
这时可以把网站上的图片通过squid或varnish缓存到网站前端,尽可能的增加访问速度,当然,最好是购买商业的CDN加速。

7.运营商是个大难题,他们之间的带宽好像很小,联通IP访问我电信网站怎么就这么慢呢?

这时可以使用bind自建一个DNS服务器,把网站的DNS记录指向自建DNS服务器上,配置好解析规则,以后联通IP解析到联通网站上,电信IP解析到电信网站上,体验就会好很多啦

8、越来越多的用户来访问我们的网站,一台web服务器抗不住了怎么办?
那就需要多台web服务器来负担,但多台服务器之间怎么进行负载均衡呢,这就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。

9.用户注册发表的文章与评论太多,一台数据库抗不住了怎么办?
数据库压力分为读和写,如果写抗不住,需要进行分表分库到多个服务器上。如果是读压力不够了,可以使用mysql-proxy读写分离,来分担读的压力。更简单方便的方法,把数据库里的内容放到内存上,这就用上memcache或redis了。

1、公司新买100台服务器,公司竟然就1个移动光驱,这装系统得到什么时候?
使用kickstart或cobbler来网络远程自动安装系统吧。

2、每次装完机要优化很多内容,什么文件描述符、端口、软件安装啊,手动操作不累死去?
赶紧学会shell,将解放非常多的工作量。

3、系统装完后登陆要输入密码,这么多台啊?
使用expect吧,自动读取提示来输入密码,并执行命令。

4、要批量把新代码发布到线上服务器,怎么办?
使用saltstack或puppet或ansible吧,绝对爽歪歪。

1、搭整套测试环境需要5台服务器,但公司穷的只有一台空闲服务器?
学会xen或kvm或docker吧,虚拟出多台服务器,就能解决资源问题了。特别是docker,强烈推荐,以后某个研发人员让你部署一套新环境,分分钟帮他解决。

2、研发人员的代码控制,权限控制,总要运维人员管呀?
svn或git,这个是肯定要有的。

1.操作系统状态监控
每天登陆系统查看系统运行的负荷如何,有无报错日志或报警日志。
2.操作系统故障排除
依据操作系统故障日志分析出现该报警或报错的原因,从而解决问题,保证操作系统的高可用性。
3.服务器状态确认
服务器上除了跑着操作系统,必然会安装一些应用程序或数据库,运维工程师每天需要查看linux系统上运行着的应用程序或数据库状态是否正常。
4.备份
运维工程师的看家本事,数据库备份和恢复,一般来说只要给数据库制定了备份策略它会自己备份,你只需要监控备份任务是否执行了就可以。
5.服务器调优
这个要求就比较高了,linux随着使用时间的增长,状态会有所下降,运维工程师有能力的可以对操作系统及数据库进行性能调优,保证系统处于一个最佳状态。

3、Mongodb熟悉吗,一般部署几台?

笔者回答:部署过,没有深入研究过,一般mongodb部署主从、或者mongodb分片集群;建议3台或5台服务器来部署。MongoDB分片的基本思想就是将集合切分成小块。这些块分散到若干片里面,每个片只负责总数据的一部分。 对于客户端来说,无需知道数据被拆分了,也无需知道服务端哪个分片对应哪些数据。数据在分片之前需要运行一个路由进程,进程名为mongos。这个路由器知道所有数据的存放位置,知道数据和片的对应关系。对客户端来说,它仅知道连接了一个普通的mongod,在请求数据的过程中,通过路由器上的数据和片的对应关系,路由到目标数据所在的片上,如果请求有了回应,路由器将其收集起来回送给客户端。

4、如何发布和回滚,用jenkins又是怎么实现?

笔者回答:发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。

回滚:按照版本号到发布服务器找到对应的版本推送

5、Tomcat工作模式?

笔者回答:Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:

Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IIS, Nginx等;

Tomcat作为独立服务器:请求来自于web浏览器;

6、监控用什么实现的?

笔者回答:现在公司的业务都跑在阿里云上,我们首选的监控就是用阿里云监控,阿里云监控自带了ECS、RDS等服务的监控模板,可结合自定义报警规则来触发监控项。上家公司的业务是托管在IDC,用的是zabbix监控方案,zabbix图形界面丰富,也自带很多监控模板,特别是多个分区、多个网卡等自动发现并进行监控做得非常不错,不过需要在每台客户机(被监控端)安装zabbix agent。

7、你是怎么备份数据的,包括数据库备份?

笔者回答:在生产环境下,不管是应用数据、还是数据库数据首先在部署的时候就会有主从架构、或者集群,这本身就是属于数据的热备份;其实考虑冷备份,用专门一台服务器做为备份服务器,比如可以用rsync+inotify配合计划任务来实现数据的冷备份,如果是发版的包备份,正常情况下有台发布服务器,每次发版都会保存好发版的包。

7.谈谈你对运维工程师的理解以及对工作的认识。

运维工程师属于一个公司被人看不到,却很重要的职位,领导总是把运维排在最后面,和研发、产品、测试比起来,运维是默默服务在后面的。运维掌握着线上业务的命脉,一旦出现问题,所有技术人员都来找运维处理。所以,运维在日常工作中,需要做好监控和事故预案,当问题出现时,运维需要以最快的速度处理好问题。在平时,运维不仅仅要给研发、测试提供协助,还要自发性地去研究和分析服务器上的一些性能指标和日志,从而给研发同事提供一些数据和线索来优化业务。

4、Linux服务器上的tomcat进程经常出现假死的情况,当你遇到这种问题时怎么处理该问题及采取怎样的预防措施?
答案:
先排查假死时机器的负载,是否因为内存不足,cpu使用过高,或者磁盘问题等导致。临时解决办法是写个脚本监控tomcat进程状况和模拟用户访问web站点,当出现不正常时,重启tomcat。另外还需要写一个监控系统各个硬件状态的脚本,比如cpu、内存、磁盘、交换分区等,综合分析tomcat假死的原因,找问题是一个漫长和痛苦的事情,需要多一些耐心,还需要我们敢去猜测,当然根据tomcat、系统相关的日志来获取一些信息也是非常有必要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值