运维工程师一天的日常都在做什么?

来源:知乎

在公司负责Linux运维工作,就我一人,之前公司没有运维。

每天的日常,就是看B站,学习新的内容(主要是工位位置不好),逛一些论坛,还有接一些小活,写写脚本处理问题之类的,一个月也可以有个两千左右的额外收入。

一个月估计差不多有25天没人找我,每天都是准时下班,也基本不加班。

不过前提是,我做了以下的工作,还有好多更细碎的就不写

基本上,我的方向就是,只要让我做第二次的事情,那就想办法做成自动化或者简化优化过程。

运维工程师一天的日常都在做什么?

有很多人私信问这么接私活,我更新一部分这块的内容:

前期蹲守各种活跃的论坛和群,有时会发布一些有偿的协助,如果做好的话,可以和对方持续的合作。但是这个挺浪费时间的,有的时候信息会过期或者被人先占了,需要定期去看看。

活有大有小,小到帮大学生写作业,面试的考题,大到帮一些公司或者个人写bash、python,恢复被挖矿、中毒的机子等等。

金额都是不定的,你要先考虑是否需要会因为做了单子,而让自己的本职被耽误,更得不偿失。

一、公司内部维护

  1. 对SVN、git的每日备份,编写shell自动定期对SVN的账号进行密码更新,并且发送邮件通知。开发数据库和测试数据库的每日按库表备份。

  2. 使用markdown,建立小型的wiki,编写公司内部的信息文档,避免重复、无用、过期的信息交换。

  3. 维护公司的VPN,编写脚本定期变更密码。

  4. 使用Jenkins+Shell建立公司的cd/ci流程,代码全部自动(部分由QA手动)编译发布至开发环境、测试环境供QA测试,也包含线上环境的自动发布与半自动发布。并且进行钉钉的通知部署情况。

  5. 测试环境编写Dockerfile,进行构建Docker镜像,用于测试代码的发布,避免环境混乱,易于管理。

  6. 建立公司内部连接客户服务器的VPN通道,方便故障时调试处理。

  7. 建立维护内部DNS,优化网络连接效率。

  8. 编写脚本监控预发布环境与生产环境的数据库结构差异,避免发布的代码缺少字段或表。

  9. 编写脚本监控域名的ssl证书过期日期,到期之前钉钉通知。

  10. 编写Dockercompose,提供环境给实施部门培训测试。

二、云端服务器的维护

  1. 使用prometheus监控云端服务器与mysql数据库,到阈值时进行钉钉通知。

  2. 使用Grafana图表展示prometheus信息,方便值班人员查看,定位问题。

  3. 提供云端全部项目的日志展示,方便研发与值班人员查到定位问题。

  4. 编写了shell脚本,监控进程或者API,进行故障时的重启拉起。

  5. 部署了haproxy+nginx的负载均衡,对大流量项目访问进行分发负载。

  6. 部署了redis 3+3集群,提供缓存负载。

  7. 建立mysql多源同步,使用mysql proxy与mycat(不同的项目)进行读写分离。

  8. 建立rsync服务器,定时在服务器之间进行数据的互相备份,并且最终汇总到一台备用服务器上,统一拉回公司服务器上进行归档。

  9. 建立云端的代码标识库,可对不同的用户提供不同版本的代码,并且记录代码更新内容与客户安装代码时的上报信息记录。

  10. 编写shell采集全部客户服务器信息,包含:CPU、内存、硬盘、nginx、php、redis、部署的服务等。超过阈值则进行短信、邮件与钉钉通知。

  11. 编写shell脚本监控云端的mysql多源同步情况,故障时进行邮件与钉钉通知。

  12. 监控云端服务器到期时间,进行监控通知。

三、客户侧的维护

进行编写脚本,自动进行一些工作:

    1.自动更新本地的维护脚本、自动定期修改密码、自动更新软件包与配置、自动更新mysql配置、自动刷新文件权限、rsync配置更新

    2.通过shell脚本监控本地程序进程与API的保活:包含Mysql(包含同步监控)、redis、nginx、OpenVpn、php-fpm、Rsync、Tomcat等等。故障非忙时自动重启,并且进行钉钉与邮件通知。

    3.每日的日志切割,归档:mysql的gerenalLog、nginx日志、tomcat日志。

    4.客户侧监控,包含:shell脚本监控(生成信息由云端的shell脚本进行采集,进行钉钉、短信、邮件的通知)、atop(主要记录进程的变化,日志保留7天)、prometheus(node_exporter)、硬盘坏道检查定期检查(结果进行钉钉通知)、自定义的node_exporter

    5.定期备份数据库,并且加密压缩包,密码由云端的脚本提供,每日随机生成。定期自动修复数据库中的信息变化,比如本地IP发送变化,apikey发送了变化。

    6.有主从服务器的环境,进行互相的数据备份,包含用户文件、日志、数据库备份等。并且每日自动同步云端服务器上,最小化避免客户服务器故障时数据丢失。

    7.根据用户标识,自动获取版本是否更新,自动检验MD5的变化,进行更新对应版本的代码,代码更新成功后,自动上报云端服务器,由云端服务器统一进行钉钉通知成功或者失败。

    8.建立keepalived,主服务器故障时,IP偏移至备用服务器。

    9.编写php脚本,可通过get模式,传递秘钥,让实施人员可在现场进行一些特殊操作,比如重启服务等。

    10.一套日志服务,可通过公司内部的DNS,进行访问客户服务器查看日志。

    11.所有的shell与python脚本,执行的内容都会进行日志保存,可追溯之前执行脚本的情况。

云端部署jenkins,编写脚本,可对每个客户侧的服务器进行操作,提供给实施、研发进行查询、操作,功能如下:

    1.获取运行日志、错误日志、历史日志、redis数据、数据库general下载地址等

    2、手动更新代码、重启服务、切换主从服务器、备份数据库、取webssh地址、重启关机等



原文始发于微信公众号(运维贼船):运维工程师一天的日常都在做什么?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/177071.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!