ELK实战
在项目上线之后,我们用户需要收集日志可以用于分析用户行为,监控服务器状态,增强系统或应用安全性等。
1、ELK简介
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana。
-
Elasticsearch:是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
-
Logstash:主要是用来做日志的分析、过滤等处理工作。
-
Kibana:可以为 Logstash 和 ElasticSearch 提供的日志提供友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
-
新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash。
传统服务日志收集方案:Elasticsearch、Logstash、Kibana(ELKB) + Filebeat
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
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 &
评论区