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

发布时间 2023-05-31 15:20:19作者: 往事已成昨天

Linux服务器安全配置12条指南

做为一名合格的运维人员,确保Linux服务器的安全性是非常重要的,以下是一些常见的Linux服务器安全配置指南,适用于各个版本的Linux操作系统。

1、更新和升级系统:定期更新和升级操作系统以获取最新的安全补丁和修复程序。使用合适的包管理工具,如apt或yum来管理软件包。

2.禁用不必要的服务:审查服务器上运行的服务,禁用不需要的服务和进程。关闭不必要的网络端口,只允许必要的服务进行通信。

3.配置防火墙:启用防火墙以限制进入和离开服务器的网络流量。仅允许所需的端口和协议通过防火墙。

4.加强SSH安全:禁用SSH的root登录。禁用密码登录,仅使用公钥身份验证。使用非默认端口号,避免使用常见端口(如22)。限制SSH访问的IP地址范围。

5.使用强密码策略:强制用户使用复杂的密码,并定期更换密码。禁用空密码和默认账户。

6.定期备份数据:配置定期的数据备份,包括配置文件、数据库和重要文件。存储备份数据在安全的位置,最好是离线或离线存储。

7.安装安全补丁和更新:定期检查并安装操作系统和软件的安全补丁和更新。

8.配置日志记录:启用详细的日志记录,记录关键事件和安全相关信息。定期审查日志文件以检测异常活动和潜在的安全威胁。

9.安装入侵检测系统(IDS):配置和安装IDS以监测和识别潜在的入侵行为。

10.限制物理访问:确保服务器物理访问受到限制,只允许授权人员进入服务器房间。

11.使用安全的传输协议:对于敏感数据的传输,使用加密的传输协议,如HTTPS和SFTP。

12.定期安全审计:进行定期的安全审计和渗透测试,以发现潜在的漏洞和安全弱点。

运维网工
分享网络运维、运维规划、运维开发、Python运维、Linux运维、devops工具链、k8s容器化技术、自动化监控、日志收集等知识,推广围绕DevOps理念的自动化运维、高效运维、智能运维等优秀实践,让运维工程师更加专注于自动化。
18篇原创内容

 

 

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

小南锅锅 运维网工 2023-05-02 09:00 发表于重庆

来源:知乎

在公司负责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地址、重启关机等