先贴一下我的BELK架构

1、Download and install the Public Signing Key:

  1. # wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

2、You may need to install the apt-transport-https package on Debian before proceeding:

  1. # aptitude install -y apt-transport-https

3、Save the repository definition to /etc/apt/sources.list.d/elastic-5.x.list:

  1. # echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-5.x.list

4、Run aptitude update, and the repository is ready for use. For example, you can install Filebeat by running:

  1. # aptitude update
  2. # aptitude install -y filebeat

5、To configure the Beat to start automatically during boot, run:

  1. # update-rc.d filebeat defaults 95 10

6、为nginx添加json日志格式

  1. # vim /usr/local/nginx/conf/nginx.conf
  2. log_format json '{"@timestamp":"$time_iso8601",'
  3. '"host":"$server_addr",'
  4. '"clientip":"$remote_addr",'
  5. '"remote_user":"$remote_user",'
  6. '"request":"$request",'
  7. '"http_user_agent":"$http_user_agent",'
  8. '"size":$body_bytes_sent,'
  9. '"responsetime":$request_time,'
  10. '"upstreamtime":"$upstream_response_time",'
  11. '"upstreamhost":"$upstream_addr",'
  12. '"http_host":"$host",'
  13. '"url":"$uri",'
  14. '"domain":"$host",'
  15. '"xff":"$http_x_forwarded_for",'
  16. '"referer":"$http_referer",'
  17. '"status":"$status"}';
  18. access_log /var/log/nginx/access.log json;

7、重载nginx服务

  1. # /usr/local/nginx/sbin/nginx -t
  2. # /usr/local/nginx/sbin/nginx -s reload

8、修改filebeat的配置文件。如果同一台机器上要收集多个日志文件,而且每个日志要输出到不同的索引,那么可以把每个prospector单独定义一个document_type,然后在logstash上通过 if 判断输出到不同的索引。

  1. # vim /etc/filebeat/filebeat.yml
  2. filebeat.prospectors:
  3. - input_type: log
  4. paths:
  5. - /usr/local/nginx/logs/zixun.oupeng.com.access.log
  6. document_type: zixun-nginx-access
  7. - input_type: log
  8. paths:
  9. - /usr/local/nginx/logs/water.oupeng.com.access.log
  10. document_type: water-nginx-access
  11. - input_type: log
  12. paths:
  13. - /usr/local/nginx/logs/nav.oupeng.com.access.log
  14. document_type: nav-nginx-access
  15. - input_type: log
  16. paths:
  17. - /usr/local/nginx/logs/wood.oupeng.com.access.log
  18. document_type: wood-nginx-access
  19. - input_type: log
  20. paths:
  21. - /usr/local/nginx/logs/redir.oupeng.com.access.log
  22. document_type: redir-nginx-access
  23. - input_type: log
  24. paths:
  25. - /usr/local/nginx/logs/default.access.log
  26. document_type: default-nginx-access
  27. - input_type: log
  28. paths:
  29. - /usr/local/nginx/logs/kibana.oupeng.com.access.log
  30. document_type: kibana-nginx-access
  31. output.logstash:
  32. hosts: ["192.168.3.56:5044","192.168.3.49:5044","192.168.3.57:5044"]
  33. loadbalance: true

9、启动filebeat服务

启动之前可以测试一下配置是否正确

  1. # filebeat.sh --help
  2. -configtestTest configuration and exit.
  3. -eLog to stderr and disable syslog/file output
  4. # filebeat.sh -configtest -e
  5. 2017/07/09 17:36:59.623072 beat.go:285: INFO Home path: [/usr/share/filebeat] Config path: [/etc/filebeat] Data path: [/var/lib/filebeat] Logs path: [/var/log/filebeat]
  6. 2017/07/09 17:36:59.623123 beat.go:186: INFO Setup Beat: filebeat; Version: 5.5.0
  7. 2017/07/09 17:36:59.623211 logstash.go:90: INFO Max Retries set to: 3
  8. 2017/07/09 17:36:59.623218 metrics.go:23: INFO Metrics logging every 30s
  9. 2017/07/09 17:36:59.623493 outputs.go:108: INFO Activated logstash as output plugin.
  10. 2017/07/09 17:36:59.623683 publish.go:295: INFO Publisher name: uy05-09
  11. 2017/07/09 17:36:59.625146 async.go:63: INFO Flush Interval set to: 1s
  12. 2017/07/09 17:36:59.625176 async.go:64: INFO Max Bulk Size set to: 2048
  13. Config OK
  1. # /etc/init.d/filebeat start

10、编写logstash pipeline配置文件。这里通过 if 判断将不同type的日志输出到不同的索引。

  1. # vim /etc/logstash/conf.d/nginx.conf
  2. input {
  3. beats {
  4. port => 5044
  5. codec => "json"
  6. }
  7. }
  8. output {
  9. if [type] == "zixun-nginx-access" {
  10. elasticsearch {
  11. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  12. index => "zixun-nginx-access-%{+YYYY.MM.dd}"
  13. document_type => "%{[@metadata][type]}"
  14. template_overwrite => true
  15. user => elastic
  16. password => Monkey
  17. }}
  18. if [type] == "water-nginx-access" {
  19. elasticsearch {
  20. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  21. index => "water-nginx-access-%{+YYYY.MM.dd}"
  22. document_type => "%{[@metadata][type]}"
  23. template_overwrite => true
  24. user => elastic
  25. password => Monkey
  26. }}
  27. if [type] == "nav-nginx-access" {
  28. elasticsearch {
  29. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  30. index => "nav-nginx-access-%{+YYYY.MM.dd}"
  31. document_type => "%{[@metadata][type]}"
  32. template_overwrite => true
  33. user => elastic
  34. password => Monkey
  35. }}
  36. if [type] == "wood-nginx-access" {
  37. elasticsearch {
  38. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  39. index => "wood-nginx-access-%{+YYYY.MM.dd}"
  40. document_type => "%{[@metadata][type]}"
  41. template_overwrite => true
  42. user => elastic
  43. password => Monkey
  44. }}
  45. if [type] == "redir-nginx-access" {
  46. elasticsearch {
  47. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  48. index => "redir-nginx-access-%{+YYYY.MM.dd}"
  49. document_type => "%{[@metadata][type]}"
  50. template_overwrite => true
  51. user => elastic
  52. password => Monkey
  53. }}
  54. if [type] == "default-nginx-access" {
  55. elasticsearch {
  56. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  57. index => "default-nginx-access-%{+YYYY.MM.dd}"
  58. document_type => "%{[@metadata][type]}"
  59. template_overwrite => true
  60. user => elastic
  61. password => Monkey
  62. }}
  63. if [type] == "zx-opgirl-cn-nginx-access" {
  64. elasticsearch {
  65. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  66. index => "zx-opgirl-cn-nginx-access-%{+YYYY.MM.dd}"
  67. document_type => "%{[@metadata][type]}"
  68. template_overwrite => true
  69. user => elastic
  70. password => Monkey
  71. }}
  72. if [type] == "www-oupeng-nginx-access" {
  73. elasticsearch {
  74. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  75. index => "www-oupeng-nginx-access-%{+YYYY.MM.dd}"
  76. document_type => "%{[@metadata][type]}"
  77. template_overwrite => true
  78. user => elastic
  79. password => Monkey
  80. }}
  81. if [type] == "kibana-nginx-access" {
  82. elasticsearch {
  83. hosts => ["192.168.3.56:9200","192.168.3.49:9200","192.168.3.57:9200"]
  84. index => "kibana-nginx-access-%{+YYYY.MM.dd}"
  85. document_type => "%{[@metadata][type]}"
  86. template_overwrite => true
  87. user => elastic
  88. password => Monkey
  89. }}
  90. }

11、启动logstash

  1. # nohup logstash -f /etc/logstash/conf.d/nginx.conf &

12、在kiaban上添加索引并绘图,绘图方法参考上一篇



debian安装filebeat5.5收集nginx日志的更多相关文章

  1. 安装logstash5.4.1,并使用grok表达式收集nginx日志

    关于收集日志的方式,最简单性能最好的应该是修改nginx的日志存储格式为json,然后直接采集就可以了. 但是实际上会有一个问题,就是如果你之前有很多旧的日志需要全部导入elk上查看,这时就有两个问题 ...

  2. ELK 二进制安装并收集nginx日志

    对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我们将这三个组合起来的技 ...

  3. ELK日志系统之使用Rsyslog快速方便的收集Nginx日志

    常规的日志收集方案中Client端都需要额外安装一个Agent来收集日志,例如logstash.filebeat等,额外的程序也就意味着环境的复杂,资源的占用,有没有一种方式是不需要额外安装程序就能实 ...

  4. ELK Stack (2) —— ELK + Redis收集Nginx日志

    ELK Stack (2) -- ELK + Redis收集Nginx日志 摘要 使用Elasticsearch.Logstash.Kibana与Redis(作为缓冲区)对Nginx日志进行收集 版本 ...

  5. ELK filter过滤器来收集Nginx日志

    前面已经有ELK-Redis的安装,此处只讲在不改变日志格式的情况下收集Nginx日志. 1.Nginx端的日志格式设置如下: log_format access '$remote_addr - $r ...

  6. 第七章·Logstash深入-收集NGINX日志

    1.NGINX安装配置 源码安装nginx 因为资源问题,我们先将nginx安装在Logstash所在机器 #安装nginx依赖包 [root@elkstack03 ~]# yum install - ...

  7. ELASTIC 5.2部署并收集nginx日志

    elastic 5.2集群安装笔记   设计架构如下: nginx_json_log ->filebeat ->logstash ->elasticsearch ->kiban ...

  8. rsyslog收集nginx日志配置

    rsyslog日志收集配置 rsyslog服务器收集各服务器的日志,并汇总,再由logstash处理 请查看上一篇文章  http://bbotte.blog.51cto.com/6205307/16 ...

  9. EFK收集nginx日志

    准备三台centos7的服务器 两核两G的 关闭防火墙和SELinux systemctl stop firewalld setenforce 0 1.每一台都安装jdk rpm -ivh jdk-8 ...

随机推荐

  1. Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第2节: FastThreadLocal的set方法

    Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第二节: FastThreadLocal的set方法 上一小节我们学习了FastThreadLocal的创建和 ...

  2. Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第5节: 同线程回收对象

    Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第五节: 同线程回收对象 上一小节剖析了从recycler中获取一个对象, 这一小节分析在创建和回收是同线程的 ...

  3. Maven ResourceBundle.getBundle读取Properties异常MissingResourceException: Can't find bundlei解决方法

    参考:https://blog.csdn.net/thousa_ho/article/details/72817616 问题描述 ResourceBundle读取properties配置文件提示 Mi ...

  4. 从零开始的Python学习Episode 22——多线程

    多线程 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. ...

  5. git 创建管理多用户

    <搬运> Windows下Git多账号配置,同一电脑多个ssh-key的管理 一台电脑上的git同时使用两个github账户 git之https或http方式设置记住用户名和密码的方法

  6. AS的使用技巧

    title: AS的使用技巧 date: 2016-04-01 23:34:11 tags: [AndroidStudio] categories: [Tool,IDE] --- 概述 本文记录如何使 ...

  7. openssl在多平台和多语言之间进行RSA加解密注意事项

    首先说一下平台和语言: 系统平台为CentOS6.3,RSA加解密时使用NOPADDING进行填充 1)使用C/C++调用系统自带的openssl 2)Android4.2模拟器,第三方openssl ...

  8. Vue 实例详解与生命周期

    Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...

  9. “秒杀”问题的数据库和SQL设计【转载】

    “秒杀”问题的数据库和SQL设计 APRIL 21ST, 2015 问题的来源 完全不考虑一致性的方案 表结构 方案 存在的问题 保证单用户不会重复购买 解决超卖问题 方案 优化 提高性能了 鱼与熊掌 ...

  10. TeamWork#1,Week 5,Suggestions for Team Project

    我们团队联系到了我们六班的直系学长,并向他咨询了软件工程基础这门课的团队项目相关的问题.他们团队的名字命名为Z-XML,团队中的几个学长也都是我平时所熟识的.虽然学长已经大四,忙着考研工作等各种事务, ...