ELK浅析(1)

ELK简介

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。主要负责将日志索引并存储起来,方便业务方检索查询。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

ELK框架

在这里插入图片描述

组件安装

先从ELK官网(https://www.elastic.co/guide/index.html)下载如下三个组件:
elasticsearch-xx.xx.xx-linux-x86_64.tar.gz
kibana-xx.xx.xx-linux-x86_64.tar.gz
logstash-xx.xx.xx.tar.gz

安装elasticsearch

第一步 安装依赖包

yum -y install tomcat

第二步 解压压缩包

tar -xf elasticsearch-xx.xx.xx-linux-x86_64.tar.gz

第三步 修改配置
进入解压目录下的config

echo "network.host: 0.0.0.0" >> elasticsearch.yml
echo "http.port: 9200" >> elasticsearch.yml
echo "http.cors.enabled: true" >> elasticsearch.yml
echo "http.cors.allow-origin: \"*\"" >> elasticsearch.yml

单节点

echo "node.name: node-1" >> elasticsearch.yml
echo "discovery.seed_hosts: [\"127.0.0.1\"]" >> elasticsearch.yml
echo "cluster.initial_master_nodes: [\"node-1\"]" >> elasticsearch.yml

多节点

每个节点配置不同的node.name与initial_master_nodes对应
echo "discovery.seed_hosts: [\"IP1\",\"IP2\"......]" >> elasticsearch.yml
echo "cluster.initial_master_nodes: ["node-1","node-2"......]" >> elasticsearch.yml

第四步 创建用户(无法使用root启动)
创建用户组

groupadd elk

创建用户

useradd elk -g elk -p 123456

第五步 设置目录所属
修改解压后的目录的所属

chown -R elk:elk elasticsearch-xx.xx.xx

第六步 设置线程数

echo "* soft nproc 4096" >> /etc/security/limits.conf
echo "* hard nproc 4096" >> /etc/security/limits.conf
echo "root soft nproc 4096" >> /etc/security/limits.conf
echo "root hard nproc 4096" >> /etc/security/limits.conf

第七步 增大内存映射

echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
sysctl -p

第八步 启动
切换用户

su elk

进入解压后的目录下的bin,启动

nohup sh elasticsearch > /dev/null 2>&1 & 或 ./elasticsearch -d

安装elasticsearch异常解决

错误

错误一

在这里插入图片描述
解决
修改elasticsearch-env的122行
将< <(env)改为<<<“env”

错误二

在这里插入图片描述
解决
echo “vm.max_map_count = 655360” >> /etc/sysctl.conf
sysctl -p

echo “* soft nproc 4096” >> /etc/security/limits.conf
echo “* hard nproc 4096” >> /etc/security/limits.conf
echo “root soft nproc 4096” >> /etc/security/limits.conf
echo “root hard nproc 4096” >> /etc/security/limits.conf

错误三

在这里插入图片描述
解决
修改配置文件elasticsearch.yml
根据节点个数配置
在# --------------------------------- Discovery ----------------------------------中添加
discovery.seed_hosts: [“IP1”,“IP2”…]
cluster.initial_master_nodes: [“node-1”,“node-2”…]

错误四

在这里插入图片描述
解决
echo “* soft nofile 65536” >> /etc/security/limits.conf
echo “* hard nofile 65536” >> /etc/security/limits.conf
echo “root soft nofile 65536” >> /etc/security/limits.conf
echo “root hard nofile 65536” >> /etc/security/limits.conf

警告

警告一

在这里插入图片描述
解决
检查elasticsearch.yml配置文件
node.name配置与cluster.initial_master_nodes相同

安装kibana

第一步 安装依赖包

yum -y install tomcat

第二步 解压

tar -xf kibana-xx.xx.xx-linux-x86_64.tar.gz

第三步 配置
进入解压目录下的config

echo "server.port: 5601" >> kibana.yml
echo "server.host: \"0.0.0.0\"" >> kibana.yml
echo "elasticsearch.hosts: [\"http://localhost:9200\"]" >> kibana.yml
echo "kibana.index: \".kibana\"" >> kibana.yml
echo "pid.file: ../run/kibana.pid" >> kibana.yml
echo "logging.dest: ../log/kibana.log" >> kibana.yml
echo "i18n.locale: \"zh-CN\"" >>  kibana.yml

第四步 设置目录所属
修改解压后的目录的所属

chown -R elk:elk kibana-xx.xx.xx

第五步 启动
切换用户

su elk

进入解压后的目录下的bin,启动

nohup sh kibana > /dev/null 2>&1 &

安装logstash

第一步 安装依赖包

yum -y install tomcat

第二步 解压

tar -xf logstash-xx.xx.xx.tar.gz

第三步 安装插件
进入解压后的目录下的bin
在线安装

./logstash-plugin install 插件名

离线安装(离线下载需要打包插件)

./logstash-plugin install file://path/packet_name.zip

第四步 配置自定义文件
第五步 启动
进入解压后的目录下的bin,启动

nohup sh logstash -f 自定义配置文件 > /dev/null 2>&1 &

结语

至此,本章内容结束,希望大家有所收获,后面关于ELK还会有几篇文章,主要讲述配置等,敬请期待。

posted @   坚持是通往胜利的大门  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示