ELK+Beats日志分析系统部署
一、 名词介绍:
E:ElasticSearch 搜索,简称es
L:Logstash 管理日志和事件的工具
K:Kibana 功能强大的数据显示客户端
Beats 轻量级数据传输组件,这里我们主要使用FileBeat
二、 应用包准备:
elasticsearch-6.1.2.tar.gz
logstash-6.1.2.tar.gz
kibana-6.1.2-linux-x86_64.tar.gz
filebeat-6.1.2-linux-x86_64.tar.gz
jdk-7 以上
三、 部署安装:
1.集群部署

如果logstash 压力很大,那么可以考虑filebeat 和logstash 之间引入redis或kafka作为缓冲。
以后可以使用集群部署,目前先采用如下部署方式:
elasticsearch+ logstash+ kibana 于同一台机器,假设ip为:192.168.1.228
filebeat 和应用服务器或其他需要做日志处理的服务器一起部署
2. 安装JDK 1.7
省略安装步骤,推荐1.7+版本以上
java –version
设置java的环境变量,比如
vim ~/.bashrc
>>
export JAVA_HOME= /home/xiel/Java/jdk1.7.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
>>
source ~/.bashrc
3. 搭建ElasticSearch
安装
解压elasticsearch tar.gz 即可
配置
进入 安装目录,修改conf/ elasticsearch.yml :
修改network.host 为本机ip,如:
network.host: 192.168.1.228
其他:
cluster.name: hyxt_logs_es (集群名称)
node.name: "node1"(集群结点名称)
node.master: true(是否可被选为主结点,默认true)
node.data: true(结点是否存储数据,默认true)
index.number_of_shards: 5(索引分片数)
index.number_of_replicas: 1(索引副本数)
transport.tcp.port: 9300(数据传输IP)
http.port: 9200(对外访问监听IP)
启动
./ bin/elasticsearch -d (-d:后台启动)
测试验证
执行 curl -X GET http://192.168.1.228:9200
{
"name" : "node-1",
"cluster_name" : "hyxt_logs_es",
"cluster_uuid" : "l_31dzUURiWnLUAI60Zm8w",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
表示安装配置成功。
常用基本命令:
查询所有数据:curl http://192.168.1.228:9200/_search?pretty
集群健康状态:curl -XGET http://192.168.1.228:9200/_cluster/health?pretty
删除所有数据:curl -X DELETE 'http://192.168.1.228:9200/_all'
删除指定索引:curl -X DELETE 'http://192.168.1.228:9200/索引名称'
注: 这里最好不要使用localhost,因为我们需要远程访问,所以,我们应该直接使用对应服务器的ip地址
elasticsearch 集群部署:
elasticsearch 配置集群很简单,基本只要简单修改。我们修改elasticsearch.yml文件:
使得:cluster.name 相同和 node.name 唯一就ok了!
4. 搭建Logstash
安装
解压logstash tar.gz
配置
进入安装目录,为logstash新建一个配置文件config/hy_logstash.conf:
vi hy_logstash.conf
配置文件内容如下
input {
beats {
port => 5044
# sincedb_path => "/app/logstash-5.1.1/.sincedb"
}
}
filter {
if [type] == "app_test" {
grok {
match => { "message" => "((?<logdate>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND})) %{WORD:level} (?<srcCode>\[(?:[a-zA-Z0-9-])+\]\[(?:[a-zA-Z0-9-\.])+:%{NUMBER}\]) - )?(?<srcLog>.+)" }
}
mutate {remove_field => [ "@timestamp", "@version", "message" ] }
} else if [type] == "mysql_test" {
grok {
match => { "message" => "((?<logdate>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND})) %{WORD:level} (?<srcCode>\[(?:[a-zA-Z0-9-])+\]\[(?:[a-zA-Z0-9-\.])+:%{NUMBER}\]) - )?(?<srcLog>.+)" }
}
mutate {remove_field => [ "@version", "message" ] }
} else if [type] == "nginx_access_test" {
grok {
match => { "message" => "MAINNGINXLOG %{COMBINEDAPACHELOG} %{QS:x_forwarded_for}" }
# mutate {remove_field => [ "@timestamp", "@version", "message" ] }
}
}
date {
match => ["logdate", "yyyy-MM-dd HH:mm:ss.SSS"]
}
if "_grokparsefailure" in [tags] {
} else {
mutate {remove_field => [ "logdate", "@version", "message" ] }
}
if !([level]) {
mutate {
add_field => { "level" => "other" }
}
}
}
output {
if "_grokparsefailure" in [tags] {
file { path => "/var/log/logstash/grokparsefailure-%{type}-%{+YYYY.MM.dd}.log" }
}
elasticsearch {
hosts => ["ES_IP:9200"]
index => "hy_log_%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
template_overwrite => true
}
}
配置文件 必须要以”.conf“以尾缀。上面的文件部分配置了 应用日志,mysql日志,nginx访问日志,nginx错误日志
ES_IP 为安装elasticsearch 服务器的ip
启动
nohup ./bin/logstash -f config/ hy_logstash.conf &
5. 搭建Kibana
安装
解压kibana tar.gz
配置
进入安装目录,默认配置文件为:config/kibana.yml。可以修改kibana.yml必须要正确配置elasticsearch的地址和索引:
主要修改的地方:
server.host: "192.168.1.228"
elasticsearch.url: "http://192.168.1.228:9200"
启动
nohup ./bin/kibana &。
测试验证
登录访问:http://192.168.1.228:5601(默认端口为5601)
6. 搭建FileBeat
安装
解压filebeat tar.gz
配置
进入安装目录,默认配置文件为:filebeat.yml:
配置如下:
- type: log
filebeat.prospectors:
- type: log # 应用日志
fields_under_root: true
fields:
app_id: el_shop_1
type: app_test
paths:
- /www/tomcat-demo/logs/catalina.out
multiline: # 多行合并,将\s+at \w开头的行追加到前一行末尾
pattern: '^\s+at \w'
negate: false
match: after
- type: log # mysql慢查询日志
fields_under_root: true
fields:
app_id: mysql-slow
type: beat_test
paths:
- /usr/local/filebeat-6.1.2-linux-x86_64/slow.log
multiline: # 多行合并
pattern: '^\# User@Host\: '
negate: true
match: after
timeout: 10s
- type: log # nginx访问日志
fields_under_root: true
fields:
app_id: nginx
type: nginx_access
paths:
- /usr/local/filebeat-6.1.2-linux-x86_64/access.log
multiline: # 多行合并
pattern: '^(\d{1,3}){4} \- \- \['
negate: true
match: after
timeout: 10s
- type: log # nginx错误日志
fields_under_root: true
fields:
app_id: nginx
type: nginx_error
paths:
- /usr/local/filebeat-6.1.2-linux-x86_64/error.log
multiline: # 多行合并
pattern: '^\d{4}/\d{2}/\d{2} '
negate: true
match: after
timeout: 10s
output.logstash:
enabled: true
hosts: ["192.168.1.228:5044"]
index: app-%{[type]}
compression_level: 3
#loadbalance: true
注:
上面的文件部分配置了 应用日志,mysql日志,nginx访问日志,nginx错误日志
默认的index 跟踪文件是:data/registry
启动
nohup ./ filebeat &
7. 搭建X-Pack
安装Xpach之前必须先安装好es和kibana
You must install Elasticsearch and Kibana before you install X-Pack. If you plan to use the X-Pack features in Logstash, you must also install Logstash before you install X-Pack
然后分别在es,kibana中安装xpack插件:
es中安装xpack插件
进入es安装目录,执行:
bin/elasticsearch-plugin install x-pack
安装过程中,我们需要进行一些配置,默认统统输入y即可
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/installing-xpack-es.html
安装完毕需要重启es
kibana中安装xpack插件
进入kibana安装目录,执行:
bin/kibana-plugin install x-pack
参考:
https://www.elastic.co/guide/en/kibana/6.2/installing-xpack-kb.html
安装完毕需要重启kibana
logstash中安装xpack插件(可选)
进入logstash安装目录,执行:
bin/logstash-plugin install x-pack
参考:
https://www.elastic.co/guide/en/logstash/6.2/installing-xpack-log.html
安装完毕需要重启logstash
四、 使用Kibana:
Discover 标签页用于交互式探索你的数据

Visualize 标签页用来设计可视化。你可以保存可视化,以后再用,或者加载合并到dashboard 里。一个可视化可以基于以下几种数据源类型

Dashboard 能让你自由排列一组已保存的可视化。然后你可以保存这个仪表板,用来分享或者重载

Timelion一个崭新的 pipeline aggregation 特性

Dev tools 开发工具

监控:

管理:

ELK+Beats日志分析系统部署的更多相关文章
- [原创]ubuntu14.04部署ELK+redis日志分析系统
ubuntu14.04部署ELK+redis日志分析系统 [环境] host1:172.17.0.4 搭建ELK+redis服务 host2:172.17.0.3 搭建logstash+nginx服务 ...
- ELK + Filebeat 日志分析系统
ELK + Filebeat 日志分析系统 架构图 环境 OS:CentOS 7.4 Filebeat: 6.3.2 Logstash: 6.3.2 Elasticsearch 6.3.2 Kiban ...
- docker:搭建ELK 开源日志分析系统
ELK 是由三部分组成的一套日志分析系统, Elasticsearch: 基于json分析搜索引擎,Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片 ...
- ELK日志分析系统部署
======================================================================================= 操作系统 IP地址 主机 ...
- elk实时日志分析平台部署搭建详细实现过程
原文:http://blog.csdn.net/mchdba/article/details/52132663 1.ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:以下内容 ...
- springboot+ELK+logback日志分析系统demo
之前写的有点乱,这篇整理了一下搭建了一个简单的ELK日志系统 借鉴此博客完成:https://blog.csdn.net/qq_22211217/article/details/80764568 设置 ...
- ELK 集中日志分析 windows部署实战
一步步来 1.下载软件 Elasticsearch: https://download.elasticsearch.org/...p/elasticsearch/2.0.0/elasticsearch ...
- filebeat+redis+logstash+elasticsearch+kibana搭建日志分析系统
filebeat+redis+elk搭建日志分析系统 官网下载地址:https://www.elastic.co/downloads 1.下载安装filebeat wget https://artif ...
- ELK日志分析系统简单部署
1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...
随机推荐
- SQL-47 如何获取emp_v和employees有相同的数据?
题目描述 存在如下的视图:create view emp_v as select * from employees where emp_no >10005;如何获取emp_v和employees ...
- traceroute命令初探
一.学习目标 了解traceroute基本概念 了解traceroute工作原理及详细过程 熟悉traceroute常用命令 一些注意点 二.traceroute基本概念 traceroute (Wi ...
- Adobe® Reader®.插件开发
Thank you for your interest in developing a plug-in for Adobe® Reader®. To build an Adobe Reader plu ...
- 结对项目——黄金分割点游戏(陈香宇&蔡春燕)
结对项目名称:黄金分割点游戏(单机) 运行环境:vs 编译语言:c语言 项目分析: 实现的功能:用户可以选择继续游戏并且可以保存之前获得的分数,但是为了游戏的公平性,游戏的参数人数一开始用户确定以后就 ...
- Windows10 VS2017 C++信号处理
#include "pch.h" #include <iostream> #include <csignal> #include <windows.h ...
- 12--Python入门--文件读写--TXT文件
在进行数据分析之前,可能需要读写自己的数据文件.或者在完成数据分析之后,想把结果输出到外部的文件在Python中,利用pandas模块中的几个函数,可以轻松实现这些功能,利用pandas读取文件之后数 ...
- pytorch中,不同的kernel对不同的feature map进行卷积之后输出某一个channel对应的多个feature map如何得到一个channel的feature map
实际上在卷积操作的时候,比如说,我某一层输出的feature map的size为4713*13 channel的数目为7,设经过某卷积层之后,网络输出的feature map的channel的数目为1 ...
- linux基础之系统管理类命令
系统管理类命令 1.reboot.halt.poweroff命令 基本介绍 reboot命令.halt命令.poweroff命令:都表示重启或者关闭系统 基本语法 reboot/halt/powero ...
- mysql与mysqli的区别
博客搬家了,欢迎大家关注,https://bobjin.com mysqli连接是永久连接,而MySQL是非永久连接. mysql连接:每当第二次使用的时候,都会重新打开一个新的进程. mysqli连 ...
- C#语言与变量、数据类型
一.计算机语言 1.计算机语言包括:C\PHP\Ruby\JAVA\C#\Basi\JS\C++ 2.计算机语言发展史:机器语言——汇编语言——高级语言 二.代码 1.程序始终:Code(编码).Co ...