利用RELK进行日志收集
利用RELK进行日志收集
发布时间:April 3, 2018 // 分类:运维工作,开发笔记,python // No Comments
前不久在做应急的总是遇到要求对日志进行分析溯源,当时就想到如果对常见的日志类进行解析后统一入库处理,然后在对相关的IP/URL进行统计归纳。对于溯源之类的很是方便。想到数据量比较大,又要便于分析,就想到了ELK.
搭建一套基于elk的日志分析系统。
系统centos 内存4G 双核
大概架构如此
1.elk搭建
wget https: //artifacts .elastic.co /downloads/elasticsearch/elasticsearch-6 .4.2.rpm wget https: //artifacts .elastic.co /downloads/kibana/kibana-6 .4.2-x86_64.rpm wget https: //artifacts .elastic.co /downloads/logstash/logstash-6 .4.2.rpm rpm -ivh elasticsearch-6.4.2.rpm sudo chkconfig --add elasticsearch /etc/init .d /elasticsearch start rpm -ivh kibana-6.4.2-x86_64.rpm /etc/init .d /kibana start sudo chkconfig --add kibana rpm -ivh logstash-6.4.2.rpm cd /usr/share/logstash ln -s /etc/logstash . /config |
整个elk系统搭建好了,安装redis作为agent收集日志来作为logstash的输入源
wget http: //download .redis.io /redis-stable . tar .gz tar zxf redis-stable. tar .gz cd redis-stable make && make install |
修改redis.conf。
bind 0.0.0.0 protected-mode no daemonize yes maxclients 1000000 |
启动redis
sudo redis.conf /etc/ redis-server /etc/redis .conf |
Logstash配置文件是JSON格式,放在/etc/logstash/conf.d 。 该配置由三个部分组成:输入,过滤器和输出。
input 数据输入端,可以接收来自任何地方的源数据。 file:从文件中读取 syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。 redis:从redis-server list 中获取 beat:接收来自Filebeat的事件 Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下。 grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。 mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。 drop: 完全丢弃事件,如debug事件。 clone: 复制事件,可能添加或者删除字段。 geoip: 添加有关IP地址地理位置信息。 output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,常用的有: elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。 file: 将事件数据写入到磁盘文件上。 mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。 redis:将数据发送至redis-server,常用于中间层暂时缓存。 graphite: 发送事件数据到graphite。http://graphite.wikidot.com/ statsd: 发送事件数据到 statsd。 |
编写logstash的配置文件。对所有的数据全盘接受,感谢Mosuan师傅的指导。
input { redis { host => '127.0.0.1' port => 6379 password => 'password' data_type => 'list' key => 'logstash:redis' } } output { elasticsearch { hosts => localhost } stdout { codec => rubydebug } } |
Logpara
分类:
linux运维
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!