ELK 简介与安装使用

编程入门 行业动态 更新时间:2024-10-24 08:30:55

01 ELK 简介

1.1 ELK架构

ElasticSearch
Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。

Logstash
Logstash 是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集与解析,并将其存入 ElasticSearch中。

Kibana
Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。

Filebeat
引入Filebeat作为日志搜集器,主要是为了解决Logstash开销大的问题。相比Logstash,Filebeat 所占系统的 CPU 和内存几乎可以忽略不计。

简单来说,Elasticsearch作为数据存储数据;Logstash收集并过滤日志;Kibana实现日志数据的分析、过滤与展示。ELK这三个组件都是使用Java编程实现的,而用于在节点上收集日志的Filebeat是使用Go语言编程实现的。

ELK可视化演示,收集的日志数据中主要包含访问时间、访问站点、访问最高频次IP地址和URL等信息。

1.2 ELK日志收集分类

ELK几乎可以收集所有层级的日志数据:

代理层:nginx haproxyweb层:nginx tomcat数据库层:mysql redis mongo es操作系统层:source.message

02 ELK 安装与使用

下载filebeat、kibana和logstash的安装包,值得注意的是在安装ELK时其前提都是该节点具备jdk。

wget artifacts.elastic.co/downloads/kibana/kibana-7.13.2-amd64.deb
wget artifacts.elastic.co/downloads/logstash/logstash-7.13.2-amd64.deb
wget artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.2-amd64.deb
sudo dpkg -i kibana-7.13.2-amd64.deb # 安装deb包
sudo dpkg -i logstash-7.13.2-amd64.deb # 安装deb包
sudo dpkg -i filebeat-7.13.2-amd64.deb # 安装deb包

ELK安装的官方文档:官方文档

安装步骤:

安装配置java更新同步服务器时间:在所有服务器上执行
apt-get install ntpdate -y
ntpdate time1.aliyun.
安装ES安装Kibana安装Logstash安装Filebeats

2.1 安装ES

已经安装好了Elasticsearch之后,在后续实验中为了简化操作,仅仅使用一台服务器提供ES服务,该服务器的ES配置如下

vim /etc/elasticsearch/elasticsearch.yml 
# 配置内容
node.name: master
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.16.255.131,127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["master"]
http.cors.enabled: true
http.cors.allow-origin: "*"

2.2 安装Kibana

Kibana只需要安装在一台服务器上,且最好和Elasticsearch在同一台服务器上,安装Kibana时注意服务器内存是否足够。

直接在Kibana安装包目录下执行命令安装

sudo dpkg -i kibana-7.13.2-amd64.deb # 安装deb包

配置Kibana:在/etc/kibana/kibana.yml配置文件中对kibana进行配置

server.port: 5601
server.host: "172.16.255.131"
server.name: "master"
elasticsearch.hosts: ["172.16.255.131:9200"]
kibana.index: ".kibana"

配置完成后,启动kibana,值得注意的是Kibana启动较为耗费内存,如果将ES和Kibana部署在同一台服务器上,建议分配2G-4G内存

systemctl start kibana.service

查看是否启动成功

systemctl status kibana.service # 查看服务启动状态
netstat -lntup|grep 5601 # 查看端口

或者直接使用浏览器查看是否能够成功访问Kibana

2.3 安装Filebeat

直接在filebeat安装包目录下执行命令安装

sudo dpkg -i filebeat-7.13.2-amd64.deb # 安装deb包

配置filebeat:在/etc/filebeat/filebeat.yml配置文件中对filebeat进行配置,最为主要的配置选项是filebeat的输入输出配置

cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak # 备份filebeat配置文件
# 配置filebeat
root@master:/etc/filebeat# egrep -v "#|^$" filebeat.yml
filebeat.inputs: # 采集日志数据配置
- type: logenabled: truepaths:- /var/log/nginx/aess.log
- type: filestreamenabled: falsepaths:- /var/log/*.logfilebeat.config.modules: # 模块配置path: ${path.config}/modules.d/*.ymlreload.enabled: falsesetup.template.settings: # 分片配置index.number_of_shards: 1setup.kibana: # kibana配置output.elasticsearch:  # 输出到ES配置hosts: ["172.16.255.131:9200"]processors:- add_host_metadata:when.not.contains.tags: forwarded- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~

配置完成后,启动filebeat

systemctl start filebeat.service

查看filebeat日志查看是否启动成功,或者在ES-head插件中查看filebeat是否存在

tail -f /var/log/filebeat/filebeat

为了方便进行debug和查看Filebeat状态,还需要在配置文件中配置filebeat的日志目录

# 打开配置文件
vim /etc/filebeat/filebeat.yml
# 配置内容如下
#================================ Logging ==============
logging.level: debug
#logging.level: info
logging.to_files: true
logging.files:path: /var/log/filebeatname: filebeatkeepfiles: 7permissions: 0644

filebeat采集日志的原理:类似于tail命令,通过获取日志文件中被追加的日志记录,采集新增日志数据。filebeat采用断点续传的方式保证稳定性,如果filebeat在采集过程中被中断,那么就会设置断点,在重新启动后从断点处开始采集数据。

2.4 安装Logstash

直接在Logstash安装包目录下执行命令安装

cd /opt/es/
sudo dpkg -i logstash-7.13.2-amd64.deb # 安装deb包

配置Logstash:Logstash的配置文件都放在/etc/logstash/conf.d/目录下

创建Logstash的Redis输入配置文件vim /etc/logstash/conf.d/redis.conf,并输入配置内容如下

# 输入源配置
input {redis {host => "172.16.255.131"port => 6379# password => "my_password" # 不需要配置密码时直接删除该行db => "0"key => "filebeat"data_type => "list"type  => "redis"codec => plain{charset=>"UTF-8"}}
}filter {mutate{convert => ["upstream_time","float"] # 解析时间convert => ["request_time","float"] # 请求时间}# 解析为json格式json {source => "message"}
}# 输出配置
output{stdout {}elasticsearch {hosts => "172.16.255.131:9200"manage_template => falseindex => "nginx_redis-%{+yyyy.MM}"}
}

配置完成后,使用如下启动命令启动Logstash,值得注意的是Logstash启动过程很缓慢,需要耐心等待

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf

启动成功后Logstash从指定输入源中读取数据,并输出到ES中结果如下

03 Kibana 自定义运维大屏

3.1 创建Kibana图表

Kibnana-7版本中创建图表在Dashboard中创建,如下图所示

创建图表分为四步:

选择数据对象选择分析数据的目标字段选择数据分析采用的图表样式编辑图表图例与图示

3.2 创建Kibana运维大屏

创建完指定数据字段的数据分析图表之后,可以对齐进行进一步地调整,然后选择保存到library中组成大图

如下图所示是多个图表组成的Nginx运维大屏

更多推荐

简介,ELK

本文发布于:2023-05-29 23:11:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/355127.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简介   ELK

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!