在公司负责Linux运维工作,就我一人,之前公司没有运维。
每天的日常,就是看B站,学习新的内容(主要是工位位置不好),逛一些论坛,还有接一些小活,写写脚本处理问题之类的,一个月也可以有个两千左右的额外收入。
一个月估计差不多有25天没人找我,每天都是准时下班,也基本不加班。
不过前提是,我做了以下的工作,这些都是入门级运维的操作,做好了自动化,可以省很多事情,还有好多更细碎的就不写。。。
基本上,我的方向就是,只要让我做第二次的事情,那就想办法做成自动化或者简化优化过程。
2022年5月5日 更新
有很多人私信问这么接私活,我更新一部分这块的内容:
前期蹲守各种活跃的论坛和群,有时会发布一些有偿的协助,如果做好的话,可以和对方持续的合作。但是这个挺浪费时间的,有的时候信息会过期或者被人先占了,需要定期去看看。
活有大有小,小到帮大学生写作业,面试的考题,大到帮一些公司或者个人写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.toymoban.com/news/detail-453170.html
1024 码到成功,永不宕机。文章来源地址https://www.toymoban.com/news/detail-453170.html
到了这里,关于运维工程师一天的日常都在做什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!