一 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日志监控平台_第1张图片
ELK日志监控平台_第2张图片
ELK日志监控平台_第3张图片
ELK日志监控平台_第4张图片

2 服务的配置

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

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

ELK日志监控平台_第17张图片

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

ELK日志监控平台_第18张图片

5 上传数据查看结果

ELK日志监控平台_第19张图片
ELK日志监控平台_第20张图片
ELK日志监控平台_第21张图片
ELK日志监控平台_第22张图片

6 状态配置:

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

7 使用API调度

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

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

ELK日志监控平台_第30张图片

1 服务的安装

ELK日志监控平台_第31张图片

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

退出使用Ctrl+c
ELK日志监控平台_第32张图片

3 使用标准输出到屏幕

ELK日志监控平台_第33张图片

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

ELK日志监控平台_第34张图片
ELK日志监控平台_第35张图片

5 其加载配置文件位置

ELK日志监控平台

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

ELK日志监控平台
ELK日志监控平台_第36张图片
运行并查看结果
ELK日志监控平台_第37张图片
ELK日志监控平台_第38张图片
ELK日志监控平台_第39张图片

7 使用输出到文件

ELK日志监控平台
ELK日志监控平台_第40张图片
ELK日志监控平台_第41张图片

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

ELK日志监控平台_第42张图片
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台_第43张图片
ELK日志监控平台
ELK日志监控平台_第44张图片
ELK日志监控平台_第45张图片
ELK日志监控平台_第46张图片

9 日志读取计数有关

1 删除日志
ELK日志监控平台_第47张图片
ELK日志监控平台_第48张图片
ELK日志监控平台_第49张图片
2 重启服务并查看
ELK日志监控平台

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

10 inode 相关

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

11 配置远程日志同步

ELK日志监控平台
ELK日志监控平台_第56张图片
ELK日志监控平台
运行后会自动生成514的tcp和udp端口用于同步
ELK日志监控平台_第57张图片
被同步端配置
ELK日志监控平台
ELK日志监控平台
ELK日志监控平台
写入测试日志
ELK日志监控平台_第58张图片
查看日志同步情况
ELK日志监控平台_第59张图片
ELK日志监控平台_第60张图片

12 配置多行日志输入

ELK日志监控平台
ELK日志监控平台_第61张图片
ELK日志监控平台_第62张图片

13 配置输出到elasticsearch中

ELK日志监控平台_第63张图片
ELK日志监控平台
ELK日志监控平台_第64张图片
ELK日志监控平台
查看结果
ELK日志监控平台_第65张图片
ELK日志监控平台_第66张图片
使用其标准化在input端的配置
ELK日志监控平台
ELK日志监控平台_第67张图片
删除之前的读取情况并删除日志重新导入操作
ELK日志监控平台_第68张图片
ELK日志监控平台_第69张图片
ELK日志监控平台_第70张图片
ELK日志监控平台
ELK日志监控平台_第71张图片

3 redis+apache

1 Redis 搭建

ELK日志监控平台_第72张图片
ELK日志监控平台_第73张图片
ELK日志监控平台_第74张图片
ELK日志监控平台_第75张图片
ELK日志监控平台
ELK日志监控平台_第76张图片
ELK日志监控平台_第77张图片
ELK日志监控平台

2 httpd的安装与基本配置

ELK日志监控平台_第78张图片
ELK日志监控平台

3 创建HTTP日日志读取

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

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

ELK日志监控平台
ELK日志监控平台_第83张图片
ELK日志监控平台_第84张图片
ELK日志监控平台

5 配置标准化输出

ELK日志监控平台
ELK日志监控平台_第85张图片
ELK日志监控平台_第86张图片

6 apache 日志的标准化输出

日志格式化模板:
ELK日志监控平台_第87张图片
ELK日志监控平台_第88张图片
http日志格式定义
ELK日志监控平台
ELK日志监控平台_第89张图片

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

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

ELK日志监控平台
ELK日志监控平台_第90张图片
启动服务
ELK日志监控平台_第91张图片
查看redis情况
ELK日志监控平台

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

ELK日志监控平台
ELK日志监控平台_第92张图片
ELK日志监控平台
ELK日志监控平台_第93张图片
ELK日志监控平台
ELK日志监控平台_第94张图片
ELK日志监控平台
ELK日志监控平台_第95张图片
ELK日志监控平台_第96张图片
ELK日志监控平台_第97张图片
ELK日志监控平台_第98张图片
ELK日志监控平台_第99张图片
访问看其日志是否增加
ELK日志监控平台
ELK日志监控平台_第100张图片
ELK日志监控平台_第101张图片
ELK日志监控平台_第102张图片

4 kibana 安装及配置

1 安装kibana

ELK日志监控平台_第103张图片

2 配置

配置其访问es及自身打开一个索引
ELK日志监控平台
ELK日志监控平台_第104张图片

3 启动服监听端口

ELK日志监控平台

4 访问

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

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

使用markdown 语法创建联系人信息
ELK日志监控平台_第109张图片
ELK日志监控平台_第110张图片
ELK日志监控平台_第111张图片
ELK日志监控平台_第112张图片
ELK日志监控平台_第113张图片
ELK日志监控平台_第114张图片
ELK日志监控平台_第115张图片
使用计数器实现apache访问量的查看
ELK日志监控平台_第116张图片
ELK日志监控平台_第117张图片
ELK日志监控平台_第118张图片

ELK日志监控平台_第119张图片
ELK日志监控平台_第120张图片
ELK日志监控平台_第121张图片
ELK日志监控平台_第122张图片
ELK日志监控平台_第123张图片
ELK日志监控平台_第124张图片
使用柱状图实现访问排行榜
ELK日志监控平台_第125张图片
ELK日志监控平台_第126张图片
ELK日志监控平台_第127张图片
ELK日志监控平台_第128张图片
ELK日志监控平台_第129张图片
ELK日志监控平台_第130张图片
ELK日志监控平台_第131张图片
ELK日志监控平台_第132张图片
ELK日志监控平台_第133张图片
ELK日志监控平台_第134张图片
ELK日志监控平台_第135张图片
ELK日志监控平台_第136张图片
ELK日志监控平台_第137张图片
ELK日志监控平台_第138张图片
将其汇聚,并进行保存
ELK日志监控平台_第139张图片