简介
ELK日志分析系统是一个开源的日志管理和分析平台,由三个主要组件组成:Elasticsearch、Logstash和Kibana。Elasticsearch是一个基于Lucene的分布式搜索引擎,可用于存储、搜索和分析大量结构化和非结构化数据。Logstash是一个数据收集引擎,可以从各种来源搜集数据,并将其标准化和转换为可索引文本。Kibana是一个数据可视化平台,可用于创建仪表板和交互式图表,方便用户通过查询和过滤的方式对数据进行分析和可视化展示。ELK日志分析系统的主要作用是帮助用户从各种日志和数据源中提取有价值的信息,以便更好地监控、调试和优化其应用程序和业务流程。
安装Elasticsearch
1.下载安装es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-x86_64.rpm
rpm --install elasticsearch-7.12.0-x86_64.rpm
2.修改es数据和日志存储路径
# 创建目录,用于存储elasticsearch数据
mkdir -p /data/elasticsearch/datadir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/datadir
# 创建日志目录
mkdir -p /data/elasticsearch/logdir
# 修改目录权限
chown -R elasticsearch:elasticsearch /data/elasticsearch/logdir
3. 修改es配置文件
#先备份配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
# 集群名称,按照自己的需求调整
cluster.name: my-application
# 节点名称
node.name: node-1
# 设置data存储目录
path.data: /data/elasticsearch/datadir
# 设置logs日志的目录
path.logs: /data/elasticsearch/logdir
# 设置内存不使用交换分区
bootstrap.memory_lock: false
# 设置允许所有ip可以连接该elasticsearch,这里根据项目需求自行修改
network.host: 0.0.0.0
# 开启监听的端口,默认为9200
http.port: 9200
discovery.seed_hosts:["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
4.启动ES
# 启动服务
systemctl start elasticsearch
# 查看运行状态
systemctl status elasticsearch
# 设置开机启动
systemctl enable elasticsearch
注意:
如果是通过SSH远程登录的服务器,启动ES服务时会报错,原因是部署ES时创建的elasticsearch用户默认是禁止shell登录的,通过切换用户命令可以看到提示:this account is currently not avaliable。
解决方案:将elasticsearch用户的shell从“/sbin /nologin”修改为“/bin/bash”即可。
chsh -s /bin/bash elasticsearch
5.查看es启动状态,出现以下信息说明服务启动成功
安装Logstash
1.下载安装logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-x86_64.rpm
rpm --install logstash-7.12.0-x86_64.rpm
2.修改logstash数据和日志存储路径
# 创建目录,用于存储logstash数据
mkdir -p /data/logstash/datadir
# 修改目录权限
chown -R logstash:logstash /data/logstash/datadir
# 创建日志目录
mkdir -p /data/logstash/logdir
# 修改目录权限
chown -R logstash:logstash /data/logstash/logdir
3.修改logstash配置文件
#备份配置文件
cp /etc/logstash/logstash.yml /etc/logstash/logstash.yml.bak
vim /etc/logstash/logstash.yml
# 设置data存储目录(28行)
path.data: /data/logstash/datadir
# 设置配置文件目录(73行)
path.config: /etc/logstash/conf.d
# 设置日志存储目录(249行)
path.logs: /data/logstash/logdir
4.启动logstash
# 启动服务
systemctl start logstash
# 查看运行状态
systemctl status logstash
# 设置开机启动
systemctl enable logstash
5.查看logstash运行状态
ln -s /usr/share/logstash/bin/logstash.lib.sh /bin/logstash
echo "Jason" | logstash -e 'input { stdin { } } output { stdout {} }'
安装Kinaba
1.下载安装kinaba
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-x86_64.rpm
rpm --install kibana-7.12.0-x86_64.rpm
2.修改kibana配置文件
#备份配置文件
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
vim /etc/kibana/kibana.yml
# 端口,默认5601
server.port: 5601
# 允许所有ip访问
server.host: "0.0.0.0"
# 配置elasticsearch地址
elasticsearch.host: ["http://localhost:9200"]
kibana.index: ".kibana"
3.启动kibana
# 启动服务
systemctl start kibana
# 查看运行状态
systemctl status kibana
# 设置开机启动
systemctl enable kibana
4. 查看kibana运行情况
1.执行以下命令:
curl http://localhost:5601
2.使用游览器输入ip地址加端口进行访问
汉化设置
以上ELK就部署完成了,但是我们可以看到这个网站的页面是英文,那么我们接下来要设置汉化
1.修改Kibana配置文件
直接使用sed命令替换
sed -i '111s/.*/i18n.locale: "zh-CN"/' /etc/kibana/kibana.yml