使用ELK Stack监视Linux系统指标

在本教程中,您将学习如何使用ELK Stack监视Linux系统指标。 ELK堆栈,或者您可以根据需要使用弹性堆栈在Metricbeat的帮助下监视Linux系统指标。 公制节拍 是用于系统指标的轻量级托运人。它可以收集系统级CPU使用率,内存,文件系统,磁盘IO和网络IO统计信息,以及系统上运行的每个进程的顶级统计信息,并将它们运送到Elasticsearch进行索引,以通过可视化工具进行可视化像基巴纳一样。

使用ELK Stack监视Linux系统指标

安装和设置ELK堆栈

为了能够使用ELK Stack监视Linux系统指标,您需要已经设置并正在运行ELK堆栈。 ELK Stack的设置超出了本指南的范围,但是,您可以按照下面的链接安装和设置ELK Stack

在Ubuntu 20.04上安装ELK Stack

在CentOS 8上安装ELK Stack

在Docker容器上部署单节点弹性堆栈集群

在Fedora 30 / Fedora 29 / CentOS 7上安装Elastic Stack 7

在Linux系统中安装Metricbeat

在本教程中,我们将使用CentOS 8和Ubuntu 20.04系统进行演示。

在Ubuntu 20.04上安装Metricbeat

您可以从官方的Elastic仓库中安装Metricbeat,也可以直接使用Metricbeat DEB二进制文件安装。在此设置中,我们使用前一种方法。

安装弹性堆栈回购公共签名密钥:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

在Ubuntu 20.04上安装Elastic stack repo;

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

更新包缓存;

apt update

在Ubuntu 20.04上安装Metricbeat;

apt install metricbeat

在CentOS 8上安装Metricbeat

同样,您可以使用RPM二进制文件或直接从Elastic stack repos在CentOS 8上安装Metricbeat。为了方便起见,我们从弹性堆栈存储库中安装它;

安装弹性堆栈回购公共签名密钥:

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

在CentOS 8上安装Elastic stack repo;

cat << EOL > /etc/yum.repos.d/elasticstack.repo 
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOL

更新包缓存;

dnf update

在Ubuntu 20.04上安装Metricbeat;

dnf install metricbeat

配置Metricbeat以收集各种系统指标

指标安装完成后,将其配置为收集各种系统指标,然后根据您的设置将其运送到Elasticsearch或Logstash。

在Linux中配置Metricbeat

首先,配置Metricbeat输出。在此设置中,我们将Metricbeat数据直接发送到运行在远程主机上的Elasticsearch。这样,编辑Metricbeat配置文件并定义Elasticsearch输出。

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

如果您是将度量标准数据发送到Logstash,请注释Elasticsearch输出配置并启用Logstash输出,如下所示;

...
# ---------------------------- Elasticsearch Output ----------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
  #hosts: ["192.168.57.30:9200"]

  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"

# ------------------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]
  hosts: ["192.168.57.30:5044"]

配置Kibana端点

如果要使用Metricbeat预先构建的Kibana仪表板,并且Kibana和Elasticsearch都在单独的主机上运行,​​则需要手动加载该仪表板。因此,您需要配置Kibana端点。否则,如果Kibana和Elasticsearch在同一主机上运行,​​则无需配置Kibana端点,可以放心地忽略此配置。

vim /etc/metricbeat/metricbeat.yml
...
# =================================== Kibana ===================================

# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:

  # Kibana Host
  #host: "localhost:5601"
  host: "192.168.57.30:5601"

配置Metricbeat日志记录

为确保Metricbeat登录到其特定文件而不是syslog(/ var / log / syslog,/ var / log / messages),请在配置文件中输入以下几行:

# ================================= Logging ====================================
logging.level: info
logging.to_files: true
logging.files:
  path: /var/log/metricbeat
  name: metricbeat
  keepfiles: 7
  permissions: 0644

保存并退出配置。

启用和配置指标收集模块

Metricbeat附带了十二个模块,使它能够收集特定的服务指标。您可以通过运行以下命令列出模块;

metricbeat modules list

该命令显示启用和禁用的模块;

Enabled:
system

Disabled:
activemq
aerospike
apache
...

要启用模块,只需运行;

metricbeat modules enable <module-name>

您可以从上面的列表中获得模块名称。

同样,禁用模块;

metricbeat modules disable <module-name>

在此设置中,我们使用已启用的Metricbeat系统模块。该模块收集以下指标集; cpu ,load ,memory ,network ,process ,process_summary ,socket_summary ,entropy ,core ,diskio ,socket ,service ,users

如果要修改模块,只需打开文件, /etc/metricbeat/modules.d/system.yml,用于编辑。

负载度量Kibana仪表板/ Elasticsearch索引模板

您可以执行以下命令,加载推荐的索引模板以写入Elasticsearch,并部署示例仪表板以可视化Kibana中的Metricbeat数据;

metricbeat setup -e

如果您使用Logstash或任何其他处理引擎而不是将Elasticsearch用作输出,则需要将索引模板手动加载到Elasticsearch中。这需要直接连接到Elasticsearch。以下命令用于将索引模板手动加载到Elasticsearch(它暂时禁用Logstash输出)。

metricbeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['192.168.57.30:9200'] -E setup.kibana.host=192.168.57.30:5601

在Linux系统中运行Metricbeat

完成Metricbeat的安装和配置后,您可以启动并启用Metricbeat服务以在系统引导时运行;

systemctl enable --now metricbeat

检查状态;

systemctl status metricbeat
● metricbeat.service - Metricbeat is a lightweight shipper for metrics.
     Loaded: loaded (/lib/systemd/system/metricbeat.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-26 20:03:35 UTC; 2s ago
       Docs: https://www.elastic.co/products/beats/metricbeat
   Main PID: 95897 (metricbeat)
      Tasks: 9 (limit: 2281)
     Memory: 23.6M
     CGroup: /system.slice/metricbeat.service
             └─95897 /usr/share/metricbeat/bin/metricbeat --environment systemd -c /etc/metricbeat/metricbeat.yml --path.home /usr/share/metricbeat --path.config /etc/metr>

Nov 26 20:03:35 solr.kifarunix-demo.com systemd[1]: Started Metricbeat is a lightweight shipper for metrics..

查看Kibana中的Metricbeat数据

导航到您的Elastic stack仪表板并创建Kibana Metricbeat索引,以使您能够查看和可视化指标数据。如果您已载入 metricbeat setup 上面的命令

Metricbeat原始数据

在“发现”导航下,选择 metricbeat-* 索引以查看Metricbeat原始数据。相应地调整时间范围。


Metricbeat系统概述仪表板

在侧面导航中,单击 仪表板,然后选择要打开的仪表板。例如, [Metricbeat System] Host overview ECS

使用ELK Stack监视Linux系统指标
使用ELK Stack监视Linux系统指标
查看度量标准应用程序可视化

在侧面导航中,导航到 可观察性>指标。下 库存,您会看到可用的主机。

使用ELK Stack监视Linux系统指标

单击特定主机以查看其指标;

使用ELK Stack监视Linux系统指标

这标志着本教程有关如何使用ELK Stack监视Linux系统指标的教程的结尾。

参考

Metricbeat快速入门:安装和配置

Sidebar