侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

ELK实战

Administrator
2024-12-02 / 0 评论 / 0 点赞 / 26 阅读 / 0 字

ELK实战

在项目上线之后,我们用户需要收集日志可以用于分析用户行为,监控服务器状态,增强系统或应用安全性等。

1、ELK简介

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana。

  • Elasticsearch:是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

  • Logstash:主要是用来做日志的分析、过滤等处理工作。

  • Kibana:可以为 Logstash 和 ElasticSearch 提供的日志提供友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

  • 新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash。

传统服务日志收集方案:Elasticsearch、Logstash、Kibana(ELKB) + Filebeat

image-20240906223939059

2、环境规划

IP地址 主机名称 主机角色 操作系统 主机最低配置参考
192.168.1.75 es01 ELasticsearch Rocky 9.0 2核心CPU/2G内存/50G磁盘
192.168.1.76 kibana Kibana Rocky 9.0 2核心CPU/2G内存/50G磁盘
192.168.1.77 Logstash Logstash Rocky 9.0 2核心CPU/2G内存/50G磁盘

3、安装ELasticsearch

由于ELasticsearch自带JDK环境,所以我们不需要额外安装JDK环境
yum -y install elasticsearch-7.8.1-x86_64.rpm

我们需要修改配置文件
vim /etc/elasticsearch/elasticsearch.yml

egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml    #过滤出未被注释的配置

相关配置信息如下:
cluster.name: my-es										# ES集群名称
node.name: es01											# ES节点名称
path.data: /var/lib/elasticsearch						# ES数据目录
path.logs: /var/log/elasticsearch						# ES日志目录
network.host: 192.168.1.75								# ES主机地址
http.port: 9200											# ES监听端口号
discovery.seed_hosts: ["192.168.1.75"]					# ES集群主机列表
cluster.initial_master_nodes: ["192.168.1.75"]			# 如果是ES集群,master主机IP地址

启动Elasticsearch
systemctl enable elasticsearch --now

注意事项:

ELasticsearch启动后一共有两个端口:9200和9300

9200作用:Logstash和Kibana用来访问ELasticsearch

9300作用:如果是一个ELasticsearch集群,例如一些心跳检测,数据同步走9300端口

4、安装Kibana

安装Kibana不需要其它的一些环境,我们直接安装即可
rpm -ivh kibana-7.8.1-x86_64.rpm

修改配置文件
vim /etc/kibana/kibana.yml

需要修改的配置如下:
server.port: 5601									# 服务端口号
server.host: "192.168.1.76"							# 服务IP地址
elasticsearch.hosts: ["http://192.168.1.75:9200"]	 # ES的IP地址
i18n.locale: "zh-CN"								# Kibana默认是英语,修改面板语言

启动服务
systemctl enable kibana --now

访问Kibana

http://192.168.1.76:5601

5、安装Logstash

安装Logstash需要JDK环境
dnf list | grep java | grep jdk

安装jdk8即可

rpm -ivh logstash-7.8.1.rpm

修改配置文件
vim /etc/logstash/logstash.yml

node.name: logstash							# 节点名称
path.data: /var/lib/logstash				# 数据目录
pipeline.workers: 2							# Logstash启动服务的进程数
pipeline.ordered: auto						
path.logs: /var/log/logstash				# Logstash日志目录

6、测试Logstash过滤功能

由于logstash进行日志过滤时,是由插件来进行工作,具体怎么写配置文件,可以参考官网地址。

https://www.elastic.co/guide/en/logstash/current/introduction.html

我们拿一个日志文件放到根目录下

[root@Logstash ~]# ls
anaconda-ks.cfg  app.log  logstash-7.8.1.rpm  rocky-sysconfigure.sh


编写配置文件,放在/etc/logstash/conf.d/下,具体配置如下:
#从文件采集日志
input {
  file {
    path => "/var/log/app.log"
  }
}

#输出日志
output {
   stdout { codec => rubydebug }
}

启动Logstash
logstash -f /etc/logstash/conf.d/project.conf -r	# -f 指定配置文件  -r是进行更新配置文件内容

如果配置写完之后,将logstash挂在后台
logstash -f /etc/logstash/conf.d/app.conf &> /tmp/start_logstash.log &
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区