单机EFK部署
单机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/guide/cn/elasticsearch/guide/current/index.html
文档参考 https://www.cnblogs.com/sky-cheng/p/11164164.html
二、单机部署架构图
三、部署步骤
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