ELK部署检测nginx日志demo

ELK

E: ElasticSearch 搜索引擎 存储 https://www.elastic.co/cn/downloads/elasticsearch

L: Logstash 日志收集 https://www.elastic.co/cn/downloads/logstash

K: kibana 展示 https://www.elastic.co/cn/downloads/kibana

ElasticSearch

  • 下载解压

  • 1 tar -zxvf elasticsearch-7.3.1-linux-x86_64.tar.gz 2
  • 在es下创建数据和日志文件夹,修改配置文件

  • 1 #对应配置里的数据和日志文件目录 2 mkdir /usr/local/src/elasticsearch/elasticsearch-7.3.1/data 3 mkdir /usr/local/src/elasticsearch/elasticsearch-7.3.1/logs 4 vim config/elasticsearch.yml 5

    cluster.name: my-application

    node.name: node-10

    path.data: /usr/local/src/elasticsearch/elasticsearch-7.3.1/data

    path.logs: /usr/local/src/elasticsearch/elasticsearch-7.3.1/logs

  • 新建elkuser用户(注意不能使用root用户启动es)

  • 1 #创建用户 2 useradd elkuser 3 #修改用户组和用户 4 chown -R elkuser:elkuser elasticsearch-7.3.1 5 #切换用户 6 su elkuser 7
  • 启动

  • 1 ./bin/elasticsearch 2

Nginx

安装PCRE

  • 安装编译工具及库文件

  • 1 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 2
  • 首先要安装 PCRE(作用是让 Nginx 支持 Rewrite 功能)

  • 1 #下载 2 wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz 3 #解压安装包 4 tar -zxvf pcre-8.35.tar.gz 5 #进入安装包目录 6 cd pcre-8.35 7 #编译安装 8 ./configure 9 make && make install 10 #查看pcre版本 11 pcre-config --version 12

安装Nginx

  • 1 #下载 2 wget http://nginx.org/download/nginx-1.6.2.tar.gz 3 #解压安装包 4 tar -zxvf nginx-1.6.2.tar.gz 5 #进入安装包目录 6 cd nginx-1.6.2/ 7 #编译安装(注意pcre路径) 8 ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/nginx/pcre-8.35 9 make && make install 10 #查看pcre版本 11 /usr/local/webserver/nginx/sbin/nginx -v 12

  • 检查

  • 1 #检查配置文件nginx.conf的正确性命令 2 /usr/local/webserver/nginx/sbin/nginx -t 3
  • 启动 Nginx

  • 1 /usr/local/webserver/nginx/sbin/nginx 2 #查看进程 3 ps -ef |grep nginx 4
  • Nginx 其他命令

  • 1 /usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件 2 /usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx 3 /usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx 4
  • 浏览器访问站点

Logstash

  • 下载解压

  • 1 tar -zxvf logstash-7.3.1.tar.gz 2
  • 创建一个配置文件

  • 1 vim logstash-nginx-access-log.conf 2

    input { path => "/usr/local/webserver/nginx/logs/*.log" start_position => "beginning" } }

    192.168.192.1 - - [12/Sep/2019:15:47:37 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36" "-"

    filter { grok { match => { "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} [%{HTTPDATE:time}] "%{WORD:request_action} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"' } } date { match => [ "time" , "dd/MMM/yyyy:HH:mm:ss Z" ] locale => cn } }

    output { elasticsearch { hosts => ["192.168.192.10:9200"] index => "logstash-nginx-access-log" }
    stdout { codec => rubydebug } }

  • 启动

  • 1 bin/logstash -f logstash-nginx-access-log.conf 2
  • 访问nginx页面

kibana

  • 下载解压

  • 1 tar -zxvf kibana-7.3.1-linux-x86_64.tar.gz 2 #进入kibana配置下 3 cd kibana-7.3.1-linux-x86_64/config 4 #修改配置文件 5 vim kibana.yml 6

    server.host: "localhost"

    elasticsearch.hosts: ["http://localhost:9200"]

  • 启动(kibana不建议以root用户启动,如果用root启动,需要加--allow-root)

  • 1 bin/kibana 2
  • 访问5601端口

  • 创建日志索引

  • 查看日志量等信息

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )