一 elk 开源日志分析平台介绍

1 介绍

elasticsearch 是一个开源分布式搜索引擎,它的特点是:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动负载等特性
logstash:是一个完全开源的工具,他可以对日志进行收集,过滤,并将其存储供以后使用
kibana:是一个开源和免费的工具,它可以为logstash和elasticsearch 提供日志分析友好的web界面,可以汇总,分析和搜索日志等等。

2 ELK 进行日志分析的步骤

首先,架构方面,apache 是有日志文件的,他的每个请求的状态都有日志文件记录,其次,需要有队列,保证日志的完整性,而redis的list结构整好可以作为队列使用,然后分析使用elasticsearch进行分析查询

3 环境需要

需要一个分布式的,日志收集和分析系统,logstash有agent和indexer两个角色,对于agent角色,放在单独的web机器上,通过其不断读取日志文件,将接受的日志文件发送到redis上,通过indexer 进行接受和分析,分析之后存储到elasticsearch进行搜索分析,再由kibana 进行日志web界面展示

二 实验环境的搭建:

软件包:
链接:https://pan.baidu.com/s/123jH9tt8ggxdARKA-Z_h6g
密码:e0l7

1 搭建基本的elasticsearch分布式环境

1 软件的安装

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

2 服务的配置

server1 配置
ELK日志监控平台
配置本机hostname
ELK日志监控平台
配置集群名称
ELK日志监控平台
配置数据目录位置
ELK日志监控平台
配置内存锁定,只使用内存,不使用交换分区,加快运行效率
ELK日志监控平台
配置本机IP地址及监听端口,其端口可以修改,建议保持默认
ELK日志监控平台
配置集群成员
ELK日志监控平台
server2 配置
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
server3 配置
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
启动服务并查看相关端口
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

3 安装第三方插件,以实现图形化展示

ELK日志监控平台

4 实验结果,server1为master serve2和server3 为从机

ELK日志监控平台

5 上传数据查看结果

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

6 状态配置:

角色共有三种:
master:负责维护集群状态
worker: 负责数据存储
服务端点: 负责服务提供,用以减轻其他服务压力
支持的状态有四种,默认是master true data true
master true 表示可以参与master 的竞选,如果其为false,则表示其不能参与竞选
data true 表示其是数据存储节点,用于数据的存储,如果为false,则表示其不能用于数据存储
配置server1 的角色为master,负责集群的调度和管理
ELK日志监控平台
ELK日志监控平台
配置server2 和server3 为worker,负责数据的存储
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
重载服务
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
查看其状态:
ELK日志监控平台

7 使用API调度

1 使用API查看集群状态
ELK日志监控平台
2 格式化显示其状态
ELK日志监控平台
3 查看之间建立的文件
ELK日志监控平台
4 删除之前建立的文件并查看
ELK日志监控平台

2 安装 logstash,用于日志的提取和分析

ELK日志监控平台

1 服务的安装

ELK日志监控平台

2 使用命令行的方式测试其输入和输出

退出使用Ctrl+c
ELK日志监控平台

3 使用标准输出到屏幕

ELK日志监控平台

4 配置多个输出,并输出到elasticsearch

ELK日志监控平台
ELK日志监控平台

5 其加载配置文件位置

ELK日志监控平台

6 创建配置文件使其输出到elasticsearch

ELK日志监控平台
ELK日志监控平台
运行并查看结果
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

7 使用输出到文件

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

8 配置其输入为系统日志,并授予系统日志其他用户和组的读权限

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

9 日志读取计数有关

1 删除日志
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
2 重启服务并查看
ELK日志监控平台

ELK日志监控平台
ELK日志监控平台
查看其只有后面的日志,没有前面的日志
ELK日志监控平台
此处在使用前台运行的情况下,会在本地生成一个隐藏文件,用于记录读取的位置
ELK日志监控平台
删除此文件并重启查看
ELK日志监控平台
ELK日志监控平台

10 inode 相关

默认的inode 会重复利用,如此可能造成数据的文件锁定混乱而导致日志的读取不准确,logstash可以在读取该文件是锁定inode号,使其时刻处于占用状态,此时,当创建文件时,将不会导致已被占用的inode号进行分配而导致日志读取混乱
ELK日志监控平台

11 配置远程日志同步

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
运行后会自动生成514的tcp和udp端口用于同步
ELK日志监控平台
被同步端配置
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
写入测试日志
ELK日志监控平台
查看日志同步情况
ELK日志监控平台
ELK日志监控平台

12 配置多行日志输入

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

13 配置输出到elasticsearch中

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
查看结果
ELK日志监控平台
ELK日志监控平台
使用其标准化在input端的配置
ELK日志监控平台
ELK日志监控平台
删除之前的读取情况并删除日志重新导入操作
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

3 redis+apache

1 Redis 搭建

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

2 httpd的安装与基本配置

ELK日志监控平台
ELK日志监控平台

3 创建HTTP日日志读取

查看httpd的日志并授权,因为目录需要执行权限才能读取目录中的内容
ELK日志监控平台
创建文件:
ELK日志监控平台
启动并查看是否写入redis
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

4 配置输出到Redis和标准化输出

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

5 配置标准化输出

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

6 apache 日志的标准化输出

日志格式化模板:
ELK日志监控平台
ELK日志监控平台
http日志格式定义
ELK日志监控平台
ELK日志监控平台

ELK日志监控平台
ELK日志监控平台

7 将 redis 中的http日志取出到标准输出

ELK日志监控平台
ELK日志监控平台
启动服务
ELK日志监控平台
查看redis情况
ELK日志监控平台

8 使用server1 存数据至redis ,使用server2 取数据到elasticsearch 中

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
访问看其日志是否增加
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

4 kibana 安装及配置

1 安装kibana

ELK日志监控平台

2 配置

配置其访问es及自身打开一个索引
ELK日志监控平台
ELK日志监控平台

3 启动服监听端口

ELK日志监控平台

4 访问

访问查看并绑定apache日志,此处的日志名称必须和上述的日志并称一致,否则不能匹配
ELK日志监控平台
查看该日志的访问情况,此处的时间一定要标准,否则不能看到现象,因为范围可能不对
ELK日志监控平台
可以通过添加来完成列表,以表格的形式更加清晰的显示结果
ELK日志监控平台
ELK日志监控平台

5 创建相关图形,用于监控

使用markdown 语法创建联系人信息
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
使用计数器实现apache访问量的查看
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台

ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
使用柱状图实现访问排行榜
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
将其汇聚,并进行保存
ELK日志监控平台