使用Docker及k8s启动logstash服务
前提:搭建好elasticsearch和kibana服务
下载镜像,需要下载与elasticsearch和kibana相同版本镜像
docker pull docker.elastic.co/logstash/logstash:6.6.2
编写收集日志配置文件
# cat /etc/logstash/conf.d/logstash.conf
input{
stdin{}
} filter{
} output{
elasticsearch{
hosts => ["172.16.90.24:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout{
codec => rubydebug
}
}
标准输入输出至elasticsearch和标准输出
编写logstash配置文件
# cat /etc/logstash/conf.d/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://172.16.90.24:9200
使用docker启动logstash
docker run --rm -it -v /etc/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /etc/logstash/conf.d/logstash.yml:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:6.6.2
参数解析
docker run #运行
--rm #退出删除
-it #后台运行
-v /etc/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf#挂载日志收集配置文件
-v /etc/logstash/conf.d/logstash.yml:/usr/share/logstash/config/logstash.yml#挂载logstash配置文件默认主机是elasticsearch
docker.elastic.co/logstash/logstash:6.6.2#使用的镜像
标准输入所以可以在屏幕输入

登录kibana添加日志也可以查看到相同内容

使用logstash启动5044端口收集日志
logstash配置文件
input{
beats{
port => 5044
}
}
filter{
}
output{
elasticsearch{
hosts => ["172.16.90.24:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout{
codec => rubydebug
}
}
启动5044端口把日志输出至elasticsearch和标准屏幕输出
启动
docker run --rm -it -v /etc/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /etc/logstash/conf.d/logstash.yml:/usr/share/logstash/config/logstash.yml -p 5044:5044 docker.elastic.co/logstash/logstash:6.6.2
在主机暴露5044端口
安装filebeat并配置文件用于收集日志
# sed '/#/d' /etc/filebeat/filebeat.yml |sed '/^$/d'
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
setup.kibana:
output.logstash:
hosts: ["192.168.1.11:5044"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
启动filebeat
systemctl start filebeat
但此时logstash写入elasticsearch会报错:failed to parse field [host] of type [text] in document with id 'E0lsjW4BTdp_eLcgfhbu'看elasticsearch日志发现此时host为一个json对象,需要变为字符串才行

修改配置,添加过滤器,把host.name赋值为host
input{
beats{
port => 5044
}
#stdin {}
}
filter{
mutate {
rename => { "[host][name]" => "host" }
}
}
output{
elasticsearch{
hosts => ["172.16.90.24:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout{
codec => rubydebug
}
}
再次使用docker启动logstash
docker run --rm -it -v /etc/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /etc/logstash/conf.d/logstash.yml:/usr/share/logstash/config/logstash.yml -p 5044:5044 docker.elastic.co/logstash/logstash:6.6.2
输出正常了 host字段也变成了字符串而不是json,可以正常输入至logstash

使用Docker及k8s启动logstash服务的更多相关文章
- Docker Container同时启动多服务 supervisor
Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Doc ...
- 使用 Nacos 的 Docker 镜像,启动 Nacos 服务
1.镜像网址:https://hub.docker.com/r/nacos/nacos-server 2.Clone project git clone --depth 1 https://githu ...
- Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
Docker.微服务日益火热的今天,相信标题上这些名词大家都不陌生.但也相信有很多同学并不够清楚他们的概念,不理解它们的关系,也可能有这样的疑惑:不知道跟我有没有关系?要不要学习?怎么去学习?学哪些东 ...
- SpringCloud微服务实战——搭建企业级开发框架(三十四):SpringCloud + Docker + k8s实现微服务集群打包部署-Maven打包配置
SpringCloud微服务包含多个SpringBoot可运行的应用程序,在单应用程序下,版本发布时的打包部署还相对简单,当有多个应用程序的微服务发布部署时,原先的单应用程序部署方式就会显得复杂且 ...
- SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署
一.集群环境规划配置 生产环境不要使用一主多从,要使用多主多从.这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.1 ...
- logstash服务启动脚本
logstash服务启动脚本 最近在弄ELK,发现logstash没有sysv类型的服务启动脚本,于是按照网上一个老外提供的模板自己进行修改 #添加用户 useradd logstash -M -s ...
- 【运维技术】VM虚拟机上使用centos7安装docker启动gogs服务教程【含B站视频教程】
VM虚拟机上使用centos7安装docker启动gogs服务视频教程 BiliBili视频教程链接飞机票,点我 使用VMware Workstation安装Centos7 MinMal系统 第一步: ...
- 【docker】【redis】2.docker上设置redis集群---Redis Cluster部署【集群服务】【解决在docker中redis启动后,状态为Restarting,日志报错:Configured to not listen anywhere, exiting.问题】【Waiting for the cluster to join...问题】
参考地址:https://www.cnblogs.com/zhoujinyi/p/6477133.html https://www.cnblogs.com/cxbhakim/p/9151720.htm ...
- Error response from daemon ... no space left on device docker启动容器服务报错
docker 启动容器服务的时候,报错no space left on device 1. 检查磁盘是否用光 3.检查inode是否耗光,从截图看到是inode耗光导致出现问题: 进入到/run里面看 ...
随机推荐
- Python爬虫系统化学习(2)
Python爬虫系统学习(2) 动态网页爬取 当网页使用Javascript时候,很多内容不会出现在HTML源代码中,所以爬取静态页面的技术可能无法使用.因此我们需要用动态网页抓取的两种技术:通过浏览 ...
- go map嵌套 map的value可以是任意类型
在日常编程中,除了使用内置的数据类型,还会使用一些复杂的自定义数据类型,比如map K为string,V为数组.先了解一下go对map的基本设定: map的key可以是任意内置的数据类型(如int), ...
- 微信小程序onReachBottom第二次失效
当整个页面就是一个view包着一个轮播.一个横向scroll-view和一个纵向scroll-view onReachBottom方法只执行一次 解决方法:
- RichTextBox FlowDocument类型操作
最近研究微信项目,套着web版微信协议做了一个客户端,整体WPF项目MVVM架构及基本代码参考于:http://www.cnblogs.com/ZXdeveloper/archive/2016/1 ...
- Jmeter 分布式架构和服务器性能监控解决方案
在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境 . 一. ...
- Linux目录,rpm及top,vi命令简记
一次简单的Linux常用操作记录 一.一些Linux目录结构 /bin 存放二进制可执行文件(ls.cat.mkdir等),一些常用的命令一般都在这里. /etc 存放系统管理和配置文件 /home ...
- LZZY高级语言程序设计之169页**5.17
import java.util.Scanner;public class MQ3 { public static void main(String[] args) { Scanner sc = ne ...
- java 递归求二叉树深度
给定二叉树,找到它的最大深度. 最大深度是从根节点到最远叶节点的最长路径上的节点数. 注意:叶子是没有子节点的节点. Example: Given binary tree [3,9,20,null,n ...
- 仿MSDN的帮助系统
作为软件开发人员,软件做好后,接下来就是编写文档.我自己也是做软件的,经常有用户询问软件的安装与使用, 我一直很喜欢微软的MSDN帮助系统,简介.大气,使用方便. 网上也找了很久,感觉一直没有合适的, ...
- 快速了解C# 8.0中“可空引用类型(Nullable reference type)”语言特性
Visual C# 8.0中引入了可空引用类型(Nullable reference type),通过编译器提供的强大功能,帮助开发人员尽可能地规避由空引用带来的代码问题.这里我大致介绍一下可空引用类 ...