如何在Ubuntu 20.04上安装ELK堆栈
ELK堆栈是三个流行的开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。 它是开源的,也是最流行的日志管理平台之一,可以收集,处理,存储
并可视化来自多个数据源的数据。 它主要用于IT环境中的日志分析。 对于系统管理员而言,始终搜索和分析大量数据以做出实时决策非常有帮助。
Elasticsearch:这是一个用于存储所有收集数据的搜索引擎.Kibana:它提供了一个基于Web的界面,用于搜索和可视化您的数据Logstash:它是一个数据处理界面,用于同时从多个来源收集数据将数据发送到所需的存储库。
在本教程中,我们将说明如何在Ubuntu 20.04服务器上安装和配置ELK堆栈。
先决条件
- Ubuntu 20.04 VPS(我们将使用SSD 8 VPS计划)
- 访问root用户帐户(或访问具有root特权的管理员帐户)
登录到服务器并更新服务器操作系统软件包
首先,以root用户身份通过SSH登录到Ubuntu 20.04服务器:
ssh [email protected]_Address -p Port_number
您将需要用服务器各自的IP地址和SSH端口号替换“ IP_Address”和“ Port_number”。 另外,如有必要,将“ root”替换为管理员帐户的用户名。
在开始之前,您必须确保服务器上安装的所有Ubuntu OS软件包都是最新的。 您可以通过运行以下命令来执行此操作:
apt-get update -y apt-get upgrade -y
安装必需的依赖项
在开始之前,您将需要在服务器中安装Java和其他必需的依赖项。 您可以使用以下命令安装所有组件:
apt-get install openjdk-11-jdk wget apt-transport-https curl gnupg2 -y
安装所有软件包之后,请使用以下命令验证Java的安装版本:
java -version
您应该获得以下输出:
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
安装Elasticsearch
默认情况下,Elasticsearch在Ubuntu标准存储库中不可用。 因此,您需要将Elasticsearch存储库添加到系统中。
首先,使用以下命令添加Elasticsearch签名密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
接下来,使用以下命令添加存储库:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
添加存储库后,请更新存储库并使用以下命令安装Elasticsearch软件包:
apt-get update -y apt-get install elasticsearch -y
安装Elasticsearch后,启动Elasticsearch服务并启用它以在系统重新引导时启动:
systemctl start elasticsearch systemctl enable elasticsearch
此时,Elasticsearch已启动并正在侦听端口9200。您可以使用以下命令进行验证:
ss -antpl | grep 9200
您应该获得以下输出:
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=27757,fd=257)) LISTEN 0 4096 [::1]:9200 [::]:* users:(("java",pid=27757,fd=256))
您还可以通过发送HTTP请求来检查Elasticsearch:
curl -X GET http://localhost:9200
您应该获得以下输出:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "LhG8-a_eQHyyoRAlQQXBTQ", "version" : { "number" : "7.10.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96", "build_date" : "2020-11-09T21:30:33.964949Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
安装和配置Logstash
Logstash是用于收集日志并将其存储在Elasticsearch上的日志分析软件。 您可以使用以下命令轻松安装它:
apt-get install logstash -y
一旦安装了Logstash,您将需要配置输入,过滤器和输出插件。 您可以通过在/etc/logstash/conf.d/目录中创建一个新的配置文件来配置它:
nano /etc/logstash/conf.d/logstash.conf
添加以下行:
#Specify listening port for incoming logs from the beats input { beats { port => 5044 } } # Used to parse syslog messages and send it to Elasticsearch for storing filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } } # Specify an Elastisearch instance output { elasticsearch { hosts => ["localhost:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } }
保存并关闭文件,然后启动Logstash并使其在系统重新引导时启动。
systemctl start logstash systemctl enable logstash
安装和配置Kibana
Kibana通过基于Web的界面可视化存储在Elasticsearch上的数据。 您可以使用以下命令进行安装:
apt-get install kibana -y
默认情况下,Kibana监听localhost。 因此,您将需要对其进行配置以供外部访问。 您可以通过编辑文件/etc/kibana/kibana.yml对其进行配置:
nano /etc/kibana/kibana.yml
更改以下行:
server.host: "your-server-ip" elasticsearch.hosts: ["http://localhost:9200"]
保存并关闭文件,然后启动Kibana服务并启用它以在系统重新启动时启动:
systemctl start kibana systemctl enable kibana
安装和配置Filebeat
Filebeat用于将日志发送到Logstash或Elasticsearch进行解析。 在本节中,我们将安装Filebeat并将其配置为将日志发送到Logstash。
您可以使用以下命令进行安装:
apt-get install filebeat -y
安装完成后,编辑Filebeat主配置文件并将其配置为将日志发送到Logstash。
nano /etc/filebeat/filebeat.yml
注释掉以下几行:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
取消注释以下行:
output.logstash: hosts: ["localhost:5044"]
保存并关闭文件,然后启动Filebeat服务,并使其在系统重新引导时启动:
systemctl start filebeat systemctl enable filebeat
接下来,启用Filebeat系统模块,它将检查本地系统日志:
filebeat modules enable system
接下来,使用以下命令加载索引模板:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
最后,验证Filebeat是否将日志文件传送到Logstash进行处理。 处理后,数据将发送到Elasticsearch。
curl -XGET http://localhost:9200/_cat/indices?v
您应该获得以下输出:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open filebeat-7.10.0-2020.12.06-000001 hkQTgSbhSKqwYV-L6Dirtg 1 1 0 0 208b 208b green open .apm-custom-link GZekuSDGSh2h3cyaUh-Kuw 1 0 0 0 208b 208b green open .kibana_task_manager_1 wsc1qi8-S6W7xiU6Gb8IUA 1 0 5 23 125.3kb 125.3kb green open .apm-agent-configuration OQ0CeuK0R7mXtevKccGjlQ 1 0 0 0 208b 208b green open .kibana-event-log-7.10.0-000001 qt1r0hCbRb6-vYd5UsJVGA 1 0 2 0 11kb 11kb green open .kibana_1 s7LrkbyERnSezRhyJf-GLw 1 0 9 0 10.3mb 10.3mb
访问Kibana Web界面
默认情况下,Kibana监听端口 5601。 您可以使用URL进行访问 http://your-server-ip:5601
。 您应该在以下屏幕中看到Kibana仪表板:
现在,点击 独自探索。 您应该看到以下屏幕:
恭喜你! 您已在Ubuntu 20.04服务器上成功安装了ELK Stack。
当然,如果您使用我们的Linux VPS托管服务之一,则无需执行任何操作,在这种情况下,您只需要求我们的专业Linux管理员为您进行设置即可。 它们全天候24×7可用,将立即处理您的请求。
聚苯乙烯。 如果您喜欢此帖子,请使用左侧的按钮在社交网络上与您的朋友分享,或者在下面留下您的答复。 谢谢。