如何在Ubuntu 18.04上安装ELK堆栈

时间:2020-02-23 14:38:37  来源:igfitidea点击:

Elk Stack是世界上最受欢迎的日志管理平台。
它是一系列开源产品,包括Elasticsearch,Logstash和Kibana。
所有这3个产品都是由弹性制定,管理和维护的。

ELK堆栈是一个强大而开源的平台,可以管理大量的记录数据。
输入日志通常来自图形Web界面(GUI)。

  • Elasticsearch是一种基于JSON的搜索和分析引擎,用于水平可扩展性和更轻松的管理。
  • LogStash是一个服务器端数据处理接口,具有能够同时从多个源收集数据。然后转换它,然后将数据发送到所需的藏品。它是一个开源应用程序。
  • KIBANA用于可视化数据并导航弹性堆栈。它也是一个开源工具。

在Ubuntu上安装和配置ELK堆栈

在本教程中,我们将使用FileBeat将日志数据发送到LogStash。
Beats是轻量级数据托运人,首先,我们应该必须在服务器上安装代理。

第1步)安装Java 8

Elasticsearch支持Java 8和9,但麻烦是LogStash仅与Java 8兼容。
java 9尚不支持。
因此,我们将安装Oracle Java 8.

启动终端并添加Oracle Java 8存储库,然后添加系统更新,以及实际安装。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default

我们必须同意许可协议Windows,然后选择"是"继续。
安装完成后,我们可以使用以下命令查看Java版本:

.sudo java -version

Java版本检查

sudo echo $JAVA_HOME

步骤2)安装和配置Elasticsearch

让我们从WGET命令开始下载Elasticsearch,然后是公共签名键:

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

其次,安装APT-Transport-HTTPS包(基于Debian的Distrs需要这个)。

sudo apt-get install apt-transport-https

添加存储库:

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

更新repo列表并安装包:

sudo apt-get update
sudo apt-get install elasticsearch

让我们修改"elasticsearch.yml"文件:

sudo vim /etc/elasticsearch/elasticsearch.yml

取消注释"network.host"和"http.port"。
应添加以下配置:

network.host: localhost
http.port: 9200

接下来,保存并关闭文件。

要确保Elasticsearch无缝工作,请在启动和启动Elasticsearch上启用它。

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

检查安装:

sudo curl -XGET 'localhost:9200/?pretty'

第3步)安装Kibana

让我们开始安装Kibana并修改Kibana设置:

sudo apt-get install kibana
sudo vim /etc/kibana/kibana.yml

以下行列的取消注释:

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

保存并退出文件。

启用它启动并启动Kibana服务:

sudo systemctl enable kibana.service
sudo systemctl start kibana.service

步骤4)将nginx配置为Kibana的反向代理

在类似的线条中,让我们安装nginx,配置它并开始服务。
一次使用以下命令:

sudo apt-get install nginx apache2-utils

配置虚拟主机:

sudo vim /etc/nginx/sites-available/elk

将以下配置添加到文件:

server {
    listen 80;
 
    server_name elk.theitroad.com;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.elkusersecret;
 
    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;
    }
}

为Web浏览器身份验证创建用户和密码文件:

sudo htpasswd -c /etc/nginx/.elkusersecret elkusr

输入密码和重复.Check nginx配置:

sudo nginx -t

在System Boot上启用Nginx并重新启动服务:

sudo systemctl enable nginx.service
sudo systemctl restart nginx.service

步骤5)安装和配置Logstash

安装logstash:

sudo apt-get install logstash

其中我们将生成SSL证书密钥以保护从FileBeat Client中的日志传输.Modify在创建SSL证书之前的"主机"文件。

sudo vim /etc/hosts

将以下行添加到文件中。
确保将IP和服务器名称更改为。

172.31.31.158 elk-server elk-server

完成后,保存并退出该文件。

现在将目录更改为logstash。

sudo cd /etc/logstash/

为SSL创建一个文件夹:

sudo mkdir ssl

在下面的命令中将SSL Certificate.ChangeElk-Server生成到服务器名称。

sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

在"/etc/logstash/conf.d"中创建以下文件。

sudo cd /etc/logstash/conf.d/

使用Vim创建FileBeat输入文件。

sudo vim filebeat-input.conf

将按钮添加到它。

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

保存并关闭文件并创建新配置文件。

sudo vim syslog-filter.conf

将以下内容添加到其中。

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}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

保存并退出file.create elasticsearchoutput文件。

sudo vim output-elasticsearch.conf

将按钮添加到它。

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

让我们启用Logstashon启动并启动服务:

sudo systemctl enable logstash.service
sudo systemctl start logstash.service

步骤6)在客户端服务器上安装和配置FileBeat

从编辑主机文件开始以添加ELK主机条目。
确保Toreplate IP和名称与名称。

sudo vim /etc/hosts
172.31.31.158 elk-server

保存并退出文件。

下载并安装公共签名密钥:

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

安装"APT-Transport-https"并添加Repo。

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

更新repo并安装FileBeat。

sudo apt-get update
sudo apt-get install filebeat

修改FileBeat配置。

sudo vim /etc/filebeat/filebeat.yml

找到以下行并将值修改为"true"。

enabled: true

其中我们没有修改日志路径,FileBeat将在"var/log"文件夹中转发所有日志

paths:
    - /var/log/*.log

取消注释以下行:

output.logstash:
  # The Logstash hosts
  hosts: ["elk-server:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

评论Elasticsearch:

#output.elasticsearch:
  # Array of hosts to connect to.
  # hosts: ["localhost:9200"]

保存并退出文件。

现在转到麋鹿服务器并获取"logstash-forwarder.crt"的内容

sudo cat /etc/logstash/ssl/logstash-forwarder.crt

复制输出,然后转到ELK客户端 - 服务器。

创建证书文件

sudo vim /etc/filebeat/logstash-forwarder.crt

插入复制的输出并保存并退出。

启用FileBeaton System BootStart FileBeat服务。

sudo systemctl enable filebeat.service
sudo systemctl start filebeat.service

第7步)浏览kibana仪表板

启动我们喜欢的Web浏览器,然后输入域名后跟用户名和密码。

http://elk.theitroad.com

浏览器身份验证

输入创建的用户名和密码。
我们应该看到Kibana欢迎Page.Click"探索我自己的"按钮。

Kibana欢迎页面

我们应该被引导到Kibana主页。

Kibana主页

单击左侧的"发现"。
单击"创建索引模式"。

然后定义索引模式"filebeat-*"。

单击"下一步",然后选择@ Timestamp',然后单击"创建索引模式"。

索引模式应该创建。

单击"发现"菜单以查看服务器日志。

日志将根据时间戳显示。
单击任何时间戳以展开它并查看日志文件内容及其详细信息。