ELK离线安装和配置流程

一、介绍

ELK是一个开源的数据分析和可视化工具,由三个开源项目组成:Elasticsearch、Logstash和Kibana。Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎;Logstash是一个用于收集、处理和转换数据的数据管道,它可以从各种来源读取数据,包括日志文件、系统事件、网络流量等;Kibana则是一个数据可视化平台,可以对从Elasticsearch中检索到的数据进行查询、分析和可视化。ELK常用于日志数据分析和监控,也被广泛用于业务数据分析和实时数据处理。

二、目的

本次安装ELK环境是搭建项目的日志平台,部署成功后程序员可以通过Kibana可视化界面查看服务日志,而不是遇到问题就需要往机房跑,大大提高排查问题的效率。

三、环境

本次是离线安装,所以需要先下载好安装包,下载方式可以自己到elastic官网下载,也可以直接通过上面3个链接下载8.6.2版本的安装包。

四、安装

4.1、准备工作

  • 因为是离线安装,所i需要先将安装包上传到linux服务器,我这里是上传到/home目录下
    在这里插入图片描述

  • ELK安装后,要求非root用户启动,所以需要新建用户es

adduser es

4.2、Elasticsearch安装配置

4.2.1、安装
## 解压安装包
tar -xvf elasticsearch-8.6.2-linux-x86_64.tar.gz

## 将elasticsearch移动到/usr/local路径下,并重命名为elasticsearch
mv elasticsearch-8.6.2 /usr/local/elasticsearch

## 赋予用户es目录权限
chown -R es /usr/local/elasticsearch
4.2.2、配置
  • 修改elasticsearch.yml配置文件,只贴修改部分配置
vi /usr/local/elasticsearch/config/elasticsearch.yml
# 解除注释并修改访问IP,如果全部网卡均开放访问则设置为0.0.0.0
network.host: 服务器ip
# 修改访问端口
http.port: 9200
# 开启Xpack授权认证(开启Xpack认证后,访问elasticsearch需要用户名、密码)
xpack.security.enabled: true
# 关闭SSL协议
xpack.security.http.ssl:
  enabled: false
  • elasticsearch服务配置,执行命令:vi /usr/lib/systemd/system/elasticsearch.service,文件内容如下:【也可以使用“/usr/local/elasticsearch/bin/elasticsearch -d”命令直接启动,配置服务主要是为了方便,比如不用进入到elasticsearch也可以启动,另外想停止的时候也不需要lsof和kill来停止经常,更重要的是可以设置开启自启
[Unit]
Description=elasticsearch service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/elasticsearch/bin/elasticsearch -d
User=es

[Install]
WantedBy=default.target
4.2.3、服务启停命令
## 启动服务
systemctl start elasticsearch.service
## 停止服务
systemctl stop elasticsearch.service
## 设置开机自启
systemctl enable elasticsearch.service
4.2.4、设置密码(需启动服务后操作)
## 进入到elasticsearch的bin目录下
cd /usr/local/elasticsearch/bin
## 设置密码
elasticsearch-setup-passwords interactive
## 执行设置密码命令后是如下命令提示,设置全部账号的密码
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
 
Enter password for [elastic]: 
Reenter password for [elastic]: 
Passwords do not match.
Try again.
Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]              以下四个均为账号
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
4.2.5、验证服务是否安装成功

验证elasticsearch是否安装成功,可通过浏览器访问:http://服务器ip:9200,当弹窗提示输入用户名、密码即表示安装成功了


4.3、Logstash安装和配置

4.3.1、安装
## 解压安装包
tar -xvf logstash-8.6.2-linux-x86_64.tar.gz

## 将logstash移动到/usr/local路径下,并重命名为logstash
mv logstash-8.6.2 /usr/local/logstash

## 赋予用户es目录权限
chown -R es /usr/local/logstash

## 防火墙开放logstash端口4560
firewall-cmd --zone=public --add-port=4560/tcp
4.3.2、配置
  • 添加logstash-elasticsearch.conf配置文件,执行命令: vi /usr/local/logstash/config/logstash-elasticsearch.conf ,然后添加如下内容(这里日志收集方式是通过tcp方式收集,项目中日志可以直接通过4560端口输入到logstash,然后logstash帮忙输出到elasticserach,索引为“logstash-spring-当天的日期”,如果是其他收集方式可以修改input标签内的配置
input {
    tcp {
        mode => "server"
        host => "0.0.0.0"
        port => 4560
        codec => json_lines
    }
}
output {
    elasticsearch {
        hosts => '服务器ip:9200'
        user => "elastic"
        password => "elastic用户密码"
        index => "logstash-spring-%{+YYYY.MM.dd}"
    }
}
  • 服务配置
    1、配置logstash.service,执行命令:vi /usr/lib/systemd/system/logstash.service,文件内容如下:
[Unit]
Description=logstash service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=sh /usr/local/logstash/logstash.sh
User=es

[Install]
WantedBy=default.target

2、配置logstash.sh,执行命令:vi /usr/local/logstash/logstash.sh,文件内容如下:

#!/bin/bash
nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash-elasticsearch.conf &
echo 'logstash start success'
4.3.3、服务启停命令
## 启动服务
systemctl start logstash.service
## 停止服务
systemctl stop logstash.service
## 设置开机自启
systemctl enable logstash.service

4.4、Kibana安装和配置

4.4.1、安装
## 解压安装包
tar -xvf kibana-8.6.2-linux-x86_64.tar.gz

## 将kibana移动到/usr/local路径下,并重命名为kibana
mv logstash-8.6.2 /usr/local/kibana

## 赋予用户es目录权限
chown -R es /usr/local/kibana

## 防火墙开放kibana端口5601
firewall-cmd --zone=public --add-port=5601/tcp
4.4.2、配置
  • 修改kibana.yml配置
## 端口
server.port: 5601 
## 访问IP
server.host: "服务器ip"
## 汉化访问界面
i18n.locale: "zh-CN" 

## Elasticsearch请求地址
elasticsearch.hosts: ["http://服务器ip:9200"] 
## Elasticsearch用户、密码(这里不能使用elastic用户,否则启动会出现启动不成功)
elasticsearch.username: "kibana"
elasticsearch.password: "42BldhAm8SsBJssUBGl4"

## 开启xpack授权认证所需配置,下面两个值可以随意修改,长度满足要求即可
xpack.reporting.encryptionKey: “123456”
xpack.security.encryptionKey: “abcdefg1234567890abcdefg1234567890abcdefg1234567890”
  • 服务配置

1、配置kibana.service,执行新建服务文件命令:vi /usr/lib/systemd/system/kibana.service,文件内容如下:

[Unit]
Description=kibana service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=sh /usr/local/kibana/bin/kibana.sh
User=es

[Install]
WantedBy=default.target

2、配置kibana.sh,执行新建文件命令:vi /usr/local/kibana/bin/kibana.sh,文件内容如下:

#!/bin/bash
nohup /usr/local/kibana/bin/kibana &
echo 'kibana run success'
4.4.3、服务启停命令
## 启动服务
systemctl start logstash.service
## 停止服务
systemctl stop logstash.service
## 设置开机自启
systemctl enable logstash.service
4.4.4、验证

浏览器请求:http://服务器ip:5601

首次登录使用elastic用户密码登录,因为kibana用户权限有限,登录成功后可以自行再新增用户、配置角色等相关操作。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐