如何在CentOS 7上安装Elasticsearch,Logstash和Kibana

介绍

在本教程中,我们将介绍在CentOS 7上安装Elasticsearch ELK Stack,即Elasticsearch 2.2.xLogstash 2.2.xKibana 4.4.x. 我们还将向你展示如何使用Filebeat 1.1.x将其配置为在集中位置收集和可视化系统的syslogLogstash是一个用于收集,解析和存储日志以供将来使用的开源工具。 Kibana是一个Web界面,可用于搜索和查看Logstash已编入索引的日志。 这两个工具都基于Elasticsearch,用于存储日志。

在尝试识别服务器或应用程序的问题时,集中日志记录非常有用,因为它允许你在一个位置搜索所有日志。它也很有用,因为它允许你通过在特定时间范围内关联其日志来识别跨多个服务器的问题。

可以使用Logstash收集所有类型的日志,但我们将本教程的范围限制为syslog收集。

我们的目标

本教程的目标是设置Logstash以收集多个服务器的syslog,并设置Kibana以可视化收集的日志。

我们的ELK堆栈设置有四个主要组件:

· LogstashLogstash的服务器组件,用于处理传入的日志

· Elasticsearch:存储所有日志

· Kibana:用于搜索和可视化日志的Web界面,将通过Nginx进行代理

· Filebeat:安装在将日志发送到Logstash的客户端服务器上,Filebeat用作利用lumberjack网络协议与Logstash通信的日志传送代理

我们将在单个服务器上安装前三个组件,我们将其称为ELK服务器Filebeat将安装在我们要收集日志的所有客户端服务器上,我们将统称为客户端服务器

准备

在本教程中,要赢root用户登陆到CentOS 7的服务器上。

ELK服务器的配置,是根据你需要收集的数据量的大小来决定的。在这次的教程中,服务器的配置如下:

  • 操作系统:CentOS 7
  • 内存:4GB
  • CPU:2

我建议你使用腾讯云免费的开发者专属在线实验平台进行试验。

让我们开始设置我们的ELK服务器!

安装Java 8

在安装ElasticsearchLogstash前需要先安装Java,我们现在来安装它。我们要安装最新版本的Oracle Java 8,因为这是Elasticsearch推荐的。但是,如果你决定使用OpenJDK,那么它应该可以很好地工作。遵循本节中的步骤意味着你要接受Java SE的Oracle二进制许可协议。

切换到你的主目录并使用以下命令下载Oracle Java 8(更新73,撰写本文时的最新版本)JDK RPM

代码语言:txt
复制
cd ~
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm"

yum命令安装RPM(如果你下载了其他版本,请替换文件名):

代码语言:txt
复制
sudo yum -y localinstall jdk-8u73-linux-x64.rpm

现在Java应该安装在/usr/java/jdk1.8.0_73/jre/bin/java,并从/usr/bin/java中链接。

删除先前下载的文件:

代码语言:txt
复制
rm ~/jdk-8u*-linux-x64.rpm

现在已经安装了Java 8,让我们安装ElasticSearch

安装Elasticsearch

添加Elastic的包存储库,就可以安装Elasticsearch

先运行以下命令将Elasticsearch公共GPG密钥导入rpm

代码语言:txt
复制
sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Elasticsearch创建一个新的yum存储库文件。请注意,这是一个命令:

代码语言:txt
复制
echo '[elasticsearch-2.x]

name=Elasticsearch repository for 2.x packages

baseurl=http://packages.elastic.co/elasticsearch/2.x/centos

gpgcheck=1

gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch

enabled=1

' | sudo tee /etc/yum.repos.d/elasticsearch.repo

使用以下命令安装Elasticsearch

代码语言:txt
复制
sudo yum -y install elasticsearch

Elasticsearch现已安装。让我们编辑配置:

代码语言:txt
复制
sudo vi /etc/elasticsearch/elasticsearch.yml

你需要限制对Elasticsearch实例(端口9200)的外部访问,因此外人无法通过HTTP API读取你的数据或关闭你的Elasticsearch集群。找到network.host,取消注释,并将其值替换为“localhost”,使其如下所示:

代码语言:txt
复制
network.host: localhost

保存并退出elasticsearch.yml

现在启动Elasticsearch

代码语言:txt
复制
sudo systemctl start elasticsearch

然后运行以下命令以在启动时自动启动Elasticsearch

代码语言:txt
复制
sudo systemctl enable elasticsearch

现在Elasticsearch已启动并运行,接下来安装Kibana

安装Kibana

Kibana软件包与Elasticsearch共享相同的GPG密钥,我们已经安装了该公钥。

Kibana创建和编辑新的yum存储库文件:

代码语言:txt
复制
sudo vi /etc/yum.repos.d/kibana.repo

添加以下存储库配置:

代码语言:txt
复制
/etc/yum.repos.d/kibana.repo

[kibana-4.4]

name=Kibana repository for 4.4.x packages

baseurl=http://packages.elastic.co/kibana/4.4/centos

gpgcheck=1

gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch

enabled=1

保存并退出。

安装Kibana

代码语言:txt
复制
sudo yum -y install kibana

打开Kibana配置文件进行编辑:

代码语言:txt
复制
sudo vi /opt/kibana/config/kibana.yml

Kibana配置文件中,找到server.host,把后面的值改成“localhost”(默认情况下为“0.0.0.0”):

代码语言:txt
复制
server.host: "localhost"

保存并退出。此设置使得Kibana只能被本地主机访问。这很好,因为我们将在同一台服务器上安装一个Nginx反向代理,以允许外部访问。

现在启动Kibana服务,并启用它:

代码语言:txt
复制
sudo systemctl start kibana
sudo chkconfig kibana on

在我们使用Kibana Web界面之前,我们必须设置反向代理。我们现在就用Nginx来做。

安装Nginx

因为我们把Kibana配置成监听localhost,所以我们必须设置反向代理以允许外部访问它。这个时候就要用到Nginx

注意:如果你已经有了一个想要使用的Nginx实例,请随意使用它。只要确保配置Kibana,它就可以被Nginx服务器访问(也可以修改/opt/ Kibana /config/ KibanaHost。替换你的Kibana服务器的私有IP地址)。另外,建议你启用SSL/TLS。

安装EPEL

代码语言:txt
复制
sudo yum -y install epel-release

安装Nginxhttpd-tools

代码语言:txt
复制
sudo yum -y install nginx httpd-tools

使用htpasswd创建一个名为“kibanaadmin”的管理员用户(也换一个你喜欢的名字),该用户可以访问Kibana Web界面:

代码语言:txt
复制
sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin

在提示符下输入密码。请记住密码,后面还要用到。

vi或者其他你喜欢的编辑器打开Nginx配置文件。:

代码语言:txt
复制
sudo vi /etc/nginx/nginx.conf

找到默认服务器块(以server {开头),文件中的最后一个配置块,然后将其删除。完成后,文件中的最后两行应如下所示:

代码语言:txt
复制
include /etc/nginx/conf.d/*.conf;

}

保存并退出。

现在我们将在一个新文件中创建一个Nginx服务器块:

代码语言:txt
复制
sudo vi /etc/nginx/conf.d/kibana.conf

把下面这些代码粘贴进去。想对应的server_name改成你的服务器的名称:

代码语言:txt
复制
server {
listen 80;

server_name example.com;

auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;

location / {
    proxy_pass http://localhost:5601;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;       
}

}

保存并退出。 这会将Nginx配置为:服务器的HTTP流量定向到Kibana应用程序,该应用程序正在监听localhost:5601。 此外,Nginx将使用我们之前创建的htpasswd.users文件,并需要基本身份验证。

现在启动并启用Nginx以使我们的更改生效:

代码语言:txt
复制
sudo systemctl start nginx
sudo systemctl enable nginx

注意:本教程假定SELinux已禁用。如果不是这种情况,你可能需要运行以下命令才能使Kibana正常工作:sudo setsebool -P httpd_can_network_connect 1

现在可以通过你的FQDN或ELK服务器的公共IP地址访问Kibana,即http//elk\ server \ public\ip /。如果你在Web浏览器中访问,在输入“kibanaadmin”的密码后,你应该会看到一个Kibana欢迎页面,该页面将要求你配置索引模式。在我们安装所有其他组件之后,让我们回过头来看看。

安装Logstash

Logstash包与Elasticsearch共享相同的GPG Key,我们已经安装了该公钥,所以让我们为Logstash创建和编辑一个新的Yum存储库文件:

代码语言:txt
复制
sudo vi /etc/yum.repos.d/logstash.repo

添加以下存储库配置:

代码语言:txt
复制
/etc/yum.repos.d/logstash.repo

[logstash-2.2]

name=logstash repository for 2.2 packages

baseurl=http://packages.elasticsearch.org/logstash/2.2/centos

gpgcheck=1

gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch

enabled=1

保存并退出。

安装Logstash

代码语言:txt
复制
sudo yum -y install logstash

已安装Logstash但尚未配置。

生成SSL证书

由于我们将使用Filebeat将日志从我们的客户端服务器发送到ELK服务器,因此我们需要创建SSL证书和密钥对。Filebeat使用该证书来验证ELK服务器的身份。使用以下命令创建将存储证书和私钥的目录:

现在,你有两种生成SSL证书的选项。一种是有域名的情况,可以直接查看选项2;另一种就是没有域名,只有IP地址,那么请看选项1。

选项一:IP地址

如果你没有DNS设置 - 解析你的ELK服务器的IP地址,然后允许你的服务器收集日志,所以 你必须将你的ELK服务器的私有IP地址添加到subjectAltName(SAN)我们即将生成的SSL证书字段。为此,请打开OpenSSL配置文件:

代码语言:txt
复制
sudo vi /etc/pki/tls/openssl.cnf

找到文件中的v3_ca部分,并在其下添加此行(替换为ELK服务器的专用IP地址):

代码语言:txt
复制
openssl.cnf excerpt
subjectAltName = IP: ELK_server_private_ip

保存并退出。

生成SSL证书和私钥(你也换到其他位置生成SSL证书和私钥):

代码语言:txt
复制
cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

logstash-forwarder.crt文件将被复制到所有将日志发送到Logstash服务器,但我们会做到这一点稍晚。让我们完成Logstash配置。如果你使用此选项,请跳过选项2并继续配置Logstash

选项2:FQDN(DNS)

如果你使用专用网络进行DNS设置,则应创建包含ELK服务器专用IP地址的A记录 - 该域名将在下一个命令中使用,以生成SSL证书。或者,你可以使用指向服务器的公共IP地址的记录。只需确保你的服务器(你将从中收集日志的服务器)能够将域名解析为你的ELK服务器。

现在使用以下命令(在ELK服务器的FQDN中替换)在适当的位置生成SSL证书和私钥:

代码语言:txt
复制
cd /etc/pki/tls
sudo openssl req -subj '/CN=ELK_server_fqdn/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

logstash-forwarder.crt文件将被复制到将日志发送到Logstash的所有服务器,但我们稍后会这样做。 让我们完成Logstash配置。 如果你使用此选项,请跳过选项2并继续配置Logstash

这个步骤主动生成SSL证书,在这里推荐可以使用腾讯云的免费SSL证书,获取到腾讯云的免费SSL证书后,可以直接把证书存到新建的用于存放证书的文件中。点击申请免费的腾讯云SSL证书。

配置Logstash

Logstash配置文件采用JSON格式,驻留在/etc/logstash/conf.d中。配置由三部分组成:输入,过滤器和输出。

让我们创建一个名为的02-beats-input.conf配置文件并设置我们的“filebeat”输入:

代码语言:txt
复制
sudo vi /etc/logstash/conf.d/02-beats-input.conf

粘贴到文件中:

代码语言:txt
复制
02-beats-input.conf

input {

beats {

port => 5044

ssl => true

ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"

ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"

}

}

保存并退出。这指定了beats监听5044端口上的tcp输入,它将使用我们之前创建的SSL证书和私钥。

现在让我们创建一个名为的配置文件10-syslog-filter.conf,我们将为syslog消息添加一个过滤器:

代码语言:txt
复制
sudo vi /etc/logstash/conf.d/10-syslog-filter.conf

把下面的内容粘贴进去

代码语言:txt
复制
filter {

if [type] == "syslog" {

grok {

  match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }

  add_field => [ "received_at", "%{@timestamp}" ]

  add_field => [ "received_from", "%{host}" ]

}

syslog_pri { }

date {

  match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]

}

}

}

保存并退出。 此过滤器查找标记为“syslog”类型的日志(通过Filebeat),它将尝试使用grok解析传入的syslog日志,使其具有结构化和可查询性。

最后,我们将创建一个名为30-elasticsearch-output.conf的配置文件:

代码语言:txt
复制
sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf

同样的,把下面的内容粘贴进去:

代码语言:txt
复制
output {

elasticsearch {

hosts => ["localhost:9200"]

sniffing => true

manage_template => false

index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"

document_type => "%{[@metadata][type]}"

}

}

保存并退出。 此输出基本上配置Logstash以将节拍数据存储在Elasticsearch中,该数据在localhost9200中运行,在以使用的节拍命名的索引中(在我们的示例中为filebeat)。

如果要为使用Filebeat输入的其他应用程序添加过滤器,请确保命名文件,以便它们在输入和输出配置之间进行排序(即在02-和30-之间)。

使用以下命令测试Logstash配置:

代码语言:txt
复制
sudo service logstash configtest

如果没有语法错误,它应该显示配置OK。

重启Logstash

代码语言:txt
复制
sudo service logstash configtest

如果没有语法错误,它应该显示Configuration OK

重新启动并启用Logstash

代码语言:txt
复制
sudo systemctl restart logstash
sudo chkconfig logstash on

接下来,我们将加载Kibana仪表板。

加载Kibana仪表板

Elastic提供了几个Kibana仪表板和Beats索引模式,可以帮助你开始使用Kibana。虽然我们不会在本教程中使用仪表板,但我们仍会加载它们,因此我们可以使用它包含的Filebeat索引模式。

首先,将示例仪表板存档下载到你的主目录:

使用以下命令安装unzip软件包:

代码语言:txt
复制
sudo yum -y install unzip

接下来,提取存档的内容:

代码语言:txt
复制
unzip beats-dashboards-.zip

并使用以下命令将示例仪表板,可视化和Beats索引模式加载到Elasticsearch中:

代码语言:txt
复制
cd beats-dashboards-
./load.sh

这些是我们刚刚加载的索引模式:

· packetbeat- YYYY.MM.DD

· topbeat- YYYY.MM.DD

· filebeat- YYYY.MM.DD

· winlogbeat- YYYY.MM.DD

当我们开始使用Kibana时,我们将选择Filebeat索引模式作为默认值。

在Elasticsearch中加载Filebeat索引模板

因为我们计划使用Filebeat将日志发送到Elasticsearch,所以我们应该加载Filebeat索引模板。 索引模板将配置Elasticsearch以智能方式分析传入的Filebeat字段。

首先,将Filebeat索引模板下载到你的主目录:

然后使用以下命令加载模板:

代码语言:txt
复制
curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json

如果模板正确加载,你应该看到如下消息:

代码语言:txt
复制
{

"acknowledged" : true

}

现在我们的ELK服务器已准备好接收Filebeat数据,让我们转到在每个客户端服务器上设置Filebeat

设置Filebeat(添加客户端服务器)

对要将日志发送到ELK服务器的每个CentOS或RHEL 7服务器执行以下步骤。

复制SSL证书

ELK服务器上,将准备教程中创建的SSL证书复制到客户端服务器(替换客户端服务器的地址和你自己的登录名):

代码语言:txt
复制
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

提供登录密码后,请确保证书副本成功。它是客户端服务器和ELK服务器之间通信所必需的。

现在,在你的客户端服务器上,将ELK服务器的SSL证书复制到适当的位置(/etc/pki/tls/certs):

代码语言:txt
复制
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

现在我们将安装Topbeat包。

安装Filebeat包

客户端服务器上,创建运行以下命令以将Elasticsearch公共GPG密钥导入rpm

代码语言:txt
复制

Filebeat创建和编辑新的yum存储库文件:

代码语言:txt
复制
sudo vi /etc/yum.repos.d/elastic-beats.repo

把下面内容粘贴进去:

代码语言:txt
复制
[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

保存并退出。

安装Filebeat

代码语言:txt
复制
sudo yum -y install filebeat

Filebeat已安装,但尚未配置。

配置Filebeat

现在我们将配置Filebeat来连接到ELK服务器上的Logstash。本节将指导你修改Filebeat附带的示例配置文件。完成这些步骤后,你应该有一个类似于此的文件。

Client Server上,创建和编辑Filebeat配置文件:

代码语言:txt
复制
sudo vi /etc/filebeat/filebeat.yml

注意: Filebeat的配置文件是YAML格式,这意味着缩进非常重要!请务必使用这些说明中指示的相同数量的空格。

在文件顶部附近,可以看到prospectors部分,你可以在其中定义探测器,指定应该发送哪些日志文件以及如何处理它们。每个prospectors都由-角色指示。

我们将修改现有的prospector,将安全和消息日志发送到Logstash。 在路径下,注释 - /var/log/*.log文件。 这将阻止Filebeat将该目录中的每个.log发送到Logstash。 然后为syslog和auth.log添加新条目。 完成后它应该看起来像这样:

代码语言:txt
复制
...
paths:

    - /var/log/secure

    - /var/log/messages

# - /var/log/*.log
...

然后找到指定的行document_type:,取消注释并将其值更改为“syslog”。修改后应该如下所示:

代码语言:txt
复制
...

  document_type: syslog

...

这指定此prospector中的日志是syslog类型(这是我们的Logstash过滤器正在查找的类型)。

如果要将其他文件发送到ELK服务器,或者对Filebeat如何处理日志进行任何更改,请随时修改或添加prospector条目。

接下来,在输出部分下,找到elasticsearch:,它表示Elasticsearch输出部分(我们不打算使用它)。 删除或注释掉整个Elasticsearch输出部分。

找到注释掉的Logstash输出部分,即#logstash:,删除前面的取消注释。 在本节中,取消注释hosts:[“localhost5044”]。 将localhost更改为ELK服务器的专用IP地址(或主机名,如果使用该选项):

代码语言:txt
复制
  ### Logstash as output

logstash:

# The Logstash hosts

hosts: [&#34;ELK_server_private_IP:5044&#34;]</code></pre></div></div><p>这会将<code>Filebeat</code>配置为在端口<code>5044</code>(我们之前为其指定输入的端口)连接到ELK服务器上的Logstash。</p><p>直接在<code>hosts</code>条目下,并使用相同的缩进,添加以下行:</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">    bulk_max_size: 1024</code></pre></div></div><p>接下来,找到该<code>tls</code>部分,并取消注释。然后取消注释<code>certificate_authorities</code>,并将其值更改为<code>&#34;/etc/pki/tls/certs/logstash-forwarder.crt&#34;</code>。它应该看起来像这样:</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">...

tls:

  # List of root certificates for HTTPS server verifications

  certificate_authorities: [&#34;/etc/pki/tls/certs/logstash-forwarder.crt&#34;]</code></pre></div></div><p>这会将<code>Filebeat</code>配置为使用我们在ELK服务器上创建的<code>SSL</code>证书。</p><p>保存并退出。</p><p>现在启动并启用Filebeat将我们的更改放到位:</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">sudo systemctl start filebeat

sudo systemctl enable filebeat

同样,如果你不确定Filebeat配置是否正确,请将其与此示例Filebeat配置进行比较。

现在Filebeat正在将你的系统日志消息和安全文件发送到你的ELK服务器! 对要为其收集日志的所有其他服务器重复此部分。

测试文件安装

如果你的ELK堆栈设置正确,Filebeat(在客户端服务器上)应该将你的日志传送到ELK服务器上的LogstashLogstash应该在带有日期戳的索引filebeat-YYYY.MM.DD中将Filebeat数据加载到Elasticsearch中。

ELK服务器上,通过使用以下命令查询Filebeat索引,验证Elasticsearch是否确实正在接收数据:

代码语言:txt
复制
curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

你应该看到一堆看起来像这样的输出:

代码语言:txt
复制
{
"_index" : "filebeat-2016.01.29",
"_type" : "log",
"_id" : "AVKO98yuaHvsHQLa53HE",
"_score" : 1.0,
"_source":{"message":"Feb 3 14:34:00 rails sshd[963]: Server listening on :: port 22.","@version":"1","@timestamp":"2016-01-29T19:59:09.145Z","beat":{"hostname":"topbeat-u-03","name":"topbeat-u-03"},"count":1,"fields":null,"input_type":"log","offset":70,"source":"/var/log/auth.log","type":"log","host":"topbeat-u-03"}

}

...

如果你的输出显示总命中数为0,则Elasticsearch不会在你搜索的索引下加载任何日志,你应该检查设置是否有错误。如果收到预期输出,请继续执行下一步。

连接Kibana

当你在要收集日志的所有服务器上完成Filebeat的设置后,让我们看一下我们之前安装的Web界面Kibana。

在Web浏览器中,转到ELK服务器的FQDN或公共IP地址。输入“kibanaadmin”的密码后,你应该会看到一个页面,提示你配置默认索引模式:

继续从索引模式菜单(左侧)中选择[filebeat] -YYY.MM.DD,然后单击Star(Set as default index)按钮将Filebeat索引设置为默认值。

现在单击顶部导航栏中的Discover链接。默认情况下,这将显示过去15分钟内的所有日志数据。你应该看到带有日志事件的直方图,其中包含以下日志消息:

现在,因为你只从客户端服务器收集系统日志,因此不会有太多内容。在这里,你可以搜索和浏览日志。你还可以自定义仪表板。

请尝试以下方法:

· 搜索“root”以查看是否有人尝试以root身份登录你的服务器

· 搜索特定主机名(host:"hostname"

· 通过选择直方图上的区域或上面的菜单来更改时间范围

· 单击直方图下方的消息以查看数据的过滤方式

Kibana还有许多其他功能,例如图形和过滤功能,所以请随意逛逛!

结论

既然你的系统日志是通过ElasticsearchLogstash集中进行的,并且你可以使用Kibana将它们可视化,那么你应该集中精力处理所有重要日志。请记住,你可以向Logstash发送几乎任何类型的日志或索引数据,但如果使用grok解析和构建数据,则数据会变得更加有用。

想要了解更多?请访问腾讯云云+社区 。


参考文献:《How To Install Elasticsearch, Logstash, and Kibana (ELK Stack) on CentOS 7》