欢迎光临
我们一直在努力

如何在CentOS 7上使用Metricbeat收集基础架构度量标准

作者选择了计算机历史博物馆作为Write for DOnations计划的一部分进行捐赠。

介绍

Metricbeat是一个帮助将各种类型的服务器数据发送到Elastic Stack服务器的Beats之一,它是一个轻量级的数据发送器,一旦安装在您的服务器上,就会定期收集系统范围和每个进程的CPU和内存统计信息并发送数据直接发送到您的Elasticsearch部署。 这个托运人在Elastic Stack的5.0版本中取代了早期的Topbeat

目前可从Elastic获得的其他Beats是:

  • Filebeat :收集并发送日志文件。
  • Packetbeat :收集和分析网络数据。
  • Winlogbeat :收集Windows事件日志。
  • Auditbeat :收集Linux审计框架数据并监视文件完整性。
  • 心跳 :通过主动探测监控服务的可用性。

在本教程中,您将使用Metricbeat将本地系统指标(如CPU /内存/磁盘使用情况和网络利用率)从CentOS 7服务器转发到安装了Elastic Stack的同类服务器。 使用此shippers,您将收集获取服务器当前状态所需的基本指标。

先决条件

要学习本教程,您需要:

注意 :安装Elastic Stack时,必须在整个中使用相同的版本。 在本教程中,您将使用整个的最新版本,在撰写本文时,它们是Elasticsearch 6.7.0,Kibana 6.7.0,Logstash 6.7.0和Metricbeat 6.7.0。

第1步 – 配置Elasticsearch以监听外部IP上的流量

如何在CentOS 7上安装Elasticsearch,Logstash和Kibana(弹性)教程仅限于对localhost Elasticsearch访问。 实际上,这很少见,因为您经常需要监控许多主机。 在此步骤中,您将配置Elastic Stack组件以与外部IP地址进行交互。

以非root用户身份登录Elastic Stack服务器:

ssh sammy@Elastic_Stack_server_ip

使用首选文本编辑器编辑Elasticsearch的主配置文件elasticsearch.yml 本教程将使用vi

sudo vi /etc/elasticsearch/elasticsearch.yml

找到以下部分并对其进行修改,以便Elasticsearch监听所有接口。 i键进入插入模式,然后添加以下突出显示的项目:

/etc/elasticsearch/elasticsearch.yml
...network.host: 0.0.0.0...

地址0.0.0.0在许多上下文中被赋予特定含义。 在这种情况下, 0.0.0.0表示“任何IPv4地址”。

完成后,按ESC退出插入模式,然后:wqENTER保存并退出文件。 要了解有关文本编辑器vi及其后续版本Vim的更多信息,请查看我们在云服务器上安装和使用Vim文本编辑器教程。 保存并退出文件后,使用systemctl重新启动Elasticsearch服务以应用新设置:

sudo systemctl restart elasticsearch

现在,允许从第二个CentOS服务器访问Elasticsearch端口。 要配置来自特定IP地址或子网的访问,请使用firewalld丰富规则功能:

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="second_centos_server_ip/32" port protocol="tcp" port="9200" accept'

丰富的规则允许您创建更复杂和可自定义的firewalld规则,以获得对防火墙的更大控制。 在此命令中,您将添加一条规则,该规则接受来自source ipv4流量(您已将其设置为第二个CentOS服务器的IP地址)到Elastic Stack服务器的port 9200

接下来,重新加载firewalld以激活新规则:

sudo firewall-cmd --reload

如果您有两个以上的服务器,请为每个服务器重复这些命令。 如果您的服务器位于同一网络上 ,则可以允许使用一个规则访问网络上的所有主机。 为此,您需要将IP地址后面的/32替换为较低的值,例如/24

接下来,测试连接。 以非root用户身份登录第二台CentOS服务器:

ssh sammy@second_centos_server_ip

使用curl命令测试与Elastic Stack服务器的连接:

curl Elastic_Stack_server_ip:9200

您将收到类似于以下内容的输出:

{  "name" : "tl5Is5f",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "W9AcSNWHQ3mYs2uE8odklA",  "version" : {    "number" : "6.7.0",    "build_flavor" : "default",    "build_type" : "rpm",    "build_hash" : "3bd3e59",    "build_date" : "2019-03-06T15:16:26.864148Z",    "build_snapshot" : false,    "lucene_version" : "7.6.0",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"  },  "tagline" : "You Know, for Search"}

现在您知道连接有效,您就可以将指标发送到Elastic Stack服务器了。

第2步 – 在Elastic Stack Server上安装和配置Metricbeat

在接下来的两个步骤中,您将首先在Elastic Stack服务器上安装Metricbeat并导入所有需要的数据,然后在第二个CentOS服务器上安装和配置客户端。

以非root用户身份登录Elastic Stack服务器:

ssh sammy@Elastic_Stack_server_ip

由于您之前在先决条件中设置了Elasticsearch存储库,因此您只需安装Metricbeat:

sudo yum install metricbeat

安装完成后,将索引模板加载到Elasticsearch中。 Elasticsearch索引是具有类似特征的文档集合。 特定名称标识每个索引,Elasticsearch将在执行各种操作时使用这些索引来引用索引。 创建新索引时,Elasticsearch服务器将自动应用索引模板。

要加载模板,请使用以下命令:

sudo metricbeat setup --template -E 'output.elasticsearch.hosts=["localhost:9200"]'

您将看到以下输出:

Loaded index template

Metricbeat附带了示例Kibana仪表板,可视化和搜索,以便在Kibana中可视化Metricbeat数据。 在使用仪表板之前,您需要创建索引模式并将仪表板加载到Kibana中。

要加载模板,请使用以下命令:

sudo metricbeat setup -e -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601

您将看到如下所示的输出:

...2019-03-20T09:51:32.096Z        INFO    instance/beat.go:281    Setup Beat: metricbeat; Version: 6.7.02019-03-20T09:51:32.136Z        INFO    add_cloud_metadata/add_cloud_metadata.go:323    add_cloud_metadata: hosting provider type detected as digitalocean, metadata={"instance_id":"133130541","provider":"digitalocean","region":"fra1"}2019-03-20T09:51:32.137Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:92002019-03-20T09:51:32.137Z        INFO    [publisher]     pipeline/module.go:110  Beat name: elastic2019-03-20T09:51:32.138Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:92002019-03-20T09:51:32.140Z        INFO    elasticsearch/client.go:721     Connected to Elasticsearch version 6.7.02019-03-20T09:51:32.148Z        INFO    template/load.go:130    Template already exists and will not be overwritten.2019-03-20T09:51:32.148Z        INFO    instance/beat.go:894    Template successfully loaded.Loaded index templateLoading dashboards (Kibana must be running and reachable)2019-03-20T09:51:32.149Z        INFO    elasticsearch/client.go:165     Elasticsearch url: http://localhost:92002019-03-20T09:51:32.150Z        INFO    elasticsearch/client.go:721     Connected to Elasticsearch version 6.7.02019-03-20T09:51:32.151Z        INFO    kibana/client.go:118    Kibana url: http://localhost:56012019-03-20T09:51:56.209Z        INFO    instance/beat.go:741    Kibana dashboards successfully loaded.Loaded dashboards

现在你可以启动Metricbeat了:

sudo systemctl start metricbeat

要使Metricbeat从现在开始自动启动,请使用enable命令:

sudo systemctl enable metricbeat

Metricbeat将开始将您的系统统计信息发送到Elasticsearch。

要验证Elasticsearch是否确实正在接收此数据,请使用以下命令查询Metricbeat索引:

curl -XGET 'http://localhost:9200/metricbeat-*/_search?pretty'

您将看到与此类似的输出:

...{  "took" : 3,  "timed_out" : false,  "_shards" : {    "total" : 1,    "successful" : 1,    "skipped" : 0,    "failed" : 0  },  "hits" : {    "total" : 108,    "max_score" : 1.0,    "hits" : [      {        "_index" : "metricbeat-6.7.0-2019.03.20",        "_type" : "doc",        "_id" : "A4mU8GgBKrpxEYMLjJZt",        "_score" : 1.0,        "_source" : {          "@timestamp" : "2019-03-20T09:54:52.481Z",          "metricset" : {            "name" : "network",            "module" : "system",            "rtt" : 125          },          "event" : {            "dataset" : "system.network",            "duration" : 125260          },          "system" : {            "network" : {              "in" : {                "packets" : 59728,                "errors" : 0,                "dropped" : 0,                "bytes" : 736491211              },              "out" : {                "dropped" : 0,                "packets" : 31630,                "bytes" : 8283069,                "errors" : 0              },              "name" : "eth0"            }          },          "beat" : {            "version" : "6.7.0",            "name" : "elastic",            "hostname" : "elastic"          },...

"total" : 108 ,表示Metricbeat已找到该特定指标的108个搜索结果。 任意数量的搜索结果表明Metricbeat正在工作; 如果您的输出显示总命中数为0,则需要检查设置是否有错误。 如果收到预期的输出,请继续执行下一步,在第二步CentOS服务器上安装Metricbeat。

第3步 – 在第二台CentOS服务器上安装和配置Metricbeat

在要从中向Elastic Stack服务器发送指标的所有CentOS服务器上执行此步骤。 如果您还有Ubuntu服务器,则可以按照如何在Ubuntu 18.04上使用Metricbeat收集基础架构度量标准的第3步来安装Metricbeat。

以非root用户身份登录到您的第二个CentOS服务器:

ssh sammy@second_centos_server_ip

默认情况下,Eum包管理器不提供Elastic Stack组件,但您可以通过添加Elastic的包存储库来安装它们。

所有Elastic Stack的软件包都使用Elasticsearch签名密钥进行签名,以保护您的系统免受软件包欺骗。 您的包管理器将信任使用该密钥进行身份验证的包。 在此步骤中,您将导入Elasticsearch公共GPG密钥并添加Elastic包源列表以安装Metricbeat。

首先,运行以下命令以下载并安装Elasticsearch公共签名密钥:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

接下来,添加Elastic存储库。 使用首选的文本编辑器在/etc/yum.repos.d/目录中创建文件elasticsearch.repo

sudo vi /etc/yum.repos.d/elasticsearch.repo

要为yum提供下载和安装Elastic Stack组件所需的信息,请按i进入插入模式,并将以下行添加到文件中:

/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]name=Elasticsearch repository for 6.x packagesbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

完成后,保存并关闭文件。

接下来,使用以下命令安装Metricbeat:

sudo yum install metricbeat

完成Metricbeat安装后,将其配置为连接到Elasticsearch。 打开其配置文件metricbeat.yml

sudo vi /etc/metricbeat/metricbeat.yml

注意: Metricbeat的配置文件是YAML格式,这意味着缩进非常重要! 编辑此文件时,请确保不添加任何额外的空格。

Metricbeat支持多种输出,但您通常只将事件直接发送到Elasticsearch或Logstash以进行其他处理。 找到以下部分并更新IP地址:

/etc/metricbeat/metricbeat.yml
#-------------------------- Elasticsearch output ------------------------------output.elasticsearch:  # Array of hosts to connect to.  hosts: ["Elastic_Stack_server_ip:9200"]...

保存并关闭文件。

您可以使用模块扩展Metricbeat的功能。 在本教程中,您将使用system模块,该模块允许您监视服务器的统计信息,如CPU /内存/磁盘使用情况和网络利用率。

在这种情况下,默认情况下启用system模块。 您可以通过运行以下命令查看启用和禁用模块的列表:

sudo metricbeat modules list

您将看到类似于以下内容的列表:

Enabled:systemDisabled:aerospikeapachecephcouchbasedockerdropwizardelasticsearchenvoyproxyetcdgolanggraphitehaproxyhttpjolokiakafkakibanakuberneteskvmlogstashmemcachedmongodbmuninmysqlnginxphp_fpmpostgresqlprometheusrabbitmqredistraefikuwsgivspherewindowszookeeper

您可以在/etc/metricbeat/modules.d/system.yml配置文件中查看模块的参数。 在本教程中,您无需更改配置中的任何内容。 默认度量标准集是cpuloadmemorynetworkprocessprocess_summary 每个模块都有一个或多个度量集。 度量集是获取和构造数据的模块的一部分。 度量集不是将每个度量收集为单独的事件,而是在对远程系统的单个请求中检索多个相关度量的列表。

现在您可以启动并启用Metricbeat:

sudo systemctl start metricbeatsudo systemctl enable metricbeat

在要收集指标的所有服务器上重复此步骤。 之后,您可以继续下一步,了解如何浏览Kibana的一些仪表板。

第4步 – 探索Kibana仪表板

在此步骤中,您将了解Kibana,即您在“先决条件”部分中安装的Web界面。

在Web浏览器中,转到Elastic Stack服务器的FQDN或公共IP地址。 输入您在Elastic Stack教程的第2步中定义的登录凭据后,您将看到Kibana主页:

Kibana主页

单击左侧导航栏中的“ 发现”链接。 在“ 发现”页面上,选择预定义的meticbeat- *索引模式以查看Metricbeat数据。 默认情况下,这将显示过去15分钟内的所有日志数据。 您将找到直方图和一些指标详细信息:

发现页面

在这里,您可以搜索和浏览指标,还可以自定义信息中心。 但是,此时不会有太多因为您只是从服务器收集系统统计信息。

使用左侧面板导航到仪表板页面并搜索Metricbeat System仪表板。 在那里,您可以搜索Metricbeat system模块附带的示例仪表板。

例如,您可以查看有关所有主机的简要信息:

Syslog仪表板

您还可以单击主机名并查看更多详细信息:

Sudo仪表板

Kibana还有许多其他功能,例如图形和过滤功能,因此您可以随意浏览。

结论

在本教程中,您已安装Metricbeat并配置Elastic Stack以收集和分析系统指标。 Metricbeat附带内部模块 ,可从Apache,Nginx,Docker,MySQL,PostgreSQL等服务中收集指标。 现在,您只需打开所需的模块即可收集和分析应用程序的指标。

如果您想了解有关服务器监控的更多信息,请查看指标简介,监控和警报以及将监控和警报付诸实践

赞(0) 打赏
未经允许不得转载:老赵部落 » 如何在CentOS 7上使用Metricbeat收集基础架构度量标准

评论 抢沙发