高级运维工程师讲述银河麒麟V10SP1服务器加固删除snmp服务引起keeplived莫名连带删除引起生产事故实战

news2024/10/6 2:46:51

高级运维工程师讲述银河麒麟V10SP1服务器加固删除snmp服务引起keeplived莫名连带删除引起生产事故实战

一、核实操作系统信息

uname -a
Linux localhost.localdomain 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
cat /proc/version
Linux version 4.19.90-23.8.v2101.ky10.x86_64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 17 17:08:34 CST 2021
cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

二、事故描述(卸载snmp服务会连带删除keepalived服务)

作为运维工程师经常会对生产服务器进行安全漏洞加固,一般服务厂商、或者甲方信息安全中心提供一些安全的shell脚本,一般这种shell脚本都是收回权限,或者权限加固,或者删除某些漏洞的操作系统插件!笔者我,就最近由于服务器加固引起的生产事故总结一下,希望给大家一个惊醒!加固过程中,会引起生产事故!出了数据库事故,运维工程师躺枪背锅,笔者希望尽量避免,常在河边走,难免不湿鞋!笔者写这个文章,就是为了提前惊醒大家!避免跳坑,雷就在哪里,啥时候爆就是时间问题!如果出现数据库故障,可能对企业、产品的损失无法估量!

卸载snmp
yumremovenet-snmp-5.8-7.ky10.x86_64
yumremovenet-snmp-libs.x86_64
卸载snmp,会导致导致服务器上的keepalived服务暂停,配置文件丢失!

卸载snmp服务会连带删除keepalived服务

三、连带原因说明

(1)Keepalived 简介:

Keepalived 是一个用于实现高可用性(High Availability)的开源软件。它的主要功能是通过检测服务器的状态,来实现故障转移(Failover)和负载均衡。

Keepalived 主要通过虚拟路由冗余协议(VRRP)来实现高可用性。VRRP 可以将多台路由器组成一个虚拟路由器,其中一台路由器作为主路由器,其他路由器作为备份路由器。当主路由器出现故障时,备份路由器会自动接管主路由器的工作,从而保证网络的连续性和可靠性。

在实际应用中,Keepalived 通常会与其他软件(如 LVS、Nginx 等)配合使用,以实现更加完善的高可用性和负载均衡解决方案。例如,Keepalived 可以与 LVS 配合使用,实现对服务器的负载均衡和高可用性;也可以与 Nginx 配合使用,实现对 Web 服务器的高可用性和负载均衡。

Keepalived 的配置相对简单,只需要在主、备服务器上进行一些简单的配置,就可以实现高可用性和负载均衡的功能。同时,Keepalived 还提供了丰富的监控和报警功能,可以及时发现服务器的故障和异常情况,并通过邮件、短信等方式进行报警,以便管理员及时进行处理。

总的来说,Keepalived 是一个非常实用的高可用性软件,它可以帮助企业提高服务器的可靠性和稳定性,保证业务的连续性和正常运行。以下是一个简单的 Keepalived 配置示例:

global_defs {
   notification_email {
      acme@example.com
   }
   notification_email_from keepalived@example.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
    }
}

在上述示例中,我们定义了一个全局参数和一个 VRRP 实例。在全局参数中,我们设置了通知邮件的相关信息和 SMTP 服务器的地址。在 VRRP 实例中,我们设置了实例的状态、接口、虚拟路由器 ID、优先级、通告间隔、认证信息和虚拟 IP 地址。这只是一个简单的示例,实际的配置可能会根据您的具体需求进行调整。

Keepalived 是一个用于实现高可用性的软件,它可以通过多种方式来检测服务器的状态,其中之一就是使用 SNMP(Simple Network Management Protocol,简单网络管理协议)。

SNMP 可以用于监控网络设备和服务器的各种信息,如 CPU 利用率、内存使用情况、磁盘空间等。当 Keepalived 结合 SNMP 时,可以通过 SNMP 获取到这些监控信息,从而更准确地判断服务器的健康状况。

例如,如果通过 SNMP 监测到服务器的 CPU 利用率过高或者内存不足,Keepalived 可以根据预设的规则进行相应的操作,如将流量切换到其他备用服务器上,以保证服务的连续性。

另外,使用 SNMP 还可以实现对多个服务器的集中管理和监控,提高管理效率。通过一个统一的 SNMP 管理平台,可以同时查看和管理多个服务器的状态信息,方便管理员及时发现和解决问题。

总之,将 Keepalived 与 SNMP 结合使用,可以增强服务器的高可用性和可管理性,提高整个系统的稳定性和可靠性。

(2)Keepalived 为啥用到SNMP

Keepalived 是一个用于实现高可用性的软件,它可以通过多种方式来检测服务器的状态,其中之一就是使用 SNMP(Simple Network Management Protocol,简单网络管理协议)。

SNMP 可以用于监控网络设备和服务器的各种信息,如 CPU 利用率、内存使用情况、磁盘空间等。当 Keepalived 结合 SNMP 时,可以通过 SNMP 获取到这些监控信息,从而更准确地判断服务器的健康状况。

例如,如果通过 SNMP 监测到服务器的 CPU 利用率过高或者内存不足,Keepalived 可以根据预设的规则进行相应的操作,如将流量切换到其他备用服务器上,以保证服务的连续性。

另外,使用 SNMP 还可以实现对多个服务器的集中管理和监控,提高管理效率。通过一个统一的 SNMP 管理平台,可以同时查看和管理多个服务器的状态信息,方便管理员及时发现和解决问题。

总之,将 Keepalived 与 SNMP 结合使用,可以增强服务器的高可用性和可管理性,提高整个系统的稳定性和可靠性。

四、解决方法(误删重传、配置还原)

这是上面删除的命令!

卸载snmp
yumremovenet-snmp-5.8-7.ky10.x86_64
yumremovenet-snmp-libs.x86_64

snmp服务还原!

yum install net-snmp-5.8-7.ky10.x86_64
yum install net-snmp-libs.x86_64

如果误删重装、配置还原!

1、实例环境说明

识别麒麟V10 操作系统信息

cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

服务器名称IP角色部署MYSQL数据库
模拟172.18.21.140虚拟IP代理
物理机A172.18.21.146真实IP,主MYSQL数据库nasen_146
物理机B172.18.21.148真实IP,备MYSQL数据库nasen_148

2、服务器A安装部署详细步骤

步骤1:获取定制化安装包
在这里插入图片描述
安装包为麒麟V10 sp1特定版本,在互联网环境是搜不到的。Sp1跟SP2版本也略有不同。注意定制化版本。
步骤2:执行安装

rpm -ivh keepalived-2.0.20-5.ky10.x86_64.rpm

步骤3:配置keepalived配置文件

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.21.140
    }
}

virtual_server 172.18.21.140 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 172.18.21.146 3306 {
        weight 3
        notify_down /etc/keepalived/restartKeepalived.sh
        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }
    }
}




}

在这里插入图片描述
步骤4:补充一个脚本执行文件

cd /etc/keepalived 
touch restartKeepalived.sh
vi restartKeepalived.sh
#!/bin/bash

systemctl restart keepalived
chmod 777 restartKeepalived.sh

步骤5:执行启动命令

systemctl start keepalived

步骤6:是否正常启动

ip addr list

在这里插入图片描述

3、服务器B安装部署详细步骤

步骤1:获取定制化安装包
在这里插入图片描述
安装包为麒麟V10 sp1特定版本,在互联网环境是搜不到的。Sp1跟SP2版本也略有不同。注意定制化版本。
步骤2:执行安装

rpm -ivh keepalived-2.0.20-5.ky10.x86_64.rpm

步骤3:配置keepalived配置文件

vi /etc/keepalived/keepalived.conf

内容如下:

! Configuration File for keepalived

global_defs {

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {
    state BACKUP
    interface enp0s3
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.21.140
    }
}

virtual_server 172.18.21.140 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 172.18.21.148 3306 {
        weight 3
        notify_down /etc/keepalived/restartKeepalived.sh
        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }
    }
}




}

在这里插入图片描述

步骤4:补充一个脚本执行文件

cd /etc/keepalived 
touch restartKeepalived.sh
vi restartKeepalived.sh
#!/bin/bash

systemctl restart keepalived
chmod 777 restartKeepalived.sh

步骤5:执行启动命令

systemctl start keepalived

步骤6:是否正常启动

在这里插入图片描述

4、双活HA高可用验证

打开140默认指向146

在这里插入图片描述
模拟146数据库服务宕机

在这里插入图片描述
140自动转向148数据库服务

在这里插入图片描述
现在把146恢复

在这里插入图片描述
再把148数据库关闭模拟148宕机
140自动又跳回146服务器

在这里插入图片描述
双活HA高可用验证成功

五、笔者简介

笔者简介
国内某一线知名软件公司企业认证在职员工:任JAVA高级研发工程师,大数据领域专家,数据库领域专家兼任高级DBA!10年软件开发经验!现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目!并维护真实企业级生产数据库300余个!紧急处理数据库生产事故上百起,挽回数据丢失所造成的灾难损失不计其数!并为某国家级大数据系统的技术方案(国家知识产权局颁布)专利权的第一专利发明人!

在这里插入图片描述

在这里插入图片描述

笔者想说几句额外的:
某程删库事故的巨大影响值得警醒!!当然笔者在文章中惊提醒某些企业高管资本家,如果公司对一线的运维、DBA不够尊重、重视!如果裁员涉及到DBA或者高级运维,那将会是灾难噩梦的开始,如果因为裁员裁到大动脉,核心数据丢失事故给企业、产品、社会的影响巨大损失无法估量!某程删库的事故损失情况,可以去网上查查!核心数据丢失了,老板、企业家们高管很可能赔满全部身价!所以笔者倡导作为企业家、高管对于一线的运维、DBA要给予更多的爱与尊重与认可!愿社会更美好,愿每一个一线工程师都获得尊重与认可!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AMBA】APB总线的个人学习记录(一):理论知识

精通APB (Advanced Peripheral Bus) 总线设计通常意味着你不仅理解其基础概念,而且能够在实际的硬件设计中灵活运用APB总线,解决复杂问题,并优化设计。以下是一些关键点,当你掌握这些方面时,可以说你对APB总线设计有了…

004-GeoGebra基础篇-GeoGebra的布局

注意,为保证大家的GeoGebra的学习顺利从基础、中级到高级的过度,本教程笔记有此要求: 必须使用英文版GeoGebra(虽说GeoGebra也支持汉字写算式,但强烈不建议,因为一个英文翻译过来的中文真是五花八门&#…

网店管家婆与金蝶云星空对接集成往来单位查询接口打通客户新增

网店管家婆与金蝶云星空对接集成往来单位查询接口打通客户新增 对接系统网店管家婆 目前网上管家婆已服务超十万家海内外企业级用户,覆盖了服装配饰、食品酒水、数码3C、美妆日护、医疗保健、母婴用品、五金工具等等行业。 对接系统:金蝶云星空 金蝶K/3C…

如何高效管理TikTok账号?TK矩阵防关联测评养号引流系统揭秘

TK矩阵防关联测评自养号系统是为TikTok(TK)平台设计的,旨在帮助卖家实现多账号管理、防关联以及自动化测评和养号的功能。该系统通过一系列的技术手段和创新功能,为跨境电商运营者提供了强大的支持。 系统核心优势 1. 全球真实环…

5000字深入讲解:企业数字化转型优先从哪个板块开始?

很多企业都知道数字化转型重要,但不知道应该怎样入手,分哪些阶段。以下引用国内领先数字化服务商 织信Informat 的数字化转型方法论材料,且看看他们是如何看待数字化转型的?数字化转型应该从哪先开始?如何做&#xff1…

一个好玩的 AI 产品,一起来玩儿梗

欢迎贡献你的扎心梗图: - 万物皆可meme介绍:https://hqexj12b0g.feishu.cn/wiki/space/7385353047184375810 - 任何人都可以编辑的玩梗集:https://hqexj12b0g.feishu.cn/wiki/

Redis-Bitmap位图及其常用命令详解

1.Redis概述 2.Bitmap Bitmap 是 Redis 中的一种数据结构,用于表示位图(bit array)。 它通常用于处理大规模数据集中每个元素的状态,比如用户的在线/离线状态(每个用户对应一个位,表示在线(1&a…

【课程总结】Day12:YOLO的深入了解

前言 在【课程总结】Day11(下):YOLO的入门使用一节中,我们已经了解YOLO的使用方法,使用过程非常简单,训练时只需要三行代码:引入YOLO,构建模型,训练模型;预测…

分类预测 | PSO-PNN基于粒子群算法优化概率神经网络的数据分类预测(Matlab)

分类预测 | ZOA-PCNN-AT-SVM斑马优化并行卷积-支持向量机融合注意力机制的故障识别 目录 分类预测 | ZOA-PCNN-AT-SVM斑马优化并行卷积-支持向量机融合注意力机制的故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.PSO-PNN基于粒子群算法优化概率神经网络的数据…

SQLite:一个极简使用教程

SQLite是一个轻量级的、文件系统基础的数据库,它被设计为配置简单、易于部署。SQLite数据库存储在一个单一的磁盘文件中,这意味着数据库的创建和维护都非常简单。 1. SQLite特点 轻量级:SQLite不需要一个独立的服务器进程。它是一个嵌入式SQ…

Steam夏促遇到社区打不开、社区进不去的处理措施一览

在Steam夏促中,绝大部分Steam游戏都会有折扣优惠,包括一些3A大作在夏促中也会降价售卖,玩家可以低价购买到自己心仪的游戏。不少玩家进入Steam社区查看游戏评价时遇到社区打不开、社区进不去的情况,不知道怎么解决,下面…

Pycharm一些问题解决办法

研究生期间遇到关于Pycharm一些问题报错以及解决办法的汇总 ModuleNotFoundError: No module named sklearn’ 安装机器学习库,需要注意报错的sklearn是scikit-learn缩写。 pip install scikit-learnPyCharm 导包提示 unresolved reference 描述:模块…

React小记(五)_Hooks入门到进阶

React 16.8 版本 类组件 和 函数组件 两种组件共存,到目前 React 18 版本,官方已经不在推荐使用类组件,在函数组件中 hooks 是必不可少的,它允许我们函数组件像类组件一样可以使用组件的状态,并模拟组件的生命周期等一…

新手向导:掌握Axure RP的第一步

其实很多时候,我们很容易把教程做得太复杂,让学生失去重点被复杂的理论吓到。入门基础的时候只需要先弄清楚两个核心内容,学起来就容易多了:一是简单了解这个软件,二是学习这个软件的基本操作。所以如果你问我什么是好的 Axure RP…

chrome 配置允许跨域

目录 1.Chrome跨域插件配置 1.1启动插件 1.2. 设置本地调试跨域 2 Firefox跨域插件 2.1. 安装插件 CORS Everywhere 2.2. 启动插件 3 工具下载链接 1.Chrome跨域插件配置 使用chrome插件“Allow CORS: Access-Control-Allow-origin ”来解决跨域问题。 点击pin图标&…

小语言模型SLM 百科全书

想象一下这样一个世界:智能助手不再驻留在云端,而是驻留在你的手机上,无缝理解你的需求并以闪电般的速度做出响应。这不是科幻小说;这是小型语言模型 (SLM) 的前景,这是一个快速发展的领域,有可能改变我们与…

倒装COB封装技术与常规SMD封装技术差异对比

倒装COB显示屏与常规SMD LED显示屏一个很大的差异点就是在于封装工艺的不同,COB(Chip on Board)封装和SMD(Surface Mounted Device)封装是LED显示屏领域中两种常见的技术,所表现出来的差异主要在于封装结构…

“卷王”新思路!孟德尔随机化联合共定位,IF冲上12+

今天分享的这篇文章很有意思,用上了统计学中的“顶流CP”孟德尔随机化贝叶斯共定位,强强联手,让孟德尔随机化不再单调!本文思路清晰,设计严谨,结果可靠,想学习孟德尔随机化发文套路的千万不要错…

【selenium 】操作元素

操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…

手持小风扇哪个牌子比较好?五大热门手持小风扇品牌推荐

炎炎夏日,真的需要一款随身小风扇来拯救我们的高温困境!不过,市面上的选择太多了,真的让人眼花缭乱。今天,我就给大家快速推荐五款热门的手持小风扇,它们不仅轻便易携,而且各有特色。有的是风力…