随笔 - 120  文章 - 0  评论 - 35  阅读 - 85万

logstash运输器以及kibana的更多操作

为了达到不会因为ELK中的某一项组件因为故障而导致整个ELK工作出问题,于是

将logstash收集到的数据存入到消息队列中如redis,rabbitMQ,activeMQ或者kafka,这里以redis为例进行操作

首先将需要收集的日志数据通过logstash收集到redis中,这里需要用到output的redis插件了:

1、安装redis,这里采用yum安装,存在于epel源

2、修改redis配置

1
2
3
4
5
6
7
8
[root@node3 ~]# egrep -v "^#|^$" /etc/redis.conf
bind 192.168.44.136
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes

 开启redis服务:

1
2
[root@node3 ~]# /etc/init.d/redis start
启动 :                                                    [确定]

 编写logstash配置文件,将日志数据写入到redis中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node3 conf.d]# cat redis_out.conf
input {
    file {
        path => ["/var/log/nginx/access.log"]
        start_position => "beginning"
    }
}
 
output {
    redis {
        host => ["192.168.44.136"]
        data_type => "list"
        db => 1
        key => "nginx"
    }
}

 然后logstash开始执行:

1
2
[root@node3 conf.d]# /usr/share/logstash/bin/logstash -f redis_out.conf
Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties

 登录redis进行查看是否已经有数据了:

1
2
3
4
5
[root@node3 ~]# redis-cli -h 192.168.44.136
192.168.44.136:6379> select 1
OK
192.168.44.136:6379[1]> llen nginx
(integer) 19

 select 1:1就是上面logstash配置文件的db

llen nginx:nginx就是上面logstash配置文件的key

接下来将redis收集到的数据再通过logstash输出到es中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node3 conf.d]# cat redis_input.conf
input {
    redis {
        host => ["192.168.44.136"]
        data_type => "list"
        db => 1
        key => "nginx"
    }
}
 
output {
    elasticsearch {
        hosts => ["192.168.44.134:9200"]
        index => "redis-nginx"
    }
}

 开始执行:

1
2
[root@node3 conf.d]# /usr/share/logstash/bin/logstash -f redis_input.conf
Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties

 通过登录redis查看数据是否还存在:

1
2
3
4
5
6
[root@node3 ~]# redis-cli -h 192.168.44.136
192.168.44.136:6379> select 1
OK
192.168.44.136:6379[1]> llen nginx
(integer) 0
192.168.44.136:6379[1]>

 可以看见redis中的数据已经被读取完了,现在查看es是否创建了相应的索引:

然后通过kibana将es的index添加进来:

于是整个流程就这样完成了,redis这个收集站可以换成其他消息队列服务

接下来通过操作kibana,使收集到的数据更加好看:

 

posted on   wadeson  阅读(512)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示