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

注意:  geoip下载地址:

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

filebeat  配置文件

filebeat-nginx

  1. filebeat.prospectors:
  2. - type: log
  3. paths:
  4. - /usr/local/nginx/logs/access.log #nginx路径
  5. # tags: ["access"]
  6. fields:
  7. app: www #所属于的项目
  8. type: nginx-access
  9. fields_under_root: true #目录制顶
  10.  
  11. - type: log
  12. paths:
  13. - /usr/local/nginx/logs/error.log
  14. # ags: ["error"]
  15. fields:
  16. app: www
  17. type: nginx-error
  18. fields_under_root: true
  19.  
  20. output.redis: #输入的redis
  21. hosts: ["192.168.0.215"] #ip 密码 key 数据库 数据类型
  22. password: ""
  23. key: "filebeat"
  24. db: 0
  25. datatype: list

filebeat-tomcat

  1. filebeat.prospectors:
  2. - type: log
  3. paths:
  4. - /usr/local/tomcat/logs/catalina.out
  5. # tags: ["tomcat"]
  6. fields:
  7. app: www
  8. type: tomcat-catalina
  9. fields_under_root: true
  10. multiline:
  11. pattern: '^\[' #自定义正则
  12. negate: true
  13. match: after
  14.  
  15. output.redis:
  16. hosts: ["192.168.0.215"]
  17. password: ""
  18. key: "filebeat"
  19. db: 0
  20. datatype: list

nginx-json格式化

  1. log_format json '{ "@timestamp": "$time_iso8601", '
  2. '"remote_addr": "$remote_addr", '
  3. '"remote_user": "$remote_user", '
  4. '"body_bytes_sent": "$body_bytes_sent", '
  5. '"request_time": "$request_time", '
  6. '"status": "$status", '
  7. '"request_uri": "$request_uri", '
  8. '"request_method": "$request_method", '
  9. '"http_referrer": "$http_referer", '
  10. '"http_x_forwarded_for": "$http_x_forwarded_for", '
  11. '"http_user_agent": "$http_user_agent"}';

logstash配置文件

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

  1. input { #进入的类型
  2. redis {
  3. host => "192.168.0.215"
  4. port => 6379
  5. password => ""
  6. db => ""
  7. data_type => "list"
  8. key => "filebeat"
  9. }
  10. }
  11.  
  12. filter {
  13. if [app] == "www" { #判断项目
  14. if [type] == "nginx-access" { #判断类型
  15. json {
  16. source => "message"
  17. remove_field => ["message"]
  18. }
  19. geoip {
  20. source => "remote_addr"
  21. target => "geoip"
  22. database => "/opt/GeoLite2-City.mmdb" #geoip 数据库地址 可以自定义
  23. add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
  24. add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
  25. }
  26. mutate {
  27. convert => ["[geoip][coordinates]", "float"]
  28. }
  29. }
  30. }
  31. }
  32.  
  33. output {
  34. elasticsearch {
  35. hosts => ["http://192.168.0.212:9200","http://192.168.0.213:9200","http://192.168.0.214:9200"] #es集群
  36. index => "logstash-%{type}-%{+YYYY.MM.dd}"
  37. }
  38. stdout{codec => rubydebug }
  39. }

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

  1. input {
  2. redis {
  3. host => "192.168.0.215"
  4. port => 6379
  5. password => ""
  6. db => ""
  7. data_type => "list"
  8. key => "filebeat"
  9. }
  10. }
  11.  
  12. filter {
  13. if [app] == "www" {
  14. if [type] == "nginx-access" {
  15. grok {
  16. match => {
  17. "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}|-)\""
  18. } #自定义格式化
  19. overwrite => ["message"]
  20. }
  21. geoip {
  22. source => "remote_addr"
  23. target => "geoip"
  24. database => "/opt/GeoLite2-City.mmdb"
  25. add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
  26. add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
  27. }
  28. date {
  29. locale => "en"
  30. match => ["time_local", "dd/MMM/yyyy:HH:mm:ss Z"]
  31. }
  32. mutate {
  33. convert => ["[geoip][coordinates]", "float"]
  34. }
  35. }
  36. }
  37. }
  38.  
  39. output {
  40. elasticsearch {
  41. hosts => ["http://192.168.0.212:9200","http://192.168.0.213:9200","http://192.168.0.214:9200"]
  42. index => "logstash-%{type}-%{+YYYY.MM.dd}"
  43. }
  44. stdout{codec => rubydebug }
  45. }

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. springboot 注解整理

    项目用到的注解作用: bean的分类标识@Service: 注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表 ...

  2. Github超棒资源汇总

    Awesome List 中文资源大全 经典编程书籍大全 免费的编程中文书籍索引 awesome-awesomeness-zh_CN https://github.com/jnv/lists awes ...

  3. Linux中查看文件夹占用磁盘大小

    一.命令 ./ du -h ./ 查看当前目录占用空间 二.样例

  4. 基于git命令的代码统计方法

    基于git命令的代码统计方法 没什么好说的,基于git log命令,使用前提是安装了git ...... .统计所有人代码量 统计所有人代码增删量,拷贝如下命令,直接在git bash等终端,git项 ...

  5. 安装rcssmin方法

    #安装rcssmin方法'''pip install wheelpip install rcssmin --install-option="--without-c-extensions&qu ...

  6. CentOS7 限制SSH密码尝试次数

    编辑配置文件: vi /etc/pam.d/sshd 在文末添加内容: auth required pam_tally2.so deny= unlock_time= 代表失败5次,禁止访问600秒 保 ...

  7. vue:资源小记

    github: https://github.com/keenleung/vue-tutorials 过滤器: https://segmentfault.com/a/1190000005027001 ...

  8. vs2017 打开附带的localdb v13

    查看自己本机装了哪些版本的localdb 打开数据库资源管理器   添加数据库连接     选择要连接的localdb版本,这里选择的是v13版本      添加数据库   新建一个test数据库   ...

  9. 分析轮子(四)- 我也玩一把 Serializable.java

    前言:在写 分析轮子(一)-ArrayList.java 的时候曾经下过一个结论 “实现Serializable接口,表示ArrayList是可序列化的”,这个结论是以往学习的经验所得,并且平时在编程 ...

  10. asp.net中WebResponse 跨域访问示例

    前两天,一个朋友让我帮他写这样一个程序:在asp.net里面访问asp的页面,把数据提交对方的数据库后,根据返回的值(返回值为:OK或ERROR),如果为OK再把填入本地数据库.当时,想当然,觉得很简 ...