跳转至

ELK介绍

日志中心架构

目前我们日志体量较小,日志中心采用最小架构部署,logstashelasticsearch部署单节点,日后如果体量大了,可以配置集群模式,也可以引入消息队列,如KafkaRedisRabbitMQ 等,以减轻网络传输压力,保持数据及时、完整性

img

各组件简介

日志中心ELK是由 ElasticsearchLogstashKibana 三种开源软件组合使用,也是目前最流行的集中式日志解决方案。日志的收集是由Filebeat组件来完成

  • Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能;
  • Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;
  • Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示;
  • Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。

需求整理

  1. nginx访问日志access.log

    • 172.26.32.27:/opt/nginx/logs/access.log
    • 172.26.32.34:/var/log/nginx/access.log
  2. mysql审计日志audit.json及慢查slow.txt

    • 172.26.32.51(master)
    • 172.26.32.43(slave)
    • 172.26.32.58(bigdata)
    • 172.26.32.51:/data/mysql/logs/3306/mysql-audit.json
    • 172.26.32.51:/data/mysql/logs/3306/slow_query.txt
  3. 系统操作日志messages

    • 配置日志服务器172.26.32.57,将所有主机messages指向 日志服务器
    • 172.26.32.57:/var/log/messages

组件安装

需要注意,ELK部署中,需保持各组件版本一致,避免出现各样的兼容问题,目前比较稳定版本选择为7.6.1,需要JDK-8版本

组件准备

Bash
1
2
3
4
5
6
root@pts/0 # tree /share/soft/elk/
/share/soft/elk/
├── elasticsearch-7.6.1-x86_64.rpm
├── filebeat-7.6.1-x86_64.rpm
├── kibana-7.6.1-x86_64.rpm
└── logstash-7.6.1.rpm

安装

ELK:172.26.32.57

Bash
172-26-32-57.ipa.vip [~]
# 安装JDK,配置环境变量
root@pts/0 # rpm -ivh /share/soft/jdk/jdk-8u431-linux-x64.rpm
root@pts/0 # vim /etc/profile
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
root@pts/0 # source /etc/profile
# 安装各组件
root@pts/0 # rpm -ivh /share/soft/elk/elasticsearch-7.6.1-x86_64.rpm 
root@pts/0 # rpm -ivh /share/soft/elk/logstash-7.6.1.rpm 
root@pts/0 # rpm -ivh /share/soft/elk/kibana-7.6.1-x86_64.rpm 
filebeat:
    172.26.32.27-快办nginx
    172.26.32.34-盯管nginx
    ....
root@pts/0 # rpm -ivh /share/soft/elk/filebeat-7.6.1-x86_64.rpm