最终架构确定为  logs--->blieb--->redis/kafka--->logstash--->es--->kibana

注意:  geoip下载地址:

wget     http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

filebeat  配置文件

filebeat-nginx

filebeat.prospectors:
- type: log
paths:
- /usr/local/nginx/logs/access.log #nginx路径
# tags: ["access"]
fields:
app: www #所属于的项目
type: nginx-access
fields_under_root: true #目录制顶 - type: log
paths:
- /usr/local/nginx/logs/error.log
# ags: ["error"]
fields:
app: www
type: nginx-error
fields_under_root: true output.redis: #输入的redis
hosts: ["192.168.0.215"] #ip 密码 key 数据库 数据类型
password: ""
key: "filebeat"
db: 0
datatype: list

filebeat-tomcat

filebeat.prospectors:
- type: log
paths:
- /usr/local/tomcat/logs/catalina.out
# tags: ["tomcat"]
fields:
app: www
type: tomcat-catalina
fields_under_root: true
multiline:
pattern: '^\[' #自定义正则
negate: true
match: after output.redis:
hosts: ["192.168.0.215"]
password: ""
key: "filebeat"
db: 0
datatype: list

nginx-json格式化

log_format json '{ "@timestamp": "$time_iso8601", '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"request_time": "$request_time", '
'"status": "$status", '
'"request_uri": "$request_uri", '
'"request_method": "$request_method", '
'"http_referrer": "$http_referer", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent"}';

logstash配置文件

logstash-to-es-nginxjson.com    (nginx json格式化日志)

input {  #进入的类型
redis {
host => "192.168.0.215"
port => 6379
password => ""
db => ""
data_type => "list"
key => "filebeat"
}
} filter {
if [app] == "www" { #判断项目
if [type] == "nginx-access" { #判断类型
json {
source => "message"
remove_field => ["message"]
}
geoip {
source => "remote_addr"
target => "geoip"
database => "/opt/GeoLite2-City.mmdb" #geoip 数据库地址 可以自定义
add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
}
mutate {
convert => ["[geoip][coordinates]", "float"]
}
}
}
} output {
elasticsearch {
hosts => ["http://192.168.0.212:9200","http://192.168.0.213:9200","http://192.168.0.214:9200"] #es集群
index => "logstash-%{type}-%{+YYYY.MM.dd}"
}
stdout{codec => rubydebug }
}

logstash-to-es-custom.conf    自定义格式化

input {
redis {
host => "192.168.0.215"
port => 6379
password => ""
db => ""
data_type => "list"
key => "filebeat"
}
} filter {
if [app] == "www" {
if [type] == "nginx-access" {
grok {
match => {
"message" => "%{IPV4:remote_addr} - (%{USERNAME:remote_user}|-) \[%{HTTPDATE:time_local}\] \"%{WORD:request_method} %{URIPATHPARAM:request_uri} HTTP/%{NUMBER:http_protocol}\" %{NUMBER:http_status} %{NUMBER:body_bytes_sent} \"%{GREEDYDATA:http_referer}\" \"%{GREEDYDATA:http_user_agent}\" \"(%{IPV4:http_x_forwarded_for}|-)\""
} #自定义格式化
overwrite => ["message"]
}
geoip {
source => "remote_addr"
target => "geoip"
database => "/opt/GeoLite2-City.mmdb"
add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
}
date {
locale => "en"
match => ["time_local", "dd/MMM/yyyy:HH:mm:ss Z"]
}
mutate {
convert => ["[geoip][coordinates]", "float"]
}
}
}
} output {
elasticsearch {
hosts => ["http://192.168.0.212:9200","http://192.168.0.213:9200","http://192.168.0.214:9200"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
}
stdout{codec => rubydebug }
}

elk-(七)的更多相关文章

  1. SpringBoot进阶教程(七十四)整合ELK

    在上一篇文章<SpringBoot进阶教程(七十三)整合elasticsearch >,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义.安装及使用 ...

  2. ELK系列七:Elasticsearch的集群配置和监控以及在部署ELK中踩的坑

    1.基本下载安装 #按照ELK系列一博客安装启动即可,没有大坑,注意一下权限即可 chmod -R 777 ./elasticsearch #此外没有java的,注意安装下JDK,我这次部署的环境是C ...

  3. 中小型研发团队架构实践七:集中式日志ELK

    一.集中式日志 日志可分为系统日志.应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用.我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及 ...

  4. Spring Cloud Sleuth+ZipKin+ELK服务链路追踪(七)

    序言 sleuth是spring cloud的分布式跟踪工具,主要记录链路调用数据,本身只支持内存存储,在业务量大的场景下,为拉提升系统性能也可通过http传输数据,也可换做rabbit或者kafka ...

  5. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  6. ELK Packetbeat 部署指南(15th)

    原文链接:http://www.ttlsa.com/elk/elk-packetbeat-deployment-guide/ Packetbeat 是一个实时网络数据包分析工具,与elasticsea ...

  7. ELK 之二:ElasticSearch 和Logstash高级使用

    一:文档 官方文档地址:1.x版本和2.x版本 https://www.elastic.co/guide/en/elasticsearch/guide/index.html 硬件要求: 1.内存,官方 ...

  8. 云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)

    2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功  能还是相当复杂得,并且维护复杂.将特殊性封装到 ...

  9. ELK日志管理搭建

    目录: 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Kibana 五.安装Nginx 六.安装Logstash 七.安装Logstash-forwarder 八.测试 系统环 ...

  10. [原创]ubuntu14.04部署ELK+redis日志分析系统

    ubuntu14.04部署ELK+redis日志分析系统 [环境] host1:172.17.0.4 搭建ELK+redis服务 host2:172.17.0.3 搭建logstash+nginx服务 ...

随机推荐

  1. jquery自带的进度条功能如何使用?

    弹出进度条:先做弹出的功能modal,再做进度条显示.在弹出的界面上增加进度条功能 $.ajax({ xhr: function() { var xhr = new window.XMLHttpReq ...

  2. PHP 使用POST 获取不到部分数据问题

    使用PHP开发的一个项目,在测试阶段客户反馈说数据没有保存成功 而我之前测试是通过的,但按客户的信息上却重现了问题 问题是这样的 客户通过浏览器进行保存,但有些数据已经保存成功,但某些数据却没有保存成 ...

  3. let's encrypt申请

    let's encrypt申请 https://keelii.com/2016/06/12/free-https-cert-lets-encrypt-apply-install/ https://ww ...

  4. 招中高级web开发工程师

    >>招中高级web开发工程师

  5. 【转】ASP.NET中验证控件的使用

    前言: 前几日,无奈用JS判断控件的有效性,发现的确是一件费力.费神的事情!特别是针对邮件格式.邮政编码等的关于正则表达式的JS验证(其中涉及正则表达式的比较等,较烦~).其实对于这些常用的控件有效性 ...

  6. CentOS 7.2编译安装PHP7

    原文: https://typecodes.com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referralPHP官 ...

  7. C# 批量图片打包下载

    实现点击下载功能,可以一次性下载多个附件.具体实现代码如下 : private void Com_XZTP_FJ(string maiId, string wtfjdz, string CLwtfjd ...

  8. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章)

    前言 这是一篇学习笔记. 学习的材料来自Jay Kreps的一篇讲Log的博文. 原文非常长.可是我坚持看完了,收获颇多,也深深为Jay哥的技术能力.架构能力和对于分布式系统的理解之深刻所折服.同一时 ...

  9. hdoj:2067

    根据公式计算卡特兰数,始终出现越界,自己无法解决 #include <iostream> using namespace std; long long Catalan(int num) { ...

  10. error $GOPATH: no library found in $GOPATH: rdkafka

    安装confluent-kafka-go出错时,请使用brew安装pkg-config,手动go get安装的pkg-config还不行... 错误提示: go get -u github.com/c ...