<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>telegraf | 伪架构师</title>
    <link>/tags/telegraf/</link>
      <atom:link href="/tags/telegraf/index.xml" rel="self" type="application/rss+xml" />
    <description>telegraf</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>zh</language><lastBuildDate>Wed, 15 Mar 2017 07:09:26 +0800</lastBuildDate>
    <image>
      <url>/img/logo-wide.png</url>
      <title>telegraf</title>
      <link>/tags/telegraf/</link>
    </image>
    
    <item>
      <title>利用 Telegraf 进行简单的系统监控</title>
      <link>/post/telegraf-monitor/</link>
      <pubDate>Wed, 15 Mar 2017 07:09:26 +0800</pubDate>
      <guid>/post/telegraf-monitor/</guid>
      <description>

&lt;p&gt;InfluxData 除了广为人知的 InfluxDB 之外，还有几个其他的产品，合称 TICK：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Telegraf：数据采集&lt;/li&gt;
&lt;li&gt;InfluxDB：数据存储&lt;/li&gt;
&lt;li&gt;Chronograf：数据展现&lt;/li&gt;
&lt;li&gt;Kapacitor：数据分析、告警&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;在翻看 InfluxDB 的时候偶然发现了这个东西，虽然 Tick 四兄弟捆起来也不够看，不过 Telegraf 足够小巧，而且自动化的可能性更大，更符合目前的做事风格，所以就学习一下。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;官宣： The plugin-driven server agent for collecting &amp;amp; reporting metrics.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;所以 Telegraf 主要是一个框架，由数据输入、处理、输出三大类插件完成各种功能。Github 的 README.md 中列出了主要插件：&lt;code&gt;https://github.com/influxdata/telegraf&lt;/code&gt;。总的来说还是比较丰富的，下面的操作将利用简单的输入插件结合 InfluxDB 输出插件完成一个初步的指标收集过程。&lt;/p&gt;

&lt;h2 id=&#34;安装&#34;&gt;安装&lt;/h2&gt;

&lt;h3 id=&#34;centos&#34;&gt;CentOS&lt;/h3&gt;

&lt;p&gt;生成如下的 repo 文件：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 0
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;yum install -y telegraf&lt;/code&gt; 即可完成安装。&lt;/p&gt;

&lt;h3 id=&#34;docker&#34;&gt;Docker&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;docker pull telegraf&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&#34;配置&#34;&gt;配置&lt;/h2&gt;

&lt;p&gt;yum 安装后在 &lt;code&gt;/etc/telegraf&lt;/code&gt; 下会生成一个 &lt;code&gt;telegraf.conf&lt;/code&gt; 文件。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;配置文件中可以使用 &amp;ldquo;$ENV_ITEM&amp;rdquo; 的形式使用环境变量。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&#34;global-tags&#34;&gt;global_tags&lt;/h3&gt;

&lt;p&gt;这里记录的内容将作为 Tags 保存到 InfluxDB 的每个 Item 中。&lt;/p&gt;

&lt;h3 id=&#34;agent&#34;&gt;agent&lt;/h3&gt;

&lt;p&gt;这一节内容是数据搜集服务的行为定义。这里暂时无需进行改动&lt;/p&gt;

&lt;h3 id=&#34;outputs-influxdb&#34;&gt;outputs.influxdb&lt;/h3&gt;

&lt;p&gt;这里用于定义写入的 InfluxDB。&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-ini&#34;&gt;urls = [&amp;quot;http://localhost:8086&amp;quot;]
database = &amp;quot;telegraf&amp;quot;
timeout = &amp;quot;5s&amp;quot;
username = &amp;quot;telegraf&amp;quot;
password = &amp;quot;abcde!@#$%&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;urls 参数是一个数组，代表一个集群，如果其中包含多个服务，则每次只会选择其中一台进行写入。&lt;/p&gt;

&lt;p&gt;而在 inputs 一节中，缺省启用了很多系统属性，例如磁盘，网络等，这里我们添加一点 http 监控内容：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-ini&#34;&gt;[[inputs.http_response]]
address = &amp;quot;http://163.com&amp;quot;
response_timeout = &amp;quot;5s&amp;quot;
method = &amp;quot;GET&amp;quot;

[[inputs.http_response]]
address = &amp;quot;http://sina.com.cn&amp;quot;
response_timeout = &amp;quot;5s&amp;quot;
method = &amp;quot;GET&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p&gt;小窍门：可以用 &lt;code&gt;telegraf -config telegraf.conf -input-filter http_response -test&lt;/code&gt; 命令，来检查配置的正确性。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;配置文件编写完成之后，就可以利用 &lt;code&gt;systemctl start telegraf&lt;/code&gt;，启动 telegraf 服务了。&lt;/p&gt;

&lt;p&gt;启动之后，Telegraf 会在一定的时间间隔里向 InfluxDB 汇报数据。我们可以在 InfluxDB UI 中利用&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-sql&#34;&gt;select * from cpu
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;这样的语句来查询数据，或者接入 Grafana 等进行展现。&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
