ELK之-redis(错误,警告)日志使用filebeat收集
处理redis日志展示
收集redis警告和错误日志即可
filebeat
include_lines: ["WARNING","ERROR"]
include_lines 一个正则表达式的列表,以匹配您希望Filebeat包含的行。Filebeat仅导出与列表中正则表达式匹配的行。默认情况下,导出所有行。
参考:https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
kibana展示效果
filebeat安装配置
[root@elk-node01 var]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-x86_64.rpm
[root@elk-node01 var]# yum install filebeat-6.6.0-x86_64.rpm
[root@elk-node01 var]# cat /etc/filebeat/filebeat.yml
#主要通过log_type来判断
filebeat.prospectors:
- input_type: log
paths:
- /data/wwwlogs/access_nginx.log
fields:
log_source: nginx
log_type: nginx
- input_type: log
paths:
- /var/log/messages
fields:
log_source: messages
log_type: messages
- input_type: log
paths:
- /usr/local/redis/var/redis.log
include_lines: ["WARNING","ERROR"]
fields:
log_source: redis
log_type: redis
output.redis:
hosts: ["127.0.0.1:6379"]
key: "defaul_list"
db: 5
timeout: 5
logstash配置
input {
redis {
key => "defaul_list"
data_type => "list"
db => "5"
host => "127.0.0.1"
port => "6379"
threads => "5"
codec => "json"
}
}
filter {
if [fields][log_type] == "redis" {
grok {
patterns_dir => "/data/elk-services/logstash/patterns.d"
match => { "message" => "%{REDISLOG}" }
}
mutate {
gsub => [
"loglevel", "\.", "debug",
"loglevel", "\-", "verbose",
"loglevel", "\*", "notice",
"loglevel", "\#", "warring",
"role","X","sentinel",
"role","C","RDB/AOF writing child",
"role","S","slave",
"role","M","master"
]
}
date {
match => [ "timestamp" , "dd MMM HH:mm:ss.SSS" ]
target => "@timestamp"
remove_field => [ "timestamp" ]
}
}
if [fields][log_type] == "nginx" {
grok {
patterns_dir => [ "/data/elk-services/logstash/patterns.d" ]
match => { "message" => "%{NGINXACCESS}" }
overwrite => [ "message" ]
}
geoip {
source => "clent_ip"
target => "geoip"
database => "/data/soft/GeoLite2-City_20190409/GeoLite2-City.mmdb"
}
useragent {
source => "User_Agent"
target => "userAgent"
}
urldecode {
all_fields => true
}
mutate {
gsub => ["User_Agent","[\"]",""] #将user_agent中的 " 换成空
convert => [ "response","integer" ]
convert => [ "body_bytes_sent","integer" ]
convert => [ "bytes_sent","integer" ]
convert => [ "upstream_response_time","float" ]
convert => [ "upstream_status","integer" ]
convert => [ "request_time","float" ]
convert => [ "port","integer" ]
}
date {
match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
}
}
}
output {
if [fields][log_type] == "redis" {
elasticsearch {
hosts => ["192.168.1.252:9200"]
index => "252-redis-%{+YYYY.MM.dd}"
action => "index"
}
}
if [fields][log_type] == "nginx" {
elasticsearch {
hosts => ["192.168.1.252:9200"]
index => "252-nginx-%{+YYYY.MM.dd}"
action => "index"
}
}
}
查看nginx和redis的patterns
[root@elk-node01 var]# cat /data/elk-services/logstash/patterns.d/redis
EDISTIMESTAMP %{MONTHDAY} %{MONTH} %{TIME}
REDISLOG %{POSINT:pid}\:%{WORD:role} %{REDISTIMESTAMP:timestamp} %{DATA:loglevel} %{GREEDYDATA:msg}
[root@elk-node01 var]# cat /data/elk-services/logstash/patterns.d/nginx
NGUSERNAME [a-zA-Z\.\@\-\+_%]+
NGUSER %{NGUSERNAME}
NGINXACCESS %{IP:clent_ip} (?:-|%{USER:ident}) \[%{HTTPDATE:log_date}\] \"%{WORD:http_verb} (?:%{PATH:baseurl}\?%{NOTSPACE:params}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" (%{IPORHOST:url_domain}|%{URIHOST:ur_domain}|-)\[(%{BASE16FLOAT:request_time}|-)\] %{NOTSPACE:request_body} %{QS:referrer_rul} %{GREEDYDATA:User_Agent} \[%{GREEDYDATA:ssl_protocol}\] \[(?:%{GREEDYDATA:ssl_cipher}|-)\]\[%{NUMBER:time_duration}\] \[%{NUMBER:http_status_code}\] \[(%{BASE10NUM:upstream_status}|-)\] \[(%{NUMBER:upstream_response_time}|-)\] \[(%{URIHOST:upstream_addr}|-)\]
nginx的配置参考:https://blog.51cto.com/9025736/2377352
启动检查数据
[root@elk-node01 config]# /etc/init.d/filebeat restart
Restarting filebeat (via systemctl): [ OK ]
[root@elk-node01 config]# ../bin/logstash -f filebeat-nginx-redis.yml
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
数据分析师必备的9大技能,大多数人只知道一半
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 昨天有位刚入行数据分析的朋友跟我吐槽,自己入门到现在只会用excel做做分析图表,但是感觉越做越没有价值,数据分析似乎就是业务数据的分析员,不知道该如何提升自己。 这是因为他没有完全把数据分析的价值挖掘出来,数据分析是为了通过对数据现象的查看来完成对产品、营销策略、运营策略的优化,不仅是对业务,更重要的是要掌握数据分析的各种技能,从能力增长上突破职业的天花板。 根据我总结的经验,一个合格的、高级的大数据分析师必须要掌握以下9种技能: 统计分析:大数定律、抽样推测规律、秩和检验、回归、预测; 可视化辅助工具:excel、BI工具、python 大数据处理框架:Hadoop、storm、spark 数据库:SQL、MySql、DB 数据仓库:SSIS、SSAS 数据挖掘工具:Matlab、R语言、python 人工智能:机器学习 挖掘算法:数据结构、一致性 编程语言:Java、python 一、统计分析 众所周知,统计学是数据分析的基石。学了统计学,你会发现很多时候的分析并不那么准确,比如很多人都喜欢用平均数去分析一个...
-
下一篇
磁盘空间不足的故障处理和系统中增加swap(继续分享实战经验)
1、du命令的学习du 使用方法,磁盘block满了,使用这个命令找出哪些文件或目录占用的空间大大小三者的区别:du du -h--人类可以读的方式 du -sh 显示目录的2、du与sort的搭配使用 -h不能与n搭配使用,会报错倒序排列,使文件或者目录由大到小显示3、inode满了模拟并解决--案例第1个里程碑:创建1个100k文件: dd if=/dev/zero of=/tmp/100k bs=1k count=100 第2历程碑:格式化第3个里程碑-挂载到 /app/log目录(默认不存在)挂载后发出df -h完成后查看inode数量。查看inode号第4里程碑:现在模拟inode号满了4、linux下面删除大量小文件:(解决inode号满了导致磁盘空间不足的情况)命令不支持文件名过多使用find 搭配rm来解决删除大量文件(ls搭配rm删除文件范围有限)5、linux文件删除原理:6、模拟文件没有被彻底删除导致磁盘空间不足:(重启服务)只要有deleted,硬链接数为0,进程调用数不为0,没有删除干净,有人在使用。解决:重启对应的服务 (服务名字(软件名)是rsyslog....
相关文章
文章评论
共有0条评论来说两句吧...





微信收款码
支付宝收款码