使用Metricbeat进行系统信息的可视化
首先
我尝试了将系统信息(CPU使用率、内存使用量等)可视化。在这里,我使用了Kibana、Elasticsearch和Metricbeat。
Metricbeat是什么?
有一个名为Beats的工具,用于收集和发送数据。
Beats有以下6种类型,这里我们将使用Metricbeat。
请参考这个网页(官方页面)获取更多关于Beats的信息。
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将会运行。
每个的角色如下所示。
+---- 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 的首页
9.2 访问 Kibana 的仪表板
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
确认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使用
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
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对日志进行可视化,介绍了如何提取有价值的信息。