Elasticsearch是使用Java开发的基于Lucene的开源搜索引擎。它提供了具有HTTP Dashboard Web界面(Kibana)的分布式多租户全文搜索引擎。使用JSON文档方案查询,检索和存储数据。Elasticsearch是可扩展的搜索引擎,可用于搜索各种文本文档,包括日志文件。Elasticsearch是“弹性堆栈”或“ ELK堆栈”的核心。
Logstash是用于管理事件和日志的开源工具。它提供了数据收集的实时流水线。Logstash将收集您的日志数据,将数据转换为JSON文档,并将其存储在Elasticsearch中。
Kibana是Elasticsearch的开源数据可视化工具。Kibana提供了一个漂亮的仪表板Web界面。它允许您管理和可视化Elasticsearch中的数据。它不仅美丽,而且功能强大。
在本教程中,我们将向您展示在CentOS 8服务器上分步安装和配置“弹性堆栈”的步骤。我们将安装和设置Elasticsearch,Logstash和Kibana。然后在客户端Ubuntu和CentOS系统上设置Beats’filebeat’。
先决条件
- 具有4GB RAM的CentOS 8 64位-Elk-master
- 具有1 GB RAM的CentOS 8 64位-client01
- 带有1GB RAM的Ubuntu 18.04 64位-client02
我们要做什么:
- 将弹性存储库添加到CentOS 8服务器
- 安装和配置Elasticsearch
- 安装和配置Kibana仪表板
- 将Nginx设置为Kibana的反向代理
- 安装和配置Logstash
- 安装和配置Filebeat
- 测试中
第1步-添加弹性存储库
首先,我们将Elasticsearc密钥和存储库添加到CentOS 8服务器。借助elastic.co提供的elasticsearch存储库,我们能够安装Elastic产品,包括Elasticsearch,Logstash,Kibana和Beats。
使用以下命令将弹性密钥添加到系统。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
之后,转到“ /etc/yum.repos.d”目录并创建一个新的存储库文件“ elasticsearch.repo”。
cd /etc/yum.repos.d/
vim elasticsearch.repo
在下面粘贴elasticsearch存储库。
[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
保存并关闭。
现在,使用下面的dnf命令检查系统上所有可用的存储库。
dnf repolist
然后,您将获得已添加到CentOS 8服务器的elasticsearch存储库。
因此,您可以安装Elastic产品,例如Elasticsearch,Logstash和Kibana等。
第2步-安装和配置Elasticsearch
在这一步中,我们将安装和配置Elasticsearch。
使用下面的dnf命令安装Elasticsearch软件包。
sudo dnf install elasticsearch -y
安装完成后,进入“ / etc / elasticsearch”目录并使用vim编辑器编辑配置文件“ elasticsearch.yml”。
cd /etc/elasticsearch/
vim elasticsearch.yml
取消注释以下几行,并如下更改每行的值。
network.host: 127.0.0.1
http.port: 9200
保存并关闭。
可选地:
您可以通过编辑JVM配置文件’jvm.options’来调整elasticsearch并根据您拥有的内存来设置堆大小。
使用vim编辑器编辑JVM配置’jvm.options’。
vim jvm.options
如下所示通过Xms和Xmx配置更改最小/最大堆大小。
-Xms512m
-Xmx512m
保存并关闭。
接下来,重新加载systemd Manager配置并将弹性搜索服务添加到启动时间。
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
然后启动elasticsearch服务。
sudo systemctl start elasticsearch
结果,elasticsearch在本地IP地址“ 127.0.0.1”之后启动,并在CentOS 8服务器上使用默认端口“ 9200”运行。
您可以使用下面的curl命令检查elasticsearch。
curl -XGET 'http://127.0.0.1:9200/?pretty'
以下是您将获得的结果。
第3步-安装和配置Kibana仪表板
安装Elasticsearch之后,我们将在CentOS 8服务器上安装和配置Kibana仪表板。
使用下面的dnf命令安装Kibana仪表板。
sudo dnf install kibana
安装完成后,转到“ / etc / kibana”目录并编辑配置文件“ kibana.yml”。
cd /etc/kibana/
vim kibana.yml
取消注释并更改某些行配置,如下所示。
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
保存并关闭。
接下来,将kibana服务添加到系统引导中并启动kibana服务。
sudo systemctl enable kibana
sudo systemctl start kibana
Kibana服务已启动并在CentOS 8服务器上运行,请使用以下命令进行检查。
systemctl status kibana
netstat -plntu
您将得到如下结果。
结果,Kibana服务启动并运行默认的TCP端口“ 5601”。
第4步-将Nginx设置为Kibana的反向代理
在这一步中,我们将安装Nginx Web服务器并将其设置为Kibana仪表板的反向代理。
使用下面的dnf命令安装Nginx和httpd-tools。
sudo dnf install nginx httpd-tools
安装完成后,转到“ /etc/nginx/conf.d”目录并创建一个新的配置文件“ kibana.conf”。
cd /etc/nginx/conf.d/
vim kibana.conf
粘贴以下配置。
server {
listen 80;
server_name elk.hakase-labs.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://127.0.0.1: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;
}
}
保存并关闭。
接下来,我们需要创建基本身份验证以保护Kibana访问。用自己的用户更改“ hakase”用户,然后运行htpasspwd命令,如下所示。
sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD
输入您的密码并测试Nginx配置。
nginx -t
确保没有错误。
现在,将nginx服务添加到系统引导中并启动nginx服务。
systemctl enable nginx
systemctl start nginx
结果,已经完成了Nginx的安装和配置,作为Kibana仪表板的反向代理。
第5步-安装和配置Logstash
在此步骤中,我们将安装和配置logtash日志发件人。我们将安装logstash,设置输入节拍,使用名为“ grok”的logstash插件设置syslog过滤,然后将输出设置为elasticsearch。
使用下面的dnf命令安装logstash。
sudo dnf install logstash
安装完成后,进入’/ etc / logstash’目录并使用vim编辑器编辑JVM配置文件’jvm.options’。
cd /etc/logstash/
vim jvm.options
如下所示通过Xms和Xmx配置更改最小/最大堆大小。
-Xms512m
-Xmx512m
保存并关闭。
接下来,转到“ /etc/logstash/conf.d”目录,并创建名为“ input-beat.conf”的拍子输入的配置文件。
cd /etc/logstash/conf.d/
vim input-beat.conf
粘贴以下配置。
input {
beats {
port => 5044
}
}
保存并关闭。
现在创建“ syslog-filter.conf”配置文件。
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" ]
}
}
}
保存并关闭。
然后为elasticsearch’output-elasticsearch.conf’创建输出配置。
vim output-elasticsearch.conf
粘贴以下配置。
output {
elasticsearch { hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
保存并关闭。
接下来,将logstash服务添加到系统引导中,然后启动logstash服务。
systemctl enable logstash
systemctl start logstash
logstash服务已启动并正在运行,请使用以下命令进行检查。
systemctl status logstash
netstat -plntu
您将得到如下结果。
结果,logstash日志传送程序已启动并在具有默认TCP端口“ 5044”的CentOS 8服务器上运行。至此,基本的Elastic Stack安装已经完成,我们已经准备好将日志发送并监视到Elastic(ELK Stack)服务器。
步骤6-在客户端上安装Filebeat
在这一步中,我们将向您展示如何在Ubuntu和CentOS系统上设置filebeat。我们将安装filebeat并配置为将日志从两台服务器发送到弹性服务器上的Logstash。
-在CentOS 8上安装Filebeat
使用以下命令将elasticsearch密钥添加到CentOS 8系统。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
现在转到“ /etc/yum.repos.d”目录,并使用vim编辑器创建“ elasticsearch.repo”文件。
cd /etc/yum.repos.d/
vim elasticsearch.repo
粘贴以下配置。
[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
保存并关闭。
现在,使用下面的dnf命令安装filebeat。
sudo dnf install filebeat
等待filebeat安装完成。
-在Ubuntu 18.04上安装Filebeat
首先,安装apt-transport-https软件包。
sudo apt install apt-transport-https
之后,使用以下命令添加elasticsearch密钥和存储库。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
现在,使用以下apt命令更新所有存储库,并将filebeat安装到ubuntu系统。
sudo apt update
sudo apt install filebeat
等待filebeat安装完成。
-配置Filebeat
Filebeat配置位于“ / etc / filebeat”目录中。转到filebeat目录,然后编辑“ filebeat.yml”配置文件。
cd /etc/filebeat/
vim filebeat.yml
现在禁用默认的elasticsearch输出,如下所示。
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["127.0.0.1:9200"]
然后启用logstash输出并指定logstash主机IP地址。
output.logstash:
# The Logstash hosts
hosts: ["10.5.5.25:5044"]
保存并关闭。
接下来,我们需要启用filebeat模块。运行下面的filebeat命令以获取filebeat模块的列表。
filebeat modules list
使用以下命令启用“系统”模块。
filebeat modules enable system
已使用配置文件’modules.d / system.yml’启用filebeat系统模块。
使用vim编辑器编辑系统模块配置。
cd /etc/filebeat/
vim modules.d/system.yml
取消注释syslog文件和ssh授权文件的路径。
对于CentOS系统:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/secure"]
对于Ubuntu系统:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/syslog"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/auth.log"]
保存并关闭。
现在,将filebeat服务添加到系统引导中并启动该服务。
systemctl enable filebeat
systemctl start filebeat
filebeat服务已启动并正在运行,您可以使用以下命令进行检查。
systemctl status filebeat
结果将显示如下。
以下是CentOS 8服务器的结果。
下面是来自Ubuntu Server 18.04的信息。
结果,在弹性堆栈服务器IP地址“ 10.5.5.12”上的filebeat和logstash服务之间建立了连接。
步骤7-测试
打开您的Web浏览器,然后在地址栏上键入Elastic Stack安装域名。
现在,使用您创建的基本身份验证帐户登录到Kibana仪表板。
您将获得如下的Kibana仪表板。
现在连接到在文件拍子连接到logstash之后自动创建的elasticsearch索引数据。单击“ 连接到您的Elasticsearch索引 ”链接。
创建’ filebeat- * ‘索引模式,然后单击’ 下一步 ‘按钮。
对于过滤器名称,选择’ @timestamp ‘过滤器,然后单击’ 创建索引模式 ‘。
并创建了“ filebeat- * ”索引模式,单击左侧的“ 发现 ”菜单。
然后,您将从Filebeat客户端获取日志数据,如下所示。
记录CentOS 8系统。
登录到Ubuntu系统。
结果,在filebeat系统模块上定义的日志数据已被传送到弹性堆栈服务器。
并且,CentOS 8上的Elastic Stack安装和配置已成功完成。
参考
转自:https://www.howtoforge.com/how-to-install-elastic-stack-on-centos-8/