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 / 问题 / 17274
In Process

        4 revs, 2 users 69%unkn
4 revs, 2 users 69%unkn
Asked: 2009-06-02 13:59:44 +0800 CST2009-06-02 13:59:44 +0800 CST 2009-06-02 13:59:44 +0800 CST

命名约定 [重复]

  • 772
这个问题在这里已经有了答案:
11年前关闭。

可能重复:
正在使用的最易于管理和最有趣的服务器命名方案是什么?

你如何决定一个新的主机名?

hostname
  • 18 18 个回答
  • 37356 Views

18 个回答

  • Voted
  1. Michael Renner
    2009-06-02T15:55:03+08:002009-06-02T15:55:03+08:00

    很大程度上取决于你工作的环境。

    首先也是最重要的 - 放弃对(流行)文化的任何引用,坚持使用有意义和描述性的名称。

    您可能知道“zeus”是代理服务器,因为您安装了它。但是任何未来的同事都非常想通过它的作用来引用服务器,而不是他的名字。

    如果您接受这一点,我建议您进行头脑风暴会议并写下您拥有哪些不同类型的网络实体(“主机”),如何将它们组合在一起以及哪些信息足够重要以编码在主机名中。您的命名约定应该能够明确地命名所有现有设备,并让用户大致了解主机的功能。一定要留出足够的增长空间来适应未来的发展,这样你就不需要在几个月内放弃你的命名约定。

    记录您的命名约定(不仅是如何,还有为什么),确保需要定期使用它的每个人都了解它的布局,对评论/建议持开放态度,不要将其吹捧为圣杯,在需要时进行调整。

    例子

    作为思考的食物,这是我们在我的一位前雇主使用的架构:

    Web 服务提供商,为 Web 项目做开发和运营。主要是 LAMP 的东西,尽管规模更大(项目规模,而不是数量)。

    对于物理设备:

    <站点>-<机架>-<设备>.in.<域>.<TLD>

    • SITE 是唯一的站点标识符,主要是三个字母
    • RACK 是我们分配的或从托管设施接管的标识符,应该能够在 SITE 唯一标识机架
    • DEVICE 是一个“设备类”,后面有一个计数器,例如 vnodeXX 用于 OpenVZ 节点,swge 用于千兆交换机等。
    • DOMAIN/TLD 是给定设备所有者的域。

    对于逻辑实体:

    逻辑实体可能是任何具有与给定物理设备/位置没有强耦合的 IP 地址的东西。这主要是客户操作系统的 IP 地址(在我们的例子中是 OpenVZ 或 ESX)。

    <项目>-<环境>-<服务>.in.<域>.<TLD>

    • PROJECT 是一个项目标识符,它将项目的各种服务组合在一起。
    • ENVIRONMENT 可以是生产、分期或开发,4 个字母缩写
    • SERVICE 的形式相对自由,但常见的情况是标准化的,例如 web、db、mailout 等。
    • DOMAIN 是相关项目的主要域。

    对于 IP 地址:

    我们所有的服务都只能从专用网络访问,我们有 NAT 和/或带有“服务 IP 地址”的负载平衡器,面向互联网的主机使用它们来访问我们的服务。对于那些我们使用这样的东西:

    <项目>-<环境>-vip-<标识符>.<域>.<TLD>

    • IDENTIFIER 是唯一标识 IP 地址用途的东西,例如,专门用作德国域项目的 Web 虚拟主机的地址可能称为“wwwde”。

    总结一下

    命名约定对我们来说很好用,有些人(比如我们的开发人员;))可能会称它为夸大其词。请记住,如果您只维护一个站点并拥有分配给单个项目的服务器,那么这完全是夸大其词。但对我们来说,它完成了一些非常重要的事情。

    在处理逻辑实体的主机名时,我们总是知道:

    • 涉及哪个项目:
      不同的项目对不同的负责开发团队具有不同的重要性。快速浏览一下主机名会告诉您如何确定任务的优先级以及您需要在管理/开发方面询问谁
    • 主机所在的环境:
      开发环境中的问题会导致开发人员速度变慢。暂存环境中的问题会给测试人员带来痛苦,并可能危及产品展示。如果生产受到影响,公司就会赔钱。
    • 受影响的子系统:
      邮件后台处理程序、批处理工作程序等并不那么重要,但如果 Web 或数据库服务器出现故障,事情就会很快变脏。

    对于物理设备,确切的位置总是可以从主机名中推断出来的。

    物理设备和逻辑服务器之间的弱耦合可能会让某些人感到厌烦(例如,当我拔掉交换机 x/server y 的插头时,我怎么知道哪些项目会受到影响),但这是必须的我们的环境,因为我们的项目具有很高的周转率,而且通常我们甚至不知道哪些项目将托管在我们刚刚配置的新硬件上。

    • 10
  2. Kevin Colby
    2009-06-02T14:05:46+08:002009-06-02T14:05:46+08:00

    对于服务器,我喜欢我办公室目前使用的标准 <3 个字母位置代码>-<2 位递增数字以避免重复名称>

    一个例子是:PHOU-DMOSQL01

    • 身体的
    • 休斯顿
    • 演示环境
    • SQL 服务器
    • 01

    对于台式机/笔记本电脑,我通常使用类型指示符和用户名(假设机器分配给特定用户)(LT|DT)- 例如我的笔记本电脑是 LT-KCOLBY

    • 9
  3. V. Romanov
    2009-06-02T14:15:55+08:002009-06-02T14:15:55+08:00

    真正的答案是没有答案。

    我为服务器和计算机名称尝试了许多约定。我的结论是,名称本身是没有意义的,只要您有一个现成的、容易且不会因此而修改的描述字段。

    因此,我对此的看法是——发疯。幻想英雄、StarWars 图标、神话 - 任何适合您的幻想,并且有足够的范围来包含您现有的所有主机和扩展。(并且不会剔除您的管理层经常缺乏幽默感,老板可能对名为“pointyhaireddimwit”的服务器很挑剔:))。

    • 5
  4. niXar
    2009-06-03T05:23:21+08:002009-06-03T05:23:21+08:00

    我使用独特的名称来描述独特的机器。例如,在我当前的项目中,200 多台服务器,我使用了来自 Wikipedia 的星名列表。原因是实际名称比超级紧凑索引(例如 srv-05-92)具有更多冗余。这对一件事很重要:在嘈杂的服务器机房中转录、打字或通过电话交谈时,它的错误率很小。

    描述性信息存储在 DNS 的 TXT 字段中,Mac 地址等也是如此。也可以根据mac地址请求名称:

    $ host 00-12-34-56-78.mac.fr.dom
    00-12-34-56-78.mac.fr.dom is an alias for arcturus.eqx.vl304.fr.dom
    arcturus.eqx.vl304.fr.its has address 10.21.4.30
    

    您绝对要避免的一件事是根据机器的功能命名机器。这迟早会咬到你的屁股。只需为此目的使用别名(CNAME 或附加 A 记录)。


    注意:这都是使用自定义 XML 文件中的 XSLT 生成的:

    <?xml version="1.0" standalone="yes"?>
    <domain suffix="dom" xmlns:h="http://www.w3.org/1999/xhtml">
      <vlans>
         <vlan name="vl304" value="4" />
      </vlans>
      <country code="fr" prefix="10.21">
         <datacenter name="eqx" desc="Equinix">
            <host name="arcturus" lso="30">
              <vlan name="vl300" if="eth0" mac="00:12:34:56:78" />
              <txt type="loc">rack 5</txt>
              <txt type="sn">99A0632</txt>
              <txt type="model">xSeries x3350</txt>
              <doc>Load balancer</doc>
              <rsa ip="192.168.101.30" />
              <role type="loadbalancer1" />
            </host>
         </datacenter>
       </country>
    </domain>
    

    生成了几个别名:

    • arcturus.eqx.vl306.fr.dom(规范名称)
    • arcturus.vl306.fr.dom
    • arcturus.fr.dom
    • 00-12-34-56-78.mac.fr.dom
    • arcturus-rsa.fr.dom
    • loadbalancer1.eqx.vl306.fr.dom
    • loadbalancer1.vl306.fr.dom
    • loadbalancer1.fr.dom

    ...以及许多 TXT 记录

    • 5
  5. Matt Simmons
    2009-06-02T15:11:10+08:002009-06-02T15:11:10+08:00

    应该注意的是 RFC 1178 专门讨论这个主题: http:
    //www.faqs.org/rfcs/rfc1178.html

    (即使我不同意其中的很多内容,并且其中很多内容已经过时)。

    • 3
  6. raspi
    2009-06-02T14:08:52+08:002009-06-02T14:08:52+08:00

    洛夫克拉夫特式的大旧神和外神。

    • 2
  7. KevinRae
    2009-06-03T10:14:48+08:002009-06-03T10:14:48+08:00

    基于位置和/或功能的命名服务器可能会导致安全问题。如果您在外部发布您的 DNS,那么您就是在向坏人提供一张所有好东西在哪里的地图。通过默默无闻的安全性不是可以依赖的,但我不会让脚本小子容易。

    此外,您无需在主机名中描述设备的所有详细信息。而是使用主机名作为配置管理数据库的键。(您可以购买 CMDB、使用开源解决方案或参考 Excel 电子表格)。

    我个人喜欢以下设备名称:

    1. 短的
    2. 容易拼写
    3. 有趣的

    示例:我们曾经将其中一台备份服务器称为树懒。

    不幸的是,这只适用于较小的网站。如果您管理较大的安装,您将需要尽可能清晰的命名约定,以便您的所有员工都可以快速轻松地识别所有这些主机的功能。在这种情况下,您可能希望实施拆分 DNS,这样您就不会在野外宣传所有这些主机名。

    如果您的内部命名约定是私有的,那么您使用哪种轻率的命名​​方案实际上并不重要。但这里有一个想法。从您的支持人员那里获取技术线索,并询问他们是否有任何建议。这会让他们觉得自己很重要。

    • 2
  8. Alakdae
    2009-06-02T14:06:43+08:002009-06-02T14:06:43+08:00

    我的朋友使用凯尔特神的名字。我公司终端使用野生动物名称,服务器使用药品名称。我使用托尔金《精灵宝钻》中的名字。

    • 1
  9. anynomous
    2010-12-22T22:35:43+08:002010-12-22T22:35:43+08:00

    我使用演员。盒子越重要,演员就越酷……我试图按照他们在一起的电影对他们进行分组,但是当服务器移动并重新调整用途时,这很快就不再奏效了。我的 RHEL Satellite 服务器很宽敞,​​我的 syslog 服务器是 Brando 和 Dean。西贝尔在皮特和朱莉等人身上奔跑。

    • 1
  10. Lazlow
    2009-06-03T12:13:25+08:002009-06-03T12:13:25+08:00

    在我之前的工作中,我以星球大战的行星/卫星命名了新版本中的所有工作站/服务器 - Tatooine、Hoth、Endor、Dantooine 等。在我目前的工作中,本地服务器/工作站以星球大战角色命名,但正逐渐被更通用的名称逐步淘汰。在我们的生产环境中,服务器以希腊神话中的人物命名。

    在家里,我所有的物理/虚拟服务器都以它们的用途命名——文件服务器、邮件服务器、ftpserver、webserver、mssqlserver 等。然而,现在证明这很困难,因为我正在构建额外的 web 服务器。出于怀旧的原因,我正在考虑改用我以前工作的命名约定。

    • 1

相关问题

  • 专用网络的顶级域/域后缀?

  • 对于具有许多不同服务的少数服务器来说,一个好的主机名约定?

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