小白实操ELK环境部署+监控nginx日志
简介:
本次部署应用的是filebeats(客户端),logstash+elasticsearch+kibana(服务端)架构
原理及组件介绍请看我其他文章:https://blog.csdn.net/weixin_39845407/article/details/81479729
业务请求到达nginx-server机器上的Nginx; Nginx响应请求,并在access.log文件中增加访问记录; FileBeat搜集新增的日志,通过LogStash的5044端口上传日志; LogStash将日志信息通过本机的9200端口传入到ElasticSerach; 搜索日志的用户通过浏览器访问Kibana,服务器端口是5601; Kibana通过9200端口访问ElasticSerach;
实验环境:
本次部署的是单点ELK这边只用了两台机器(centos-7.1)
ELK服务端:192.168.137.128
nginx客户端:192.168.137.131
准备:
关闭防火墙
systemctl stop firewalld
或者开放对应端口:https://blog.csdn.net/weixin_39845407/article/details/81510368
下载并解压到/usr/local/
[code]mkdir /elk;cd /elk wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.tar.gz wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz tar xf kibana-6.2.3-linux-x86_64.tar.gz -C /usr/local/ tar xf elasticsearch-6.2.3.tar.gz -C /usr/local tar xf logstash-6.2.3.tar.gz -C /usr/local
安装java1.8
yum -y install java-1.8*
# 也可用源码安装看心情即可
配置elasticsearch
新建elasticsearch用户(elasticsearch用普通用户启动)并启动
[code]useradd elasticsearch chown -R elasticsearch.elasticsearch /usr/local/elasticsearch-6.2.3/ su - elasticsearch cd /usr/local/elasticsearch-6.2.3/ ./bin/elasticsearch -d
# 查看进程如果没有启动成功的话,可以查看日志/usr/local/elasticsearch-6.2.3/logs/elasticsearch.log
测试是否可以正常访问
# 也可以网页访问
配置logstash
grok作为一个logstash的过滤插件,支持根据模式解析文本日志行,拆成字段。
- nginx日志的配置:
[code]log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
- logstash中grok的正则(添加在vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns文件中)为:
[code]WZ ([^ ]*) NGINXACCESS %{IP:remote_ip} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}
创建logstash配置文件
[code]cat /usr/local/logstash-6.2.3/default.conf input { beats { port => "5044" } } # 数据过滤 filter { grok { match => { "message" => "%{NGINXACCESS}" } } geoip { # nginx客户端ip source => "192.168.137.131" } } # 输出配置为本机的9200端口,这是ElasticSerach服务的监听端口 output { elasticsearch { hosts => ["127.0.0.1:9200"] } }
1.后台启动logstash:nohup bin/logstash -f default.conf &
2.查看启动日志:tailf nohup.out
3.查看端口是否启动:netstat -napt|grep 5044
配置kibana
打开Kibana的配置文件/usr/local/kibana-6.2.3-linux-x86_64/config/kibana.yml,找到下面这行并修改:+
[code]#server.host: "localhost" 修改为 server.host: "192.168.137.128"
这样其他电脑就能用浏览器访问Kibana的服务了;
2. 进入Kibana的目录:cd /usr/local/kibana-6.2.3-linux-x86_64
3. 执行启动命令:nohup bin/kibana &
4. 查看启动日志:tail -f nohup.out
5.查看端口是否启动:netstat -napt|grep 5601
测试:
在浏览器访问192.168.137.128:5601
# 到此。ELK部署完成
nginx客户端配置
下载nginx并解压到/usr/local/
[code]wget http://nginx.org/en/download/nginx-1.12.2.tar.gz tar xf ./nginx-1.12.2.tar.gz -C /usr/local/
安装
[code]# 安装依赖包 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel # 编译安装 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx make && make install
修改日志格式
[code]vim /usr/local/nginx/conf/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"';
下载
filebeat并解压到/usr/local/
[code]wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.3-linux-x86_64.tar.gz tar xf ./filebeat-6.2.3-linux-x86_64.tar.gz -C /usr/local/
打开文件/usr/local/filebeat-6.2.3-linux-x86_64/filebeat.yml,找到如下图的位置:
改成如下:
找到如下图位置:
改为如下:
找到如下图位置:
改为如下:
后台启动filebeat:nohup ./filebeat -e -c filebeat.yml &
查看日志:tailf nohup.out
创建Index Patterns
通过浏览器多访问几次nginx服务,这样能多制造一些访问日志,访问地址:https://192.168.137.131
访问Kibana:https://192.168.137.128:5601,点击左上角的Discover,如下图红框,可以看到访问日志已经被ELK搜集了:
如下图,输入logstash-*,点击”Next step”:
如下图,选择Time Filter,再点击“Create index pattern”:
页面提示创建Index Patterns成功:
点击左上角的”Discover”按钮,即可看到最新的日志信息,如下图:
阅读更多
- ELK实时日志分析平台环境部署-2
- ELK+redis搭建解析NGINX日志环境
- ELK实时日志分析平台环境部署--完整记录
- 初探ELK-以收集 nginx 日志为例示范搭建一个 ELK 环境的基本步骤
- ELK实时日志分析平台环境部署
- ELK实时日志分析平台环境部署--完整记录
- ELK集群部署及收集nginx日志
- ELK实时日志分析平台环境部署--完整记录
- ELK实时日志分析平台环境部署--完整记录网址
- ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用
- ELK监控日志nginx(集成Geoip)
- ELK实时日志分析平台环境部署
- 使用Docker快速部署ELK分析Nginx日志实践(二)
- elk部署配置,收集nginx和tomcat日志
- ELK 日志系统搭建--监控nginx
- ELK 日志监控平台环境搭建及使用说明
- ELK日志分析系统部署
- ELK+filebeat日志分析系统部署文档
- ELK+filebeat日志分析系统部署文档
- 基于ELK搭建分布式日志管理平台----系统环境情况