使用Metricbeat进行系统信息的可视化

首先

我尝试了将系统信息(CPU使用率、内存使用量等)可视化。在这里,我使用了Kibana、Elasticsearch和Metricbeat。

Metricbeat是什么?

有一个名为Beats的工具,用于收集和发送数据。
Beats有以下6种类型,这里我们将使用Metricbeat。
请参考这个网页(官方页面)获取更多关于Beats的信息。

名前概要Filebeatログファイルの収集MetricbeatCPU,メモリ等の情報収集Packetbeatパケット情報の収集WinlogbeatWindowsのイベントログの収集Auditbeat監査データの収集Heartbeatリモートから稼働状況の監視

2 环境(请提供一个中文选项)

我使用了VMware Workstation 14 Player上的一个虚拟机。

2.1 客户机

[root@centos74 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[root@centos74 ~]# uname -r
3.10.0-693.el7.x86_64

2.2 功能配置

在持客机上,Kibana、Elasticsearch和Metricbeat将会运行。
每个的角色如下所示。

機能役割MetricbeatCPU,メモリ等の情報を収集して、Elasticsearchに送信Elasticsearchデータの保管、検索kibanaElasticsearchに保管されたログデータの可視化
+---- PC -----+  +--------------- Guest Machine(CentOS7.4) -------------------+
|             |  |                                                            |
|             |  | +--- Kibana --+  +-- Elasticsearch --+  +-- Metricbeat --+ |
|             |  | |             |  |                   |  |                | |
|             |  | |             |  |                   |  |                | |
| Web Browser |  | +--[5601]-----+  +-------[9200]------+  +----------------+ |
|    |        |  |      A      |             A  A             |               |
|    |        |  |      |      |             |  |             |               |
|    |        |  |      |      +- localhost -+  +- localhost -+               |
|    |        |  |      |                                                     |
|    |        |  |      |                                                     |
+----|--------+  +---- eth0 --------------------------------------------------+
     |            (192.168.3.20)
     |                  |
     |                  |
     +------------------+

方括号内表示TCP端口号。箭头(—>)表示建立TCP连接的方向。

安装3.

3.1 安装公钥

[root@centos74 ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

3.2 添加代码库

根据官方页面的说明,我已经添加了存储库。
Kibana的rpm软件包将从此存储库获取。

[root@centos74 ~]# vi /etc/yum.repos.d/kibana.repo
[root@centos74 ~]# cat /etc/yum.repos.d/kibana.repo
[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

根据官方页面的说明,我已添加了存储库。
Elasticsearch和Metricbeat的rpm包将从该存储库获取。

[root@centos74 ~]# vi /etc/yum.repos.d/elasticsearch.repo
[root@centos74 ~]# cat /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

3.3 安装软件包

[root@centos74 ~]# yum -y install kibana
[root@centos74 ~]# yum -y install elasticsearch
[root@centos74 ~]# yum -y install metricbeat

修改定义文件

4.1 编辑Elasticsearch定义文件

我已经将network.host从192.168.0.1更改为localhost。

network.hostを192.168.0.1から127.0.0.1に変更する。
[root@centos74 ~]# vi /etc/elasticsearch/elasticsearch.yml
#network.host: 192.168.0.1
network.host: localhost

编辑4.2 Kibana的定义文件

服务器主机已从“localhost”更改为192.168.3.20。

[root@centos74 ~]# vi /etc/kibana/kibana.yml
#server.host: "localhost"
server.host: 192.168.3.20

编辑Metricbeat的定义文件。

我在这里参考了有关编辑Metricbeat定义文件的方法。
我将setup.kibana的host更改如下。

[root@centos74 ~]# vi /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
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "192.168.3.20:5601"

開放 5 个端口编号。

允许通过Web浏览器访问到kibana的5601端口,以便访问到5601端口。

[root@centos74 ~]# firewall-cmd --add-port=5601/tcp
success
[root@centos74 ~]# firewall-cmd --runtime-to-permanent
success
[root@centos74 ~]# firewall-cmd --list-ports
5601/tcp

6 服务启动

[root@centos74 ~]# systemctl start elasticsearch
[root@centos74 ~]# systemctl start kibana
[root@centos74 ~]# systemctl start metricbeat

查阅端口号7的信息。

请参考这里的(使用lsof命令)方法来确认端口号。

[root@centos74 ~]# lsof -i:9200 -nP
COMMAND    PID          USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java      9871 elasticsearch  176u  IPv6  70263      0t0  TCP 127.0.0.1:9200->127.0.0.1:32972 (ESTABLISHED)
java      9871 elasticsearch  177u  IPv6  71032      0t0  TCP 127.0.0.1:9200 (LISTEN)
java      9871 elasticsearch  178u  IPv6  71033      0t0  TCP [::1]:9200 (LISTEN)
java      9871 elasticsearch  179u  IPv6  70268      0t0  TCP 127.0.0.1:9200->127.0.0.1:32974 (ESTABLISHED)
java      9871 elasticsearch  737u  IPv6  71809      0t0  TCP 127.0.0.1:9200->127.0.0.1:32976 (ESTABLISHED)
node      9942        kibana   10u  IPv4  70262      0t0  TCP 127.0.0.1:32972->127.0.0.1:9200 (ESTABLISHED)
node      9942        kibana   12u  IPv4  70267      0t0  TCP 127.0.0.1:32974->127.0.0.1:9200 (ESTABLISHED)
metricbea 9960          root    5u  IPv4  71039      0t0  TCP 127.0.0.1:32976->127.0.0.1:9200 (ESTABLISHED)
[root@centos74 ~]# lsof -i:5601 -nP
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    9942 kibana   11u  IPv4  70234      0t0  TCP 192.168.3.20:5601 (LISTEN)

激活仪表板。

[root@centos74 ~]# metricbeat setup --dashboards
Loaded dashboards

访问 Kibana 的方式是使用 9 的 URL。

9.1 访问 Kibana 的首页

kibana.png

9.2 访问 Kibana 的仪表板

kibana3.png

10个实验

使用stress-ng、stress、iperf3等工具进行负载测试。
然后通过Kibana的仪表板来查看测试期间的情况。

确认10.1的CPU使用率

使用stress-ng命令,在所有安装的CPU上将CPU使用率设置为60%左右。
有关stress-ng命令的使用方法,请参考此处(stress-ng命令的使用方法)。

[root@centos74 ~]# cat /proc/cpuinfo |grep processor
processor       : 0
processor       : 1
processor       : 2
processor       : 3
[root@centos74 ~]# stress-ng -c 4 -l 60
stress-ng: info:  [1502] defaulting to a 86400 second run per stressor
stress-ng: info:  [1502] dispatching hogs: 4 cpu
[root@centos74 ~]# ps -C stress-ng-cpu -o comm,pid,ppid,%cpu
COMMAND            PID   PPID %CPU
stress-ng-cpu     1503   1502 58.9
stress-ng-cpu     1504   1502 59.0
stress-ng-cpu     1505   1502 59.1
stress-ng-cpu     1506   1502 59.0
cpu2.png

确认10.2内存使用量

使用stress命令增加内存使用量。
执行stress命令三次。第一和第二次尝试分别分配256M内存,第三次尝试分配512M内存。
有关stress命令的用法,请参考此处(stress命令的用法)。

[root@centos74 ~]# stress -m 1 --vm-hang 0 -q&
[root@centos74 ~]# stress -m 1 --vm-hang 0 -q&
[root@centos74 ~]# stress -m 1 --vm-bytes 536870912 --vm-hang 0 -q&
[root@centos74 ~]# ps -C stress -o comm,pid,ppid,rss
COMMAND            PID   PPID   RSS
stress            1668   1026   424
stress            1669   1668 262296 ★256M使用
stress            1676   1466   424
stress            1677   1676 262376 ★256M使用
stress            1692   1466   424
stress            1693   1692 524456 ★512M使用
mem1.png

11.3 网络负荷的确认

使用iperf3命令,试着施加入站(接收)网络负载。有关iperf3命令的使用方法,请参考此处(iperf3命令的使用方法)。

centos74,centos72はホスト名です。centos74でKibanaが動作しています。
centos72からcentos74に対してTCPパケットを送信します。
             192.168.3.0/24
centos72 ----------------------- centos74
       .30                     .20
[root@centos74 ~]# iperf3 -s
[root@centos72 ~]# iperf3 -c 192.168.3.20 -t 600
net1.png
net2.png

Y笔记

Y.1 Logstash 日志处理引擎

根据官方页面显示,Logstash需要Java 8。

[root@centos74 ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

启用或禁用Y.2 Metricbeat模块的方法。

モジュールの有効、無効は/etc/metricbeat/modules.dで行います。
[root@centos74 modules.d]# pwd
/etc/metricbeat/modules.d

apacheモジュールが無効になっていることがわかる。
[root@centos74 modules.d]# ls apache.yml*
apache.yml.disabled

apacheモジュールを有効にする。
[root@centos74 modules.d]# metricbeat modules enable apache
Enabled apache

apacheモジュールが有効になったことがわかる。
[root@centos74 modules.d]# ls apache.yml*
apache.yml

apacheモジュールを無効にする。
[root@centos74 modules.d]# metricbeat modules disable apache
Disabled apache

apacheモジュールが無効になったことがわかる。
[root@centos74 modules.d]# ls apache.yml*
apache.yml.disabled

以下是Z的参考信息。

通过使用Elasticsearch、Logstash和Kibana对日志进行可视化,介绍了如何提取有价值的信息。

广告
将在 10 秒后关闭
bannerAds