AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 11582
In Process
Scott Bilas
Scott Bilas
Asked: 2009-05-24 05:02:11 +0800 CST2009-05-24 05:02:11 +0800 CST 2009-05-24 05:02:11 +0800 CST

如何记录服务器更改?

  • 772

所以我们可能都遇到过这样的情况:你调试了一些问题,却发现它是由你六个月前所做的配置更改引起的,你不记得为什么这样做了。因此,您撤消它并解决问题,现在又出现了其他问题。哦,是的,现在我想起来了!然后你正确地修复它。

那是因为你没有做正确的笔记,你这个笨蛋!但是有什么好的方法可以做到这一点?

在工程领域,我们拥有大量旨在帮助我们检测和跟踪变化的软件。源代码控制、代码审查等。每一个变化都被跟踪,每一个变化都需要一个关于它是什么的评论。典型的工程部门需要良好的评论,因此当您在六个月内弄清楚为什么会这样破坏它时,您可以使用历史“责备”功能或二进制搜索构建来查明问题。这些工具是非常有效的沟通工具和历史记录。

但是在服务器领域,我们有 500 种不同的服务,它们都有不同的配置方式。尽管它们可能具有文本表示,但它们并不总是具有文本格式(考虑在文件夹上设置权限或更改页面文件位置)。

在我们的环境中,我们可以将哪些配置文件检查到 Perforce 中,但这些配置文件很少。无法准确地检查 Active Directory DB..虽然可能是一个可能有差异的转储......

过去我曾尝试在我们的 wiki 中保留手动更改日志,但要保持纪律这样做非常困难(我知道,这不是一个好的借口,但这确实很难)。

我的问题:您使用什么策略和工具来解决跟踪服务器配置更改的问题?

- 更新 -

注意:我不是在寻找共享笔记工具(我熟悉 OneNote 等),而是专门用于帮助跟踪服务器更改的自动化工具。没有用于跟踪服务器配置更改的综合工具,但可能有一些针对特定应用程序(如 GPO)的工具。

此外,我对您发现有用的特定策略非常感兴趣。“我们在 Sharepoint 中共享笔记”非常含糊。你如何保持纪律?您使用什么格式来跟踪您的更改?您如何组织变更数据?我真的很喜欢例子和想法。

configuration-management
  • 12 12 个回答
  • 24611 Views

12 个回答

  • Voted
  1. jldugger
    2009-05-27T22:24:34+08:002009-05-27T22:24:34+08:00

    在 Linux 领域,人们追求几种不同的策略:

    • 配置约束系统,如cfengine或puppet或chef。这些类似于 Windows GPO。重点是所有服务器配置都有意记录在一个地方,并且您知道制定策略的粒度(服务器机房、组、特定服务器)。这不会让你完全摆脱“六个月前到底有什么不同?” 但它确实让您只需核对服务器配置并从头开始重建。您可以将 cfengine 和 puppet 策略置于修订控制之下来回答这个问题。
    • 修订控制 /etc。通常,Linux 程序将其配置存储在一个位置,例如 /etc。大胆的人开始编写脚本以将 /etc 纳入修订控制。我知道的一个这样的程序是etckeeper:
    描述:将 /etc 存储在 git、mercurial、bzr 或 darcs 中
     etckeeper 程序是一个让 /etc 存储在 git、mercurial、
     bzr 或 darcs 存储库。它连接到 APT 以自动提交更改
     在软件包升级期间制作到 /etc。它跟踪该版本的文件元数据
     控制系统通常不支持,但这对 /etc 很重要,例如
     作为 /etc/shadow 的权限。它非常模块化和可配置,而
     如果您了解使用版本的基础知识,也很容易使用
     控制。
    
    • 20
  2. Scott Pack
    2009-05-24T05:23:42+08:002009-05-24T05:23:42+08:00

    这种情况下的问题之一是,实际上,它是业务流程/技术问题的组合。它绝对比仅仅跟踪管理员所做的更改更大。您还需要注意意外更改,以及管理员或单位之间的良好协调,以便 AD 控制器上的更改不会破坏某些部门服务器上的数据库权限设置。即,你的问题是一大罐蠕虫:)

    在我的组织中,我们大约需要一年的时间来推出流程和系统来解决这个问题。在业务流程方面,我们组建了一个变更管理团队。根据 SOP,对生产环境的所有更改都通过它们进行协调。他们编译所有更改,以及范围、受影响的系统、受影响的服务等。强制执行有关更改的良好文档,以及推出和回滚计划。主持每周(公开)会议以讨论即将发生的环境变化,然后发送电子邮件详细说明所有这些变化。这个过程的最终目标是,实际上,IT 中的每个人都知道正在发生的一切。这有助于解决问题,例如,系统管理员安装内核补丁并重新启动将关闭时钟数据库的系统。

    至于技术方面,我只能说 Unix/Linux 的家伙,因为我不处理 Windows。他们一直在推出 Reducing Labs 的 Puppet,用于所有这些系统的配置管理。简单地说,是一个客户端/服务器系统,其中定义了服务器上的机器配置,并且客户端每隔一段时间(默认为 30 分钟)就会抓住这些机会。此外,如果有任何机会在本地管理文件,那么它们也会在那时恢复。我们使用它来管理正在运行的服务、防火墙配置、用户授权等。

    我还建议研究像 TippingPoint 这样的东西。它是一个监视系统配置并发送更改警报的客户端服务。这让我们安全人员最高兴。它主要用于跟踪恶意或未发布的更改。

    • 10
  3. Thomas Denton
    2009-05-24T05:21:54+08:002009-05-24T05:21:54+08:00

    我已经在 4 或 5 家公司工作过,我不太记得了。

    我们都有这个问题。我们没有人能 100% 解决这个问题,但在我现在所在的公司,我们拥有我认为是迄今为止最好的策略。

    Sharepoint/Wiki/Evernote/PIN

    • 共享点
      • 呻吟所有你想要的......它有一些非常好的列表功能。
      • IP 地址列表
      • 存货
      • 服务帐户和使用
      • 更改通知日志
    • 维基
      • 操作方法
      • 远程任务列表
    • 印象笔记
      • 我和我的搭档用它把我们不想要的东西放在 Wiki 中
      • 更多技术性的操作指南
      • 我们都需要看的草稿
      • 本周任务会计
      • 承包商任务清单
      • 印象笔记剪辑器可以轻松截屏广告/权限设置
      • 随处可用
    • 密码
      • 密码存储库
    • 4
  4. Brent
    2009-05-24T05:32:08+08:002009-05-24T05:32:08+08:00

    其中一些可能有更好的工具,但这是我们使用的:

    • 在私有 wiki中按服务器跟踪配置更改和升级/补丁
    • 还要在wiki中保留howtos和问题/解决方案的记录
    • 使用Sharepoint或Google Docs保留静态 IP 列表等内容的权威副本
    • 使用Subversion跟踪对配置文件的更改
    • 2
  5. Oskar Duveborn
    2009-05-24T05:54:11+08:002009-05-24T05:54:11+08:00

    对于 Windows,请查看 Microsoft 的 System Center 系列或该平台的配置和服务管理方面的任何其他竞争对手。

    更改需要通过一个体面的更改管理例程进行路由,该例程本身会在它们实际完成之前批准并记录它们。对于初学者来说,这可以是 100% 的手动操作。使用一些更好的集成工具,您可以要求该工具进行实际更改并“自动”将其注销到中央配置数据库 - 而不是徒手进入单个服务器的控制台,手动挖掘设置以尝试解决问题牛仔风格。

    • 2
  6. David Yu
    2009-05-24T13:50:27+08:002009-05-24T13:50:27+08:00

    您绝对应该有一个变更管理流程,特别是如果有多个人能够/访问在您的环境中的系统级别上进行更改。这也为管理层提供了一种批准潜在更改的方法,但是如果您不能即时进行更改,它确实会导致更改过程中的延迟。

    跟踪更改的一些方法可能包括验证您的 SEM 中的事件(假设您有一个安全事件管理器)或 Nessus 等工具(通过大量工作可以审核您的环境以发现更改)。

    • 2
  7. Greg Work
    2009-05-28T03:35:46+08:002009-05-28T03:35:46+08:00

    这是一个更加本地化的、基于 *nix 的答案。我还没有找到任何好的工具来在 Windows 下模拟它。

    有几种方法可以实现这一点......并在你忘记时抓住它。

    诸如 subversion、git、cvs 或 RCS 之类的修订控制系统是跟踪配置文件历史的好方法。如果您不想在生产服务器上安装修订控制系统,则使用rsnapshot之类的本地或远程存储配置文件目录将为您提供 RCS 的大部分好处,但您失去了审核或退出提交的可能性日志(尽管这可以通过文件本身的注释来解决)。

    为了帮助您记住记录更改,通过每晚的 cron'ed tripwire运行自动报告配置更改是一个好的开始。在构建了tripwire 文件当前状态的数据库后,对它们的任何更改都将在下次运行期间发送一封电子邮件。在数据库更新之前,您将继续收到此邮件,从而“重置”tripwire。

    • 2
  8. Draemon
    2009-05-24T10:27:23+08:002009-05-24T10:27:23+08:00

    我会使用问题跟踪系统,例如 flyspray(任何都可以,但我喜欢 flyspray 用于非编程的东西)。在任何人接触配置之前,应该记录改进/问题。当您修复/实施它时,更改会出现在票证中。

    一个 wiki 可以很好地记录当前的设置,但它很容易过时 - 而且更新 IMO 似乎需要更多的努力。

    您不会找到自动执行此操作的东西 - 尽管您可能可以设置它,因此如果您愿意,对某些配置文件的更改会自动通过电子邮件发送到问题跟踪器。

    我认为这只是一个好的政策、低门槛的工具和纪律的问题。

    • 1
  9. Guamaniac
    2009-05-27T13:33:46+08:002009-05-27T13:33:46+08:00

    我们创建了一些本土的东西来在我们的环境中进行更改日志跟踪;这不是什么超级复杂的事情,而且效果很好。

    • 设置了自我监管策略,您估计任何偏离开箱即用设置或可能导致问题的更改都应记录在更改日志系统中。
      • 这个“硬币”的另一面是,如果您正在解决问题,请搜索最近或相关的变更日志条目。
    • 登录系统并选择您要更改的服务器、服务或硬件组件
      • 组件先前已通过基本“人口”信息(位置、供应商、序列号、负责部门)输入同一系统
    • 从基本类别的下拉列表中选择
      • 计划外停机
      • 打补丁
      • 硬件维护
      • 软件安装
    • 详细说明你所做的、看到的、观察到的
    • 一份副本会发送给责任方,并以 XML 文件的形式存储,由 Search Appliance 编制索引。
    • 利润

    正如我所说,没什么特别的。它使用 PERL CGI(写于 10 亿年前)和用于索引的 Google 搜索设备。

    缺点:

    • 服务组很难使用,例如,您刚刚为所有 25 个域控制器添加了相同的补丁;我们没有“域控制器”组,所以我们必须手动选择它们
    • 不与硬件、软件或事件日志错误报告集成以帮助进行故障排除
    • 相关地,正如我上面所说的,所有“人口”数据的手动数据输入

    无论如何,如果您毕竟对代码感兴趣,请告诉我,我可能会抓住它来分享。

    • 1
  10. gbjbaanb
    2009-05-28T02:22:56+08:002009-05-28T02:22:56+08:00

    如前所述,这通常是一个文化问题——毕竟,一些开发商店不再理会评论(自我记录代码是当今流行的流行语!)还有一些使用版本控制系统作为历史记录的圣杯。显然,这些并不完美。

    因此,解决它的唯一真正方法是使其成为一种文化解决方案。确保所有更改原因都记录在错误跟踪器(或知识库或 wiki)中,并确保所有更改都记录在更改控制系统中。

    我们有紧急服务客户,他们的系统发生的每一个变化都会被记录下来,每次我们登录他们的系统时,我们都必须记录下来。对于其中一些人,我们必须先打电话征求许可(我猜他们也会记录下来!)。每次更改都会被记录,如果不记录就更改客户系统将构成违纪行为。

    这听起来很繁琐,但事实并非如此。您很快就会养成将自己添加到访问日志和更改日志的习惯——这并不比在签入代码更改时写评论更糟糕。

    我推荐一个 bugtracker 作为变更控制原因日志,因为它们通常很容易更新(我使用 Mantis)。

    • 1

相关问题

  • 您推荐使用什么工具来跟踪 Linux/Unix 服务器上的更改

  • 您如何获得贵公司正在使用的所有应用程序的列表?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve