ELK部署

  • A+
所属分类:ELK

一.简介

要做好运维,不仅要看每个服务器的状态,还要查看服务器日志和应用日志。维护的服务器少还好,如果查看几十台或者上百台服务器,那岂不是累死人,而这时候我们就需要ELK日志分析系统了。 ELKElasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。 Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。 Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。 Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

二.elasticsearch

1.安装JDK

2.配置elasticsearch yum源

导入yum密钥

配置yum源

3.安装elasticsearch

4.创建数据和日志目录

修改文件属主

5.vim /etc/sysctl.conf

sysctl -w vm.max_map_count=262144

6.修改默认配置文件elasticsearch.yml(也可在/etc/sysconfig/elasticsearch中配置,此处我们只修改默认配置文件)

vim /etc/elasticsearch/elasticsearch.yml

7.启动服务

8.查看服务状态

9.如启动保存可以查看日志,文件名以集群名字定义

10.开机启动

11.测试服务是否启动成功

12.集群状态

13.安装插件

列出目录的插件

安装icu分析插件,使用ICU 库增加扩展的Unicode支持,包括更好地分析亚洲语言,Unicode标准化,Unicode感知案例折叠,排序规则支持和音译。

安装Mapper插件核心插件Mapper Attachments Plugin,此插件允许将新的字段数据类型添加到Elasticsearch。而在5.0版本中此插件已被ingest-attachment plugin取代所以我们也可以直接安装ingest-attachment plugin,此处为了保险两个插件我都安装了

安装mapper-size插件,mapper-size插件提供了_size mets字段,该字段在启用时会以原始source字段的字节为单位进行索引。

安装mapper-murmur3, mapper-murmur3插件允许在索引时计算散列,并存储在索引中,以便以后与cardinality聚合使用。

安装elasticsearch-head插件,对于Elasticsearch 5.x:不支持网站插件。作为独立环境运行 安装所需环境

(如果安装报错,执行npm install -g grunt)

npm run start & 或grunt server也可以启动 打开浏览器地址访问,端口9100

ELK部署 ELK部署 删除数据的话,可以先在数据浏览那里找到要删除的id,然后输入test/longs/id,选择DELETE,此处图省略。

三.LogStash

1.导入yum密钥

2.安装LogStash

3.查看安装路径并添加到系统变量

4.测试

成功后输入hello,world!

测试一下 hello,world!返回值

2017-08-12T21:14:47.617Z localhost.localdomain hello,world!

注: -e 执行操作 input 标准输入 { input } 插件 output 标准输出 { stdout } 插件

5.把logstash的结果输出到elasticsearch中

ELK部署 ELK部署 6.标准输出和elasticsearch中都保留的情况

官方配置指南:https://www.elastic.co/guide/en/logstash/current/configuration.html

7.处理syslog消息

vim /etc/logstash/conf.d/syslog.conf

运行配置文件

然后再另一个客户端上telnet ip 5000,比如我的主机ip是192.168.2.30, telnet 192.168.2.30 5000 随便输入内容,就会有日志显示 ELK部署 8.java日志,并把日志是索引按类型存放

vim /etc/logstash/conf.d/file.conf

9.grok实例

Grok目前是logstash中将最坏的非结构化日志数据解析为结构化和可查询的最佳方式。 此工具非常适用于syslog日志,apache和其他Web服务器日志,mysql日志以及通常为人类而不是计算机消费而编写的任何日志格式。

vim /etc/logstash/conf.d/grok.conf

 

运行成功后,输入 55.3.244.1 GET /index.html 15824 0.043

10.多行匹配实例

vim /etc/logstash/conf.d/mutiline.conf

 

11.利用logstash做nginx的访问日志分析

安装nginx

编辑nginx.conf配置文件,日志保存成json格式

vim /etc/nginx/nginx.conf

注释掉http段中的access_log 添加如下内容

在server段中添加访问日志以json格式保存 access_log /var/log/nginx/access_json.log json; ELK部署 ELK部署 检测nginx配置文件

无报错启动服务

测试nginx服务

实时监测一下nginx访问日志

创建logstash的nginx.conf

配置文件

vim /etc/logstash/cond.d/nginx.conf

12.利用logstash做syslog的日志分析

修改rsyslog.conf配置文件

vim /etc/rsyslog.conf

开启以下配置,并配置为本机ip

重启rsyslog服务  

创建syslog.conf配置文件

vim /etc/logstash/conf.d/system-syslog.conf

 

运行配置文件

创建完整版logstash配置文件

vim /etc/logstash/conf.d/all.conf

运行logstash中的all.conf配置文件

三.kibana

安装kibana

修改配置文件

vim /etc/kibana/kibana.yml

安装screen,以便kibana后台运行

启动服务

开机启动

测试kibana是否成功

配置动态效果图

ELK部署

创建饼图 ELK部署 创建Nginx独立ip访问 ELK部署 Nginx页面访问次数统计 ELK部署 Nginx页面访问总次数 ELK部署 Nginx访问时间波动图 ELK部署 把所有图放到仪表盘中 ELK部署 四.redis

1.安装redis

2.修改配置文件,后台启动

vim /etc/redis.conf

把daemonize no改为daemonize yes

3.启动redis

4.测试redis

5.编辑logstash文件

vim /etc/logstash/conf.d/redis-out.conf

运行logstash

logstash -f /etc/logstash/conf.d/redis-out.conf

运行成功

hello,redis

开启另一个终端 redis-cli

6.把所有日志监控的来源文件都存放到redis中

vim /etc/logstash/conf.d/test.conf

7.开启另一个终端运行

8.把redis数据读取出来,写入到elasticsearch中(需另一台主机做测试,这里我在本机测试一下,看看效果,不过无意义) 先在后台运行test.conf,然后修改logstash.yml中path.data。要不然启动不成功,提示数据文件已占用

vim /etc/logstash/conf.d/testout.conf

9.登录kibana上,有数据,说明这个配置文件无问题,只不过这样在本机上做测试无意义,不建议这么做 以上大部分内容转自安神

avatar
  • 版权声明:本站原创文章,于2017-08-1300:22:48,由 发表,共 5309 字。
  • 转载请注明:ELK部署 | My L

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: