docker搭建并启动Logstash

本文介绍如何使用Logstash版本7.12.1搭建日志系统,并详细展示了两种配置方式:直接在容器内修改配置文件及通过挂载文件到容器中进行配置。此外还介绍了如何启动和重启Logstash容器。

1.拉取镜像

#拉取镜像 如果想要使用ELK搭建日志系统 一定要和elasticsearch,kibana的版本保持一致
docker pull logstash:7.12.1
#启动容器
docker run -d --name logstash -p 4560:4560 logstash:7.12.1

2.修改配置(不挂载文件的方式)

#进入容器
docker exec -it logstash /bin/bash
#修改配置文件 将es的IP填入
vi /usr/share/logstash/config/logstash.yml

#继续修改配置
vi /usr/share/logstash/pipeline/logstash.conf

#将配置复制进去
input {
  	tcp {
		mode => "server"
		port => 4560
	}
}
filter {
}
output {
 	 elasticsearch {
		action => "index" #增加文档的方式,index,create,update,delete四种
		hosts => "120.48.9.71:9200" 
		index => "test_log" #索引名称
	}
}

#重启容器
docker restart logstash

3修改配置(挂载文件的方式)

mkdir /www/server/logstash/logstash.yml
mkdir /www/server/logstash/conf.d/logstash.conf

#将步骤2的配置添加进去 
#启动容器时 增加挂载
docker run -d --name logstash -p 4560:4560 
-v /www/server/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml 
-v /www/server/logstash/conf.d/:/usr/share/logstash/conf.d/
 logstash:7.12.1
### 使用 Docker Compose 部署 Logstash Elasticsearch 和 Kibana 集成 为了实现这一目标,需要创建 `docker-compose.yml` 文件来定义服务之间的关系。以下是具体的配置方法: #### 创建项目结构 首先建立一个目录用于保存所有的配置文件和服务定义。 ```bash mkdir -p ~/elk-stack/{config,elasticsearch/data} cd ~/elk-stack/ ``` #### 编写 docker-compose.yml 文件 在此文件中指定三个主要组件:ElasticsearchLogstash 及 Kibana 的容器设置以及它们之间如何交互。 ```yaml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 container_name: es-node environment: - "9200:9200" - "9300:9300" volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data logstash: image: docker.elastic.co/logstash/logstash:7.10.0 container_name: ls-node depends_on: - elasticsearch ports: - "5044:5044" - "9600:9600" volumes: - ./config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf kibana: image: docker.elastic.co/kibana/kibana:7.10.0 container_name: kb-node depends_on: - elasticsearch ports: - "5601:5601" ``` 此段代码展示了如何通过 YAML 格式的 `docker-compose.yml` 来描述 ELK 堆栈中的各个部分及其依赖项[^3]。 #### 准备 Logstash 配置文件 在上述命令创建的 `~/elk-stack/config/` 目录下放置名为 `logstash.conf` 的输入管道配置文件,该文件指定了数据源和目的地等信息。 ```ruby input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://elasticsearch:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}" } stdout { codec => rubydebug } } ``` 这段 Ruby DSL 定义了 Logstash 输入插件监听 Beats 协议的消息,将其转发给同一网络内的 Elasticsearch 实例进行索引存储;同时输出到控制台以便调试查看[^4]。 完成以上步骤之后,在终端执行如下指令启动整个环境: ```bash docker-compose up -d ``` 这会下载必要的镜像以后台模式运行所有服务。等待一段时间让各节点初始化完成后即可访问 http://localhost:5601 测试是否成功搭建起完整的ELK平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值