ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 通过 Email 发送包含特定标签的日志信息 像大多数系统管理员一样,如果没有收到足够的邮件,你会寻找一种方法生成邮件。 另外一种 Puppet 报告形式被称为 tagmail。这会根据你设定的 e-mail 地址将日志信息发送到你指定的邮箱。 #### 操作步骤 1. 在 puppet.conf 文件中为 reports 添加以逗号分割的 tagmail 选项: ``` [master] reports = store,tagmail ``` 2. 在 /etc/puppet/tagmail.conf 文件中,添加一些 **标签(tags)**并指定相应的 e-mail 地址。例如:下面的配置行将所有的日志消息发送到 [john@bitfieldconsulting.com](mailto:john@bitfieldconsulting.com) : ``` all: john@example.com ``` 3. 一旦 Puppet 运行,你就会收到一份类似如下内容的 e-mail: ``` From: report@cookbook.bitfieldconsulting.com Subject: Puppet Report for cookbook.bitfieldconsulting.com To: john@example.com Mon Jan 17 08:42:30 -0700 2011 //cookbook.bitfieldconsulting.com/ Puppet (info): Caching catalog for cookbook.bitfieldconsulting.com Mon Jan 17 08:42:30 -0700 2011 //cookbook.bitfieldconsulting.com/ Puppet (info): Applying configuration version '1295278949' ``` #### 工作原理 Puppet 在 tagmail.conf 配置文件中查找每一行配置, 匹配标签(tag)并将消息发送到指定的邮箱。名为 all 的特殊标签会匹配所有的消息。 名为 err 的标签会匹配所有的错误消息: ``` err: john@example.com ``` 你可以在 tagmail.conf 文件中定义多个规则, Puppet 会为所有匹配的规则发送邮件。 在下面的例子中,错误消息发送到一个邮件地址, 而与 web 服务器相关的消息发送到另一个邮件地址: ``` err: puppetmaster@example.com webserver: webteam@example.com ``` #### 更多用法 tagmail 报告是一个非常强大的特性, 你可能需要在实践中才能获得相关的体会。 下面列出了一些有用的技巧。 ##### 什么是标签? 在 [使用标签](#ch02sec13) 一节中将会对标签做更详细的解释,但为了能使用标签的报告特性, 现在只要知道 **tag** 可以为节点(node)或类(class)命名就足够了。例如: webserver 标签匹配所有执行 webserver 类的客户端。 你也可以像下面这样使用 tag 函数直接添加一个标签: ``` class exim { tag("email") service { "exim4": ensure => running, enable => true, } } ``` ##### 指定多个标签或排除指定的标签 你可以在 tagmail.conf 文件中以逗号间隔方式指定一个标签列表, 也可以在某个标签之前使用叹号(!)排除这个标签。 ``` all, !webserver: puppetmaster@example.com ``` ##### 发送报告到多个 e-mail 地址 你可以将消息同时发送到多个地址,用如下的方式使用逗号分割多个 e-mail 地址: ``` err: puppetmaster@example.com, sysadmin@example.com ``` #### 参见本书 * 本章的 [生成报告](#ch02sec01) 一节 * 本章的 [创建图形化报告](#ch02sec03) 一节 * 本章的 [使用标签](#ch02sec13) 一节