今天继续给大家介绍Linux运维相关知识,本文主要内容是Logstash收集Nginx日志实战。

一、Nginx配置

首先,我们安装Nginx,Nginx的安装过程在LNMP详解(二)——Nginx源码安装与启动一文中已经讲解过了,因此在今天就不过多赘述了。
当然,我们也可以通过YUM的方式来简便的安装Ngnix,先安装EPEL的扩展源,然后再安装Nginx,执行命令如下:

yum install -y epel-release
yum install -y nginx

Nginx安装完成后,我们要修改Nginx的日志,将其修改为JSON格式。打开Nginx的配置文件,由于我的Nginx是YUM安装的,因此Nginx的配置文件为/etc/nginx/nginx.conf,打开该配置文件,找到Nginx配置文件中关于日志格式的定义参数log_fromat和access_log,我们新创建一个名为json的日志格式,内容如下:

log_format json  '{"@timestamp":"$time_iso8601",''"host":"$server_addr",''"request_method": "$request_method", ''"clientip":"$remote_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,''"upstreamtime":"$upstream_response_time",''"upstreamhost":"$upstream_addr",''"http_host":"$host",''"url":"$uri",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"agent":"$http_user_agent",''"status":"$status"}';

然后,将access_log的格式修改为使用JSON格式,修改完成后的Nginx配置文件如下所示:

这样,我们打开Nginx服务,在客户端上尝试访问该服务,结果如下:

可以看出,Nginx服务的日志为JSON格式。

二、Logstash配置

接下来,我们来配置Logstash的配置文件,内容如下:

input{file{path=>"/var/log/nginx/access.log"type=>"nginx"start_position=>"beginning"stat_interval=>"5"}
}output{elasticsearch{hosts=>["192.168.136.101:9200"]index=>"nginx-log-%{+YYYY.MM.dd}"}
}

上述配置文件在之前的文章中都介绍过,内容就是从Nginx的日志中读取内容,然后输出到Elasticsearch中。注意,由于Logstash默认是以logstash的用户运行,因此,我们必须保证logstash在运行过程中对该日志有读的权限。
配置完成后,执行命令:

logstash -f /etc/elasticsearch/conf.d/nginx-log.conf

三、效果检验

最后,我们来检验一下我们的配置结果。
首先,打开Elasticsearch,查看日志情况,结果(在实际运行中,我的一个Elasticsearch主机崩溃,因此集群健康值为黄色)如下:

之后,我们来到Kibana上,查看日志,结果如下:

可以看到,Logstash正确的收集到了Nginx的日志信息。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

ELK详解(十三)——Logstash收集Nginx日志实战相关推荐

  1. logstash收集nginx日志

    1.配置nginx日志 编辑nginx.conf文件 vim /etc/nginx/nginx.conf 在http节点下配置如下 log_format json '{"@timestamp ...

  2. ELK系列(四)、Logstash读取nginx日志写入ES中

    前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析. ELK系列(一).安装ElasticSear ...

  3. LNMP详解(三)——Nginx版本更新实战

    今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx版本升级或者降级的实战. 一.Nginx版本更新简介 在生产环境中,因为业务场景的原因,有时我们需要对Nginx的版本进行调整,进行 ...

  4. CentOS下ELK收集Nginx日志

    1. ELK收集Nginx普通格式的日志 1.1 测试服务器架构 1.2 ab工具使用 yum install httpd-tools -y# -n 总共发送多少条请求,注意,最后"/&qu ...

  5. centos7 单机安装ELK7收集nginx日志 无坑版,肯定出图

    系统:centos7 ELK版本:7.8.0 java环境:11 1. 配置JDK #配置JDK11 mkdir /root/source/cd /root/sourcewget https://re ...

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

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

  7. 【lnmp+ELK+Nginx+GeoIP】超详细新版ELK8.5.0解析收集Nginx日志并实现数据可视化与IP地址地图可视化教程-2022年11月版

    超详细新版ELK8.5.0+lnmp1.9解析收集Nginx日志并实现数据可视化与IP地址地图可视化教程-2022年11月版 前言 1.基础环境和所需要的软件包 1.1服务器配置(仅供参考) 1.2 ...

  8. centos6.5下安装配置ELK及收集nginx日志

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...

  9. ELK下logstash收集java日志,多行合并成一行

    介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...

  10. logstash收集syslog日志

    logstash收集syslog日志 注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# ca ...

最新文章

  1. 不敢相信?System.currentTimeMillis()存在性能问题
  2. SQL Server:APPLY表运算符
  3. java:能否得到一个对象的内存地址?
  4. [转人工智能工程师学习路线及具备的5项基本技能
  5. 若依集成ip2region实现离线IP地址定位
  6. Prewitt滤波器的实现,对比Prewitt滤波器和Sobel滤波器提取图像边缘的效果
  7. Entity Framework连接Mysql数据库并生成Model和DAL层
  8. 关于Initializing Spring root WebApplicationContext解决方法
  9. AES加密算法介绍与实现
  10. 软件测试的方法有哪些?
  11. React在ESLint下的报错收录(react-hooks/exhaustive-deps)
  12. vba 添加outlook 签名_如何在Office 365中为VBA宏创建自签名数字证书
  13. redis之db(数据库)
  14. 体育科技文献通报杂志体育科技文献通报杂志社体育科技文献通报编辑部2022年第6期目录
  15. scrapy_AttributeError: 'generator' object has no attribute 'meta'''_'generator' 'dont_filter'
  16. Windows powershell Terminal;linux tmux终端分屏使用;tabby终端使用
  17. Android-蓝牙sco通话
  18. 微积分中,区间再现公式的证明
  19. android gridview 计算器,用GridView显示得到的网络图片
  20. 用python做一个简单的游戏,用python写一个小游戏

热门文章

  1. 3.3 决策树分类与回归实战
  2. 从零实现深度学习框架——理解正则化(一)
  3. I’m stuck!
  4. 利用mfc项目opengl旋转正方形_C++学习之路:适合C++新手的练手项目,高薪之路必备项目...
  5. python mvc框架django搭建项目_Django笔记1:基础:创建虚拟主机和新项目
  6. Oracle 拼接结果过长,ora-01489 字符串连接的结果过长 解决方案
  7. flink写入 mysql_基于 Binlog + Flink 实现多表数据同构/异构方案
  8. 蓝桥杯2016年第七届C/C++省赛B组第二题-生日蜡烛
  9. 《Flutter 从0到1构建大前端应用》读后感—第6章【使用网络技术与异步编程】
  10. 软件编程常用数据类型打印print