单机EFK部署

一、ELK、EFK简介

ELK是elastic 公司旗下三款产品ElasticSearch 、Logstash 、Kibana的首字母组合,主要用于日志收集、分析与报表展示。

ELK Stack包含:ElasticSearch、Logstash、Kibana。(ELK Stack 5.0版本以后-->Elastic Stack == ELK Stack+Beats)

ElasticSearch是一个搜索引擎,用来搜索、分析、存储日志。它是分布式的,也就是说可以横向扩容,可以自动发现,索引自动分片,总之很强大,他通常用作底层技术或者底层引擎,为具有复杂搜索特性和需求的应用程序提供支持。

Kibana是一个数据可视化组件,把处理后的结果通过WEB界面展示。你可以用Kibana搜索、查看和交互存在Elasticsearch索引中的数据。你可以执行数据分析和通过图表、表格、地图查看数据。

Filebeat:是一个轻量级的收集日志和传输日志的工具(一直以为Filebeat是存储数据,并不是的他只是做一个收集传输功能);Filebeat安装在每一个你想要收集日志的服务器上,相当于客户端。Filebeat监控你指定的日志文件或者路径,收集日志事件向Elasticsearch或者Logstach进行索引。

Logstash用来采集日志,把日志解析为Json格式交给ElasticSearch。

Beats是一个轻量级日志采集器,其实Beats家族有5个成员(filebeat)。(早起的Logstash对性能资源消耗比较高,Beats性能和消耗可以忽略不计)

X-pach对Elastic Stack提供了安全、警报、监控、报表、图标于一身的扩展包,收费。

logstash比较耗资源,用filebeat来代替。

官网:https://www.elastic.co/cn/

中文文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

文档参考 https://www.cnblogs.com/sky-cheng/p/11164164.html

二、单机部署架构图

image-20211126083632629

三、部署步骤

1、关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2、JDK环境的配置

yum -y install java-1.8.0-openjdk

java -version

3、下载软件

elasticsearch-7.15.2-x86_64.rpm filebeat-7.15.2-x86_64.rpm kibana-7.15.2-x86_64.rpm logstash-7.15.2-x86_64.rpm

以上必须在同一版本,不然很容易出错

下载地址:https://www.elastic.co/cn/downloads/

4、安装elasticsearch

rpm -ivh elasticsearch-7.15.2-x86_64.rpm
systemctl start elasticsearch.service

#开启外部访问
vim /etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0
discovery.seed_hosts: ["127.0.0.1", "[::1]"]

#外部浏览器访问ip:9200可以显示json即可

5、安装kibana

rpm -ivh kibana-7.15.2-x86_64.rpm
#开启外部访问
vim /etc/kibana/kibana.yml

server.host: "0.0.0.0"

6、安装filebeat

rpm -ivh filebeat-7.15.2-x86_64.rpm

7、logstash

#指定配置文件启动logstash
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf

容器化部署

docker pull elasticsearch:7.14.2
docker run -d -e ES_JAVA_POTS="-Xms512m -Xmx512m"  -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch


docker logs -f CONTAINER ID



docker pull kibana:7.14.2
docker run  -p 5601:5601 -d --link d1e9851a8858:elasticsearch --name kibana  kibana7.14.2
	
	
docker exec -it 8180d5fdcdcf /bin/bash
vi config/kibana.yml


server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

docker restart 

docker pull logstash:7.14.2

docker run -it -d -p 5044:5044 --name logstash logstash:7.14.2


#new
docker network create elk-network

docker run -d --name elasticsearch --net elk-network -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.2

docker run -d --name kibana --net elk-network -p 5601:5601 kibana:7.14.2

docker run -it -d -p 5044:5044 -p 514:514 -p 514:514/udp --name logstash --net elk-network logstash:7.14.2

docker run -d --name filebeat --net elk-network store/elastic/filebeat:7.14.2



#squid-kibana日志可视化
https://github.com/molu8bits/squid-filebeat-kibana

文章作者: Stars
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stars
默认分类 monitor Linux
喜欢就支持一下吧