ELK日志分析系统

日志服务器

提高安全性

集中存放日志

缺陷

对日子分析困难

日志分析步骤

将日志进行集中化管理

将日志格式化(Logstash)并输出到Elasticsearch

对格式化后的数据进行索引和存储(Elasticsearch)

前端数据的展示

Elasticsearch的概述

提供了一个分布式多用户能力的全文搜索引擎

Elasticsearch核心概念

接近实时

集群

节点

索引

索引(库)→类型(表)→文档(记录)

分片和副本

Logstash介绍

一款强大的数据处理工具

可实现数据传输、格式处理、格式化输出

数据输入、数据加工(如过滤,改写等)以及数据输出

LogStash主要组件

Shipper

Indexer

Broker

Search and Storage

Web Interface

Libana介绍

一个针对Elasticsearch的开源分析及可视化平台

搜索、查看存储在Elasticsearch索引中的数据

通过各种图表进行高级数据分析及展示

Kibana主要功能

Elasticsearch无缝之集成

整合数据,复杂数据分析

让更多团队成员受益

接口灵活,分享更容易

配置简单,可视化多数据源

简单数据导入

部署ELK

1.基础环境

|---|---|---|---|
| | | | |
| | | | |
| | | | |

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭内核安全机制

setenforce 0

sed -i

"S/ASELINUX=.*/SELINUX=disabled/g

/etc/selinux/config

修改主机名

hostnamectl set-hostname node2

hostnamectl set-hostname node1

hostnamectl set-hostname apache

2.在三台节点上配置host解析

复制代码
cat >> /etc/hosts << EOF
192.168.27.152 node1
192.168.27.153 node2
192.168.27.154 apache
EOF

测试时间是否同步

复制代码
#用date看日志是否与宿主机一致
date
#chronyc sources -v 如果有任何一条^*回显就是跟宿主机时间一致
chronyc sources -v

3.在node节点上

复制代码
#安装依赖
yum -y install java-1.8.0-openjdk

上传rpm包(elasticsearch-5.5.0.rpm),执行安装

复制代码
rpm -ivh elasticsearch-5.5.0.rpm

重启服务

复制代码
systemctl daemon-reload
systemctl enable elasticsearch.service

4.在node1上编辑配置文件,并传入node2覆盖(也可修改node2的达成一致)

复制代码
vi /etc/elasticsearch/elasticsearch.yml
复制代码
/data/elk_data
/var/log/elasticsearch/

复制代码
scp /etc/elasticsearch/elasticsearch.yml root@node2:/etc/elasticsearch/

传输完成后,打开配置文件,修改

复制代码
vi /etc/elasticsearch/elasticsearch.yml

创建配置文件所需的目录文件,给予权限

复制代码
mkdir -p /data/elk_data
chown elasticsearch:elasticsearch -R /data/
systemctl start elasticsearch.service
ss -nlpt | grep 9200

5.查看集群健康状态信息

复制代码
curl 192.168.27.153:9200
curl 192.168.27.153:9200/_cluster/health?pretty
#绿色为健康
#黄色为警告
#红色代表有错误

查看集群索引

复制代码
curl 192.168.27.153:9200/_cat/indices?pretty

6.在第三台机器安装依赖包

复制代码
yum -y install java-1.8.0-openjdk

上传软件包(logstash-5.5.1.rpm)

复制代码
#安装启动
rpm -ivh logstash-5.5.1.rpm
systemctl start logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

编辑配置文件的采集日志

复制代码
vi /etc/logstash/conf.d/system.conf

input { 
  file{ 
    path =>"/var/log/messages" 
    type =>"system" 
    start_position =>"beginning" 
  } 
}
output { 
  elasticsearch { 
    hosts => ["192.168.27.152:9200"] 
    index =>"system-%{+YYYY.MM.dd}" 
  } 
}

保存退出,给予执行权限,重启服务

复制代码
chmod +r /var/log/messages
systemctl restart logstash

在第一台查看健康,会有回显信息(采集成功)

复制代码
curl 192.168.27.152:9200/_cat/indices?pretty

7.在第一台机器上传包(kibana-5.5.1-x86_64.rpm)

复制代码
rpm -ivh kibana-5.5.1-x86_64.rpm
systemctl enable kibana.service
vi /etc/kibana/kibana.yml

调整配置文件

监听地址为当前节点的地址 开启服务,过滤端口号

浏览器搜素

创建节点,查看状态

8.安装网站

1.在apache节点安装并启动

复制代码
yum -y install httpd
systemctl start httpd

2.在节点2模拟数据流量请求

复制代码
for i in $(seq 1 10000);do curl 192.168.27.154 ;sleep 1;done

3.在apache节点,编写日志采集的文件

复制代码
vi /etc/logstash/conf.d/apache_log.conf

input {
  file{ 
    path =>"/var/log/httpd/access_log"  
    type =>"access" 
    start_position =>"beginning" 
  }
  file {
    path =>"/var/log/httpd/error_log" 
    type =>"error" 
    start_position =>"beginning" 
  }
}

output {
  if [type] == "access" { 
    elasticsearch { 
      hosts => ["192.168.27.152:9200"] 
      index =>"apache_access-%{+YYYY.MM.dd}" 
    }
  }
  if [type] == "error" { 
    elasticsearch { 
      hosts => ["192.168.27.152:9200"]
      index =>"apache_error-%{+YYYY.MM.dd}"
    }
  }
}

4.给予权限,重启服务

复制代码
chmod -R 777 /var/log/httpd
systemctl restart logstash

5.回到node1节点查看索引

6.浏览器添加apache和error的日志

在node1节点上配置model

浏览器验证

相关推荐
Michaelwubo21 小时前
ELK案例
elk
YDS8292 天前
DeepSeek RAG&MCP + Agent智能体项目 —— 集成ELK日志管理系统和Prometheus监控系统
java·elk·ai·springboot·agent·prometheus·deepseek
爱吃龙利鱼4 天前
docker-compose一键部署ELK+Filbeat
elk·docker
小旭95276 天前
Spring Cloud 集成分布式日志 ELK+Swagger 接口文档实战
java·分布式·后端·elk·spring cloud
小同志008 天前
Spring Boot ⽇志概述(简单了解)
java·java-ee·日志
进阶的猪8 天前
使用4G或Wifi推流到PC
日志
拾光Ծ9 天前
【Linux系统编程】线程池项目实战与基于策略模式的日志系统
linux·bash·线程池·策略模式·日志
绝知此事10 天前
ELK 从入门到精通:Spring Boot 实战三部曲(三)—— 高级应用与架构设计
spring boot·后端·elk
jieyucx10 天前
Go 语言零基础入门:标准库 log 包完全教程
golang·日志·log
绝知此事11 天前
ELK 从入门到精通:Spring Boot 实战三部曲(二)—— 进阶特性与性能优化
spring boot·elk·性能优化