本文配置环境

根据 Elastic Stack 系统要求,我们的服务器配置如下:

  • CPU - 3.4 Ghz(双核)
  • 内存 - 2 GB
  • 存储 - 20 GB
  • 操作系统 - CentOS 7.6
  • Java 版本 - OpenJDK 1.8
  • 主机名 - elasticsearch-01.onitroad.com
  • IP 地址 - 192.168.1.187 /24

在 CentOS 7 上安装 Filebeat 7.2

Filebeat 是一个将日志发送到 Logstash 的代理。
Filebeat 在 Elasticsearch yum 存储库中也可用。

因为,我们安装在同一台服务器上(elasticsearch-01.onitroad.com),因此,我们已经在这台服务器上安装了 Elasticsearch yum 存储库。
否则,在其他 CentOS 7 机器上安装 Filebeat 之前,我们必须安装 Elasticsearch yum 存储库。

使用 yum 命令安装 Filebeat 7.2.

[root@elasticsearch-01 ~]# yum install -y filebeat

编辑 Filebeat 配置文件。

[root@elasticsearch-01 ~]# vi /etc/filebeat/filebeat.yml

找到并启用 filebeat.input 部分。

#=========================== Filebeat inputs =============================
filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*

找到并注释 output.elasticsearch 部分中的所有行。

#-------------------------- Elasticsearch output -----------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

找到并取消注释 output.logstash 部分,如下所示。

#----------------------------- Logstash output -------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]
  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"
  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

启用并启动 Filebeat 服务。

[root@elasticsearch-01 ~]# systemctl enable --now filebeat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/filebeat.service to /usr/lib/systemd/system/filebeat.service.

Filebeat 7.2 安装并配置在同一台 CentOS 7 服务器上。

在 CentOS 7 上安装 Kibana 7.2

Kibana 7.2 可以使用 yum 命令从 Elasticsearch yum 存储库安装。

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

如下配置 Kibana 设置。

[root@elasticsearch-01 ~]# cat >> /etc/kibana/kibana.yml << EOF
> server.port: 5601
> server.host: "0.0.0.0"
> server.name: "elasticsearch-01.onitroad.com"
> elasticsearch.hosts: ["http://localhost:9200"]
> EOF

启用并启动 Kibana 服务。

[root@elasticsearch-01 ~]# systemctl enable --now kibana
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.

在 Linux 防火墙中允许 Kibana 服务端口。

[root@elasticsearch-01 ~]# firewall-cmd --permanent --add-port=5601/tcp
success
[root@elasticsearch-01 ~]# firewall-cmd --reload
success

Kibana 7.2 已经安装并配置在我们的 CentOS 7 服务器上。

更多: zhilu jiaocheng

在 CentOS 7 上安装 Elasticsearch 7.2:

使用 yum 命令安装 Elasticsearch 7.2.

[root@elasticsearch-01 ~]# yum install -y elasticsearch

为 Elasticsearch 配置 JVM(Java 虚拟机)选项,如下所示。

[root@elasticsearch-01 ~]# vi /etc/elasticsearch/jvm.options

查找并设置以下参数。

-Xms256m
-Xmx512m

启用并启动 Elasticsearch 服务。

[root@elasticsearch-01 ~]# systemctl daemon-reload
[root@elasticsearch-01 ~]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
[root@elasticsearch-01 ~]# systemctl start elasticsearch.service

在 SELinux Policy 中添加 Elasticsearch 服务端口 9200/tcp 如下。

[root@elasticsearch-01 ~]# semanage port -m -t http_port_t 9200 -p tcp

测试 Elasticsearch 配置。

[root@elasticsearch-01 ~]# curl http://127.0.0.1:9200
{
  "name" : "elasticsearch-01.onitroad.com",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AkTQvcFiSwawa7mGqcH5hA",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch 7.2 已安装在我们的 CentOS 7 服务器上。

如果在启动 Elasticsearch 服务期间出现任何错误,请检查 /var/log/elasticsearch/gc.log 以获取详细信息和故障排除。

在 CentOS 7 上安装 Logstash

Logstash 用于为网络中的其他服务器设置集中式日志服务器。

Logstash 7.2 也可在 Elasticsearch yum 存储库中使用。
因此,我们可以使用 yum 命令轻松安装它。

[root@elasticsearch-01 ~]# yum install -y logstash

如下配置Logstash。

[root@elasticsearch-01 ~]# cat > /etc/logstash/conf.d/logstash.conf << EOF
> input {
>  beats {
>    port => 5044
>    ssl => false
>    }
> }
>
> filter {
> if [type] == "syslog" {
>     grok {
>       match => { "message" => "%{SYSLOGLINE}" }
>     }
>
>     date {
> match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
> }
>   }
> }
>
> output {
>  elasticsearch {
>   hosts => localhost
>     index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
>        }
> stdout {
>     codec => rubydebug
>        }
> }
> EOF

启用并启动 Logstash 服务。

[root@elasticsearch-01 ~]# systemctl enable logstash.service
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.
[root@elasticsearch-01 ~]# systemctl start logstash.service

检查 /var/log/logstash/logstash-plain.log 以排除 Logstash 服务错误。

在 Linux 防火墙中允许 Logstash 服务端口。

[root@elasticsearch-01 ~]# firewall-cmd --permanent --add-port=5044/tcp
success
[root@elasticsearch-01 ~]# firewall-cmd --reload
success

Logstash 7.2 已在我们的 CentOS 7 服务器上安装和配置。

测试我们的 Elastic Stack 配置:

在客户端浏览器中浏览 Kibana Web 界面 http://elasticsearch-01.onitroad.com:5601.

单击使用自己的数据。

单击左侧工具列下的管理图标。

单击 Kibana 部分下的索引模式。

单击创建索引模式。

单击 > 下一步。

单击创建索引。

单击左侧工具列下的发现图标。

我们已经在 CentOS 7 服务器上成功安装了 Elastic Stack 7.2.

在 CentOS 7 上安装 Elastic Stack 必备组件 - Java

OpenJDK 8 在标准 yum 存储库中可用。
因此,我们使用 yum 命令安装 OpenJDK 8.

[root@elasticsearch-01 ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
在 CentOS 7 上安装 Elastic Stack 7.2

Elastic Stack(原 ELK Stack)是一种流行的 Log Analytics 解决方案,由三个开源软件组件组成,例如:Elasticsearch、Logstash 和 Kibana。

Elasticsearch 是一个基于 Lucene 库的搜索引擎。

Elasticsearch 是一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 界面和无模式 JSON 文档。

Logstash 是一个服务器端数据处理管道,它同时接收来自多个源的数据,对其进行转换,然后将其发送到 Elasticsearch。

Kibana 是一个用于 Elasticsearch 的开源数据可视化插件。

它在 Elasticsearch 集群上索引的内容之上提供可视化功能。
用户可以在大量数据的基础上创建条形图、折线图和散点图,或者饼图和地图。

在本文中,我们将在 CentOS 7 服务器上安装 Elastic Stack 7.2.

在 CentOS 7 上安装 Elasticsearch Yum 存储库

Elasticsearch 文档中提供了安装 Elasticsearch Yum Repository 的过程。

我们还可以使用相同的过程为以前版本的 Elastic stack 安装 yum 存储库。

下载并安装公共签名密钥,如下所示。

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

创建一个新的 yum 配置文件以在 CentOS 7 上安装 Elasticsearch Yum Repository。

[root@elasticsearch-01 ~]# cat > /etc/yum.repos.d/elasticsearch.repo << EOF
> [elasticsearch-7.x]
> name=Elasticsearch 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
> EOF

为 Elasticsearch Yum 存储库构建缓存。

[root@elasticsearch-01 ~]# yum makecache fast

我们已经成功安装了 Elasticsearch Yum Repository。
我们现在可以在 CentOS 7 服务器上安装Elastic stack组件。

Elastic stack系统要求

Elastic stack(Elasticsearch、Logstash 和 Kibana)的硬件要求取决于日志源的数量和生成的日志量。
Elasticsearch 文档中提到了一些推荐的硬件规格。

弹性堆栈需要 JVM(Java 虚拟机)才能运行。
因此,我们必须在 CentOS 7 服务器上安装受支持的 JDK(Java 开发工具包)版本。

日期:2020-09-17 00:16:36 来源:oir作者:oir