如何在Ubuntu 18.04上安装ELK堆栈
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',然后单击"创建索引模式"。
索引模式应该创建。
单击"发现"菜单以查看服务器日志。
日志将根据时间戳显示。
单击任何时间戳以展开它并查看日志文件内容及其详细信息。