命名约定

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

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

  • EC2主机名ubuntu和ejabberd
  • 在不同的环境中,许多系统上的IP相同
  • 无法使用<servername> .local ssh进入Ubuntu服务器(在一台服务器上,而不是在另一台服务器上)
  • 设置JIRA,以便正确报告主机名
  • vs vs haproxy vs? 用于基于主机名的转发
  • 如何使用HAProxy根据主机名转移stream量?
  • 19 Solutions collect form web for “命名约定”

    非常依赖你工作的环境。

    首先 – 放弃对(stream行)文化的任何引用,坚持有意义和描述性的名称。

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

    如果你接受,我build议你做一个头脑风暴的会议,并写下你有什么不同types的networking实体(“主机”),如何将它们分组在一起,哪些信息足够重要,以便在主机名中进行编码。 您的命名约定应该能够毫不含糊地命名所有现有的设备,并让用户对主机的function有一个粗略的了解。 一定要留出足够的增长空间,以适应未来的发展,这样你就不用在几个月内把你的命名惯例放在板上。

    logging你的命名约定(不仅是如何,而且为什么),确保每个需要定期使用它的人都了解它的布局,对评论/build议持开放态度,不要把它当作圣杯,适应需要的时候。

    作为思想的食物,我们曾经雇用过一位老雇主的模式:

    Web服务提供者,负责Web项目的开发和运营。 主要是LAMP的东西,虽然规模较大(项目规模,而不是数量)。

    对于物理设备:

    <SITE> – <RACK> – <DEVICE>。在<DOMAIN> <TLD>

    • SITE是一个独特的网站标识符,大部分是三个字母
    • 机架是由我们指定的标识符或从主机设施接pipe的标识符,应该能够唯一地标识在SITE处的机架
    • DEVICE是一个带有计数器的“设备类”,例如用于OpenVZ节点的vnodeXX,用于千兆位交换机的swge等。
    • DOMAIN / TLD是给定设备所有者的域。

    对于逻辑实体:

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

    <项目> – <环境> – <SERVICE>。在<DOMAIN> <TLD>

    • PROJECT是项目标识符,它将项目的各种服务组合在一起。
    • 环境可以是生产,分期或开发,4字母缩写
    • 服务是相对自由的,虽然常见的情况下,如web,数据库,邮寄等标准化。
    • DOMAIN是相关项目的主要领域。

    对于IP地址:

    我们所有的服务都只能从一个私人networking中获得,我们有NAT和/或负载均衡器的“服务IP地址”,面向主机的互联网使用我们的服务。 对于我们这样使用的东西:

    <项目> – <环境> -vip- <IDENTIFIER> <DOMAIN> <TLD>。

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

    总结一下

    命名约定对我们来说工作得很好,有些(像我们的开发者)可能会称之为夸张的。 请记住,如果您只维护一个站点,并将服务器分配给一个项目,那么它完全被夸大了。 但是对我们来说,它实现了一些非常重要的事情。

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

    • 涉及哪个项目:
      不同的项目对于不同的负责任的开发团队来说都是不同的。 快速浏览一下主机名告诉你如何在pipe理/开发方面需要优先考虑任务和你需要询问的人
    • 主持人的环境是什么:
      开发环境中的问题会导致开发人员减速。 分级环境中的问题会给testing人员带来痛苦,并可能危害产品演示。 如果生产中受到影响,公司就会亏钱。
    • 什么子系统受到影响:
      邮件假发,批量工作人员等并不重要,但是如果Web服务器或数据库服务器发生故障,事情就会变得非常快。

    而对于物理设备,确切位置总是可以从主机名称中扣除。

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

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

    一个例子是:PHOU-DMOSQL01

    • 物理
    • Houstonm
    • 演示环境
    • SQL Server
    • 01

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

    networking和服务器命名scheme的大名单。

    我使用独特的名称来描述独特的机器。 例如,在我目前的200多个服务器中,我使用了维基百科中的星号列表。 原因在于实际名称比超级紧凑索引更具冗余性,比如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 

    你绝对要避免的一件事是根据它们的function命名机器。 这迟早会咬你的屁股。 只需使用别名(CNAME或额外的Alogging)即可。


    注意:这全是使用来自自定义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
    • 大angular星,rsa.fr.dom
    • loadbalancer1.eqx.vl306.fr.dom
    • loadbalancer1.vl306.fr.dom
    • loadbalancer1.fr.dom

    …以及一些TXTlogging

    真正的答案是没有答案。

    我尝试了许多服务器和计算机名称的约定。 我的结论是,只要你有一个容易得到的,容易的和不可改变的描述字段,这个名字本身就没有意义。

    因此,我认为这是坚果。 幻想英雄,StarWars图标,神话 – 任何适合你的幻想,并有足够的范围,包括所有现有的主机和扩展。 (并没有勾出你的pipe理层经常缺乏幽默感,老板可能会挑剔一个名为“pointyhaireddimwit”的服务器:))。

    Lovecraftian 伟大的老人和外面的神 。

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

    (即使我不同意这一点,而且很多都是过时的)。

    我的朋友使用凯尔特神的名字。 我的公司使用野生动物的名字作为服务器的terminal和药物名称。 我使用Tolkiens Silmarillion的名字。

    我们目前使用混合的命名scheme(伦敦地铁站)和function名称。 后者发生在记住哪个服务器在Web服务器集群中变得棘手时。 记得维多利亚,尤斯顿,帕丁顿,椭圆形,斗鸡,天使,银行等比w000,w001,w002等

    我们已经尝试了两种服务器命名约定为我们的中等intity:

    • “位置” – “服务器types” – “号码”:
      • “主-DB-01”
      • “主-FW-01”
      • “Wing2-FS-01”
      • “Wing2-FS-02”等。

    • 城市名称:
      • “纽约”
      • “迈阿密”
      • “波特兰”
      • “西雅图”等。

    在这两个公约中,80%的技术人员(包括我自己)比“Loc-Serv-#”更像City的公约。

    基于位置和/或function命名服务器可能导致安全问题。 如果你在外部发布你的DNS,那么你会给坏人一个所有好东西的地图。 通过默默无闻的安全是不是可以依靠,但我不会轻易的脚本小子。

    你也不需要在主机名中描述设备的所有细节。 而是使用主机名作为您的configurationpipe理数据库的关键。 (您可以购买CMDB,使用开源解决scheme,或参考Excel电子表格)。

    我个人喜欢的设备名称是:

    1. 易于拼写
    2. 滑稽

    例如:我们曾经打电话给我们的一台备份服务器 – 懒惰。

    不幸的是,这只适用于较小的网站。 如果你pipe理更大的安装,你将希望最清晰的命名约定成为可能,这样你的所有员工就可以快速,轻松地识别出所有这些主机的function。 在这种情况下,可能会想要实现拆分DNS,以便您不通知所有这些主机名。

    如果你的内部命名约定是私人的,那么使用什么样的粗俗命名scheme并不重要。 但是这是一个想法。 从技术支持人员处获得技术线索,询问他们是否有任何build议。 这将使他们感到重要。

    关于这个主题有一些现存的问题

    • less数服务器有很多不同服务的良好主机名惯例?
    • 什么是最易于pipe理和有趣的服务器命名scheme正在使用?

    我们有一个类似colby的系统。

    1. 机场代码或其他独特的3字母缩写
    2. 虚拟机如果是虚拟的
    3. 如果是集群,则为cl
    4. function
    5. 唯一的号码
    6. 并可select-n1,2,…如果它是一个集群memeber

    所以PHLVMCLDEV01将是费城的第一个开发集群,它的节点是虚拟的

    它将由PHLVMDEV01-N1和PHLVMDEV01-N2等组成

    这个问题没有“好”的答案:

    • 在我目前的工作中,我pipe理一小部分服务器(10/15),但是我们的客户有很多设备。 我们在离岸服务器上使用了岛名,我们的内部服务器使用了加拿大省份的名称,工作站使用了加拿大城市的名字(是的,我的老板来自加拿大)。 这些设备具有包含客户编号的通用名称。
    • 我曾经为一家拥有大量服务器的大型国际公司(约3k)工作。 每个服务器都专注于他的任务,并在一个集群中。 主机名包括国家(Uk,Be,NL)服务器angular色(DC,SQL),存储服务器的数据中心以及群集中的等级。 我们还包括环境(生产,发展,testing),因为每个环境都是封闭的,不能互相影响。
    • 在我以前的工作中,我正在为一家有10万台服务器的银行工作。 主机名称包括服务器所在的城市,操作系统的名称,版本和编辑器,硬件平台(i386,..)以及服务器的5位数字。

    如果您的服务器是群集的,您可能需要识别群集的其他成员才能打开它们。 如果你的服务器是多angular色的,你就不可能把他们的angular色作为名字的一部分。实际上,你的主机名必须包含对你和那些在计算机故障中工作的人有用的信息。

    我不敢相信你们真的有这些漫长而复杂的名字。 你一直打字吗? 你知道你泄露了多less信息(包括物理服务器的位置?)。

    我们使用的方法是根据漫画,电影等为服务器提供简单的名称。在内部,我们保留一个数据库,将有趣的名字链接到它们的位置,目的等。

    *所有这些多头主机名是很容易记住ips而不是:)

    在我之前的工作中,我在“星球大战”的行星/卫星之后给所有的工作站/服务器命名为新的版本 – Tatooine,Hoth,Endor,Dantooine等。在我目前的工作中,本地服务器/工作站以星球大战angular色命名,但正逐渐被逐渐淘汰为更通用的名称。 在我们的生产环境中,服务器以希腊神话中的字符命名。

    在家里,我所有的物理/虚拟服务器都是按照他们的使用命名的 – fileserver,mailserver,ftpserver,webserver,mssqlserver等等。不过,现在我build立了额外的web服务器, 由于怀旧的原因,我打算转移到我以前的工作的命名惯例。

    我使用演员。 盒子越重要,演员就越冷……我试图通过他们在一起的电影将他们分组,但是当服务器移动并被重新使用时,很快就不能工作了。 我的RHEL Satellite服务器空间很大,我的系统日志服务器是白兰地和院长。 Siebel运行皮特和朱莉等等。

    简单地使用这个约定(仍然有一些旧的8字符限制)

    2个字母的国家代码 – 三个字母的城市代码 – 机器名称

    机器名通常基于实际目的(MSSQL服务器的mssql),或者如果运行多个服务(rhel001作为红帽机器),则键入。

    您最终得到诸如us-dco-rac01 (第一个Oracle RAC节点)等名称。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.