搭建ELK收集PHP的日志
架构:
filebeat --> redis -->logstash --> es --> kibana
- 每个客户端需要安装filebeat收集PHP日志
- filebeat把收集到的日志传到redis
- logstash从redis读取日志,读取一条日志就从redis里删除一条日志
- logstash把日志发送到es
- 最后kibana可视化查询日志
es数据安全建议
- es设置为三个节点为一个集群,集群中的一个节点会被选为主节点,它将临时管理集群级别的一些变更,例如新建和删除索引,增加或移除节点.主节点不参与文档级别的变更或搜索,这意味着流量增长的时候,该节点不会成为集群的瓶颈.
作为用户,我们能与集群中的任何一个节点通信,包括主节点.每一个节点都知道文档存在哪个节点上(因为做了分片,所以一个文档是分散到集群中所有节点上的),他们可以转发请求到相应的节点上.我们访问的节点负责收集各节点返回的数据,最后一起返回给客户端
- es配置文件里设置分片数量和副本数量,分片数量就是把一个文档拆分开来存到集群的机器上,副本就是把数据备份一份
- es配置文件开始恢复备份设置为2,意思是只要有两个节点启动就开始恢复数据,
ELK stack搭建
环境说明
172.16.1.225 es,logstash,redis,kibana(服务器端)
172.16.1.224 filebeat(每个客户端必装收集php)
安装filebeat
172.16.1.224# rpm -ivh filebeat-5.2.-x86_64.rpm
配置filebeat收集日志
filebeat.prospectors: - input_type: log
paths:
- /alidata1/www/timecash22/api3/application/logs/api3//*/*.php
document_type: api3_json
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after - input_type: log
paths:
- /alidata1/www/timecash22/api3/application/logs/2017/*/*.php
document_type: api3_error_log
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after - input_type: log
paths:
- /alidata1/www/timecash22/wx/application/logs//*/*.php
document_type: wx_error_log #这是的key是什么,到redis里就是什么
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after output.redis:
hosts: ["10.45.40.112"]
password: "timecash2016"
#key: "api3_json"
keys:
- key: "%{[type]}"
安装elasticsearch
172.16.1.225# rpm -ivh elasticsearch-2.4.3.rpm
配置elasticsearch
cluster.name: ELK
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
安装logstash
172.16.1.225# tar -zxvf logstash-2.4.0.tar.gz
172.16.1.225# cd logstash-2.4.0
172.16.1.225# mkdir conf #创建配置文件存放目录
配置logstash从redis读取数据,然后输出到es
input {
redis {
host => "redis的iP"
password => "redis的密码"
port => 6379
key => "api3_json"
type => "api3_json"
data_type => "list"
}
}
filter {
date {
match => [ "timestamp" , "YYYY-MM-dd HH:mm:ss" ] #时间,从kibana上显示每条日志的时间
}
}
output {
elasticsearch {
hosts => "elasticsearch的IP"
#protocol =>"http"
index=>"api3_json_%{+YYYY.MM.dd}" #存到es里索引的名称
document_type=>"api3_json"
}
stdout{
codec => rubydebug
}
}
安装kibana
172.16.1.225# tar -zxvf kibana-4.6.0-linux-x86_64.tar.gz
配置kibana
172.16.1.225# grep -Ev "^$|#" kibana-4.6.0-linux-x86_64/config/kibana.yml
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"#elasticsearch的地址
启动kibana
172.16.1.225# ./bin/kibana -c config/kibana.yml
测试es是否有数据
打开X.X.X.X:9200/_plugin/head

测试kibana是否能查看数据
打开x.x.x.x:5601


搭建ELK收集PHP的日志的更多相关文章
- centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch
应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...
- centos7搭建ELK Cluster集群日志分析平台
应用场景:ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平台 ...
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...
- centos7搭建ELK Cluster集群日志分析平台(三):Kibana
续 centos7搭建ELK Cluster集群日志分析平台(一) 续 centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...
- centos7搭建ELK Cluster集群日志分析平台(二):Logstash
续 centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 . 安装Java 8 官方说明:需要安装Java ...
- 带你了解zabbix整合ELK收集系统异常日志触发告警~
今天来了解一下关于ELK的“L”-Logstash,没错,就是这个神奇小组件,我们都知道,它是ELK不可缺少的组件,完成了输入(input),过滤(fileter),output(输出)工作量,也是我 ...
- ELK收集Nginx自定义日志格式输出
1.ELK收集日志的有两种常用的方式: 1.1:不修改源日志格式,简单的说就是在logstash中转通过 grok方式进行过滤处理,将原始无规则的日志转换为规则日志(Logstash自定义日志格式) ...
- ELK收集Nginx|Tomcat日志
1.Nginx 日志收集,先安装Nginx cd /usr/local/logstash/config/etc/,创建如下配置文件,代码如下 Nginx.conf input { file { typ ...
- elk收集tomcat的日志
logstash收集tomcat的日志 不要修改下tomcat中server.xml的日志格式,否则tomcat无法启动,试过多次,不行,就用自带的日志让logstash去收集 首先给tomcat日志 ...
随机推荐
- H3C AR28-31路由器组网实验
接线图 可以发现PC1和PC2不在一个网段上,如果不靠路由器就不可能ping,所以要用路由器组网 接线步骤 串行线连接路由器1与路由器2 以太网线连路由器以太网口 与 交换机接口 计算机网线连交换机口 ...
- swift @objc dynamic
@objc vs @objc dynamic @objc: Objective-C entry points One can explicitly write @objc on any Swift ...
- python day one
今日内容: python基础: 一 编程语言 什么是编程语言? 上面提及的能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质.在编程的世界里,计算机更像是人 ...
- mitmproxy 数据抓包
1.安装环境: 基于python windows操作系统需要安装Microsoft Visual C++ V14.0以上 linux操作系统则直接基于python安装即可 2.安装mitmproxy ...
- BZOJ4318: OSU! (概率DP)
题意:一个串 给出每个字符为1的可能性 否则为0 一段连续的1能获得长度的立方的收益 问总收益的期望 题解:设x_i为到第i位时连续的1的期望长度 由i-1递推来的贡献 如果这一位是0没有贡献 如果是 ...
- python __future__ 使用
在开头加上from __future__ import print_function这句之后,即使在python2.X,使用print就得像python3.X那样加括号使用.python2.X中pri ...
- Oracle存储过程和程序包
一.为什么要用存储过程? 如果在应用程序中经常需要执行特定的操作,可以基于这些操作简历一个特定的过程.通过使用过程可以简化客户端程序的开发和维护,而且还能提高客户端程序的运行性能. 二.过程的优点? ...
- CF792E Colored Balls
题目大意:将n个数分解成若干组,如4 = 2+2, 7 = 2+2+3,保证所有组中数字之差<=1. 首先我们能想到找一个最小值x,然后从x+1到1枚举并check,找到了就输出.这是40分做法 ...
- 常见的awk内建变量
FS: 输入字段分隔符变量 语法: $ awk -F 'FS' 'commands' inputfilename 或者 $ awk 'BEGIN{FS="FS";}' OFS: 输 ...
- 零基础入门Python数据分析,只需要看懂这一张图,附下载链接!
摘要 在做数据分析的过程中,经常会想数据分析到底是什么?为什么要做数据数据分析?数据分析到底该怎么做?等这些问题.对于这些问题,一开始也只是有个很笼统的认识. 最近这两天,读了一下早就被很多人推荐的& ...