elk系统搭建并收集nginx日志-主要步骤

一)简介

elk系统是一套目前较为流行的日志收集分析系统,主要由elasticserch,logstash,kibana三部分组成,其中elasticsearch负责数据的存储,logstash负责日志的收集过滤,kibana负责日志的可视化部分。整个工作流程为logstash收集日志,过滤后输出并保存到elasticsearch中,最后用户通过kibana从elasticsearch中读取数据并处理。本文中日志收集引入filebeat收集日志,logstash监听在5000端口并接受filebeat传入的日志。

各组件分配如下:

192.168.1.17filebeat

192.168.1.18elk

二)搭建过程

1.在官方网站下载安装包

https://www.elastic.co/cn/downloads

2.因为elk依赖java开发环境,所以首先安装jdk

yum install java-1.8.0-openjdk

3.安装elk(192.168.1.18主机上)

yum install elasticsearch-5.5.2.rpm kibana-5.5.2-x86_64.rpm logstash-5.5.2.rpm

4.创建elasticsearch数据存储目录并赋予权限

mkdir -p  /data/elasticsearch

chown  elasticsearch.elasticsearch /data/elasticsearch

5.修改elasticsearch配置文件,更改其中的数据存储路径

vim /etc/elasticsearch/elasticsearch.yml

path.data: /data/elasticsearch

6.启动elasticsearch服务,并查看9200端口是否处于监听状态

systemctl start elasticsearch

ss  -tnl

7.修改kibana配置文件,改变其监听的ip地址

vim /etc/kibana/kibana.yml

server.host: "0.0.0.0"  (也可更改为192.168.1.17,此处主要是为了方便访问)

8.启动kibana服务并查看端口

systemctl start kibana

ss -tnl

9.在/etc/logstash/conf.d/目录中添加logstash配置文件nginx.conf

input {

beats {

port => 5000

type => "logs"

}

}

filter {

if [type] == "nginx-all" {

grok {

match => [ "message","(?:%{IPORHOST:clientip}|-) - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} \"(?:%{IPV4:http_x_forwarded_for}|-)\"" ]

}

geoip {

source => "clientip"

add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]

add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]

}

mutate {

convert => [ "[geoip][coordinates]", "float" ]

convert => [ "response","integer" ]

convert => [ "bytes","integer" ]

}

syslog_pri {}

date {

match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]

}

}

}

output {

elasticsearch {

hosts => ["127.0.0.1:9200"]

index => "logstash-nginx-access-%{+YYYY.MM.dd}"

}

stdout { codec => rubydebug }

}

input段:表示监听的端口以及类型

filter段:

grok:日志的匹配,数据结构转换,需要根据日志的具体格式进行匹配,匹配格式可以参考https://grokdebug.herokuapp.com/patterns,匹配结果可以在https://grokdebug.herokuapp.com/中进行验证

geoip:获取ip,以便最后显示地理位置,部分系统可能需要安装geoip

mutate:数据类型转换

date:用日志中的时间对timestamp进行转换,若不做转换,在导入老数据的时候系统会根据当前时间排序

output段:输出到elasticsearch中

10.启动logstash服务并查看端口

systemctl start logstash

ss -tnl

11.安装filebeat(192.168.1.17)

yum install filebeat-5.5.2-x86_64.rpm  (包需要提前下载)

12.修改配置文件/etc/filebeat/filebeat.yml

filebeat:

spool_size: 1024

idle_timeout: 5s

registry_file: .filebeat

config_dir: /etc/filebeat/conf.d

output:

logstash:

hosts:

- 192.168.1.18:5000

enabled: true

shipper: {}

logging: {}

runoptions: {}

其中output中host指向logstash

13.创建/etc/filebeat/conf.d/目录。并添加配置文件nginx.yml

filebeat:

prospectors:

- paths:

- /var/log/nginx/access.log

encoding: plain

fields_under_root: false

input_type: log

ignore_older: 24h

document_type: nginx-all

scan_frequency: 10s

harvester_buffer_size: 16384

tail_files: false

force_close_files: false

backoff: 1s

max_backoff: 1s

backoff_factor: 2

partial_line_waiting: 5s

max_bytes: 10485760

其中path指向需要收集的日志文件,type需要与logstash配置文件中对应

14.启动filebeat并查看

systemctl start filebeat

netstat -altp|grep filebeat(与logstash建立了连接)

时间: 2024-10-22 04:19:47

elk系统搭建并收集nginx日志-主要步骤的相关文章

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

对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java).Logstash(jruby).Kibana技术栈的结合, ELK5.X搭建并收集Nginx日志 ELK ELK5.X搭建并收集Nginx日志一.基础环境配置及软件包下载 二.安装Elasticsearch

ELK日志服务器的快速搭建并收集nginx日志

今天给大家带来的是开源实时日志分析 ELK , ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站:https://www.elastic.co 其中的3个软件是: Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索

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

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索) kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总.分析和搜索重要数据日志. 环境:192.168.50.119

ELK使用filter收集nginx日志-07

修改nginx日志格式 log_format hanye '$proxy_add_x_forwarded_for $remote_user [$time_local] "$request" $http_host' '[$body_bytes_sent] $request_body "$http_referer" "$http_user_agent" [$ssl_protocol] [$ssl_cipher]' '[$request_time] [

ELK集群部署及收集nginx日志

一.ELK说明 二.架构图 三.规划说明 四.安装部署nginx+logstash 五.安装部署redis 六.安装部署logstash server 七.安装部署elasticsearch集群 八.安装kibana 一.ELK说明 ELK Stack 是 Elasticsearch.Logstash.Kibana 三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称. ELK Stack 在最近两年迅速崛起,成为机器数据

ELK实践(二):收集Nginx日志

Nginx访问日志 这里补充下Nginx访问日志使用的说明.一般在nginx.conf主配置文件里需要定义一种格式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for&qu

ELK学习实验014:Nginx日志JSON格式收集

1 Kibana的显示配置 https://demo.elastic.co/app/kibana#/dashboard/welcome_dashboard 环境先处理干净 安装nginx和httpd-tools 2 使用压测工具产生日志 [[email protected] ~]# ab -n 100 -c 100 http://192.168.132.134/ This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright

ELK收集nginx日志并用高德地图展示出IP

(一)测试的环境 agentd:192.168.180.22 ES:192.168.180.23 kibana:192.168.180.23 采用的拓扑:logstash -->ES-->kibana (二)实施步骤: (1)logstsh具体配置: 1,配置nginx日志格式,采用log_format格式: log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '          

EFK收集nginx日志

准备三台centos7的服务器 两核两G的 关闭防火墙和SELinux systemctl stop firewalld setenforce 0 1.每一台都安装jdk rpm -ivh jdk-8u131-linux-x64_.rpm 准备中... ################################# [100%] 正在升级/安装... 1:jdk1.8.0_131-2000:1.8.0_131-fcs ################################# [10