一、** elk:日志搜集平台 **
主要作用 —— 开发人员没有对服务器的访问权限,创用户给开发人员,看日志报错信息
1、组件介绍
(1)Elasticsearch:—— 只搜索和分析日志
ElasticSearch是一个基于Lucene的开源分布式搜索服务。只搜索和分析日志
特点:分布式(可以搭建集群),零配置,自动发现,索引自动分片,索引副本机制,多数据源等。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 在elasticsearch集群中,所有节点的数据是均等的。
索引: 索引(库)-->类型(表)-->文档(记录)
(2)Logstash: —— 只收集和过滤日志,和改格式
Logstash是一个完全开源工具,可以对你的日志进行收集、过滤、分析,并将其存储,供以后使用(如,搜索),logstash带有一个web界面,搜索和展示所有日志。 只收集和过滤日志,和改格式
简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供很多功能强大的滤网以满足你的各种应用场景。
② Logstash的事件(logstash将数据流中的每一条数据称之为一个事件event)
处理流水线有三个主要角色完成:inputs –> filters –> outputs:
logstash整个工作流分为三个阶段:输入、过滤、输出。每个阶段都有强大的插件提供支持:
Input 必须,负责产生事件(Inputs generate events),常用的插件有
-
file 从文件系统收集数据
-
syslog 从syslog日志收集数据
-
redis 从redis收集日志
-
beats 从beats family收集日志(如:Filebeats)
Filter过滤,负责数据处理与转换(filters modify them),常用的插件有
-
grok是logstash中最常用的日志解释和结构化插件。:grok是一种采用组合多个预定义的正则表达式,用来匹配分割文本并映射到关键字的工具。
-
mutate 支持事件的变换,例如重命名、移除、替换、修改等
-
drop 完全丢弃事件
-
clone 克隆事件
output 输出,必须,负责数据输出(outputs ship them elsewhere),常用的插件有
-
elasticsearch 把数据输出到elasticsearch
-
file 把数据输出为普通的文件
(3)Kibana: —— 前端展示工具 —— 汇总、分析和搜索重要数据日志
Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮你汇总、分析和搜索重要数据日志。
二、实施部署
1、 Elasticsearch部署
A、安装配置jdk8
ES运行依赖jdk8 -----三台机器都操作,先上传jdk1.8
[root@mes-1 ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/ [root@mes-1 ~]# cd /usr/local/ [root@mes-1 local]# mv jdk1.8.0_191/ java [root@mes-1 local]# vim /etc/profile JAVA_HOME=/usr/local/java PATH=$JAVA_HOME/bin:$PATH [root@mes-1 ~]# source /etc/profile [root@mes-1 local]# java -version
B、安装配置ES----只在第一台操作操作下面的部分
(1)创建运行ES的普通用户
[root@mes-1 ~]# useradd elsearch [root@mes-1 ~]# echo "123456" | passwd --stdin "elsearch"
(2)安装配置ES
[root@mes-1 ~]# tar xzf elasticsearch-6.5.4.tar.gz -C /usr/local/ [root@mes-1 ~]# cd /usr/l ocal/elasticsearch-6.5.4/config/ [root@mes-1 config]# ls elasticsearch.yml log4j2.properties roles.yml users_roles jvm.options role_mapping.yml users [root@mes-1 config]# cp elasticsearch.yml elasticsearch.yml.bak [root@mes-1 config]# vim elasticsearch.yml ----找