docker安装logstash并读取syslog数据

1、拉取镜像

docker pull logstash:8.2.0

2、启动服务

#将宿主机的520端口映射到容器的514端口
docker run -d --name=logstash -p 520:514 logstash:8.2.0

3、拷贝容器的配置文件出来

# 从容器里面拷贝文件/目录到本地一个路径  
$docker cp Name:/container_path to_path  
$docker cp ID:/container_path to_path


#在这里进入logstash获取到config路径是 /usr/share/logstash/config
docker cp logstash:/usr/share/logstash/config /Users/xuweiqiang/Documents/logstash

4、更改配置logstash开启syslog端口并将日志输出到stdout

vim logstash.yml

path.config: /usr/share/logstash/config/conf.d/*.conf

mkdir conf

touch syslog.conf

配置

input {
    syslog {
        port => "514"
    }
}

output { 
    stdout {
    
    } 
}

5、将本地改好的配置映射到容器之中

docker run -d --name=logstash -p 520:514 -v /Users/xuweiqiang/Documents/logstash/config:/usr/share/logstash/config logstash:8.2.0

 6、使用golang发送一个syslog数据包验证

package main

import (
    "log"
    "log/syslog"
)

func main() {
    sysLog, err := syslog.Dial("tcp", "localhost:520", syslog.LOG_ERR, "Saturday")
    if err != nil {
        log.Fatal(err)
    }
    sysLog.Emerg("Hello world!")
}

 

 

 

posted @ 2022-05-17 00:46  许伟强  阅读(821)  评论(0)    收藏  举报