Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息

前言: 之前有说过elk收集nginx日志,

现在来说一下收集容器集群的日志收集Elk的安装这里不在说了,上来直接怼,

这里是elk的服务器:的服务状态:以及端口

Logstash是主要的配置内容这里:

如下

input {

beats {

port => 5044

}

}

filter {

if "nginx-accesslog" in [tags] {

grok {

match => { "message" => "%{HTTPDATE:timestamp}\|%{IP:remote_addr}\|%{IPORHOST:http_host}\|(?:%{DATA:http_x_forwarded_for}|-)\|%{DATA:request_method}\|%{DATA:request_uri}\|%{DATA:server_protocol}\|%{NUMBER:status}\|(?:%{NUMBER:body_bytes_sent}|-)\|(?:%{DATA:http_referer}|-)\|%{DATA:http_user_agent}\|(?:%{DATA:request_time}|-)\|"}

}

mutate {

convert => ["status","integer"]

convert => ["body_bytes_sent","integer"]

convert => ["request_time","float"]

}

geoip {

source=>"remote_addr"

}

date {

match => [ "timestamp","dd/MMM/YYYY:HH:mm:ss Z"]

}

useragent {

source=>"http_user_agent"

}

}

if "tomcat-catalina" in [tags] {

grok {

match => { "message" => "%{HTTPDATE:timestamp}\|%{IP:remote_addr}\|%{IPORHOST:http_host}\|(?:%{DATA:http_x_forwarded_for}|-)\|%{DATA:request_method}\|%{DATA:request_uri}\|%{DATA:server_protocol}\|%{NUMBER:status}\|(?:%{NUMBER:body_bytes_sent}|-)\|(?:%{DATA:http_referer}|-)\|%{DATA:http_user_agent}\|(?:%{DATA:request_time}|-)\|"}

}

mutate {

convert => ["status","integer"]

convert => ["body_bytes_sent","integer"]

convert => ["request_time","float"]

}

date {

match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS Z", "MMM dd, yyyy HH:mm:ss a" ]

}

}

}

output {

elasticsearch {

hosts => ["192.168.9.35:9200"]

index => "logstash-%{type}-%{+YYYY.MM.dd}"

document_type => "%{type}"

}

#    stdout { codec => rubydebug }

}

然后可以启动:

nohup  logstash -f /etc/logstash/conf.d/logstrash-test.conf  >/dev/null

接下来开始配置docker集群中的filbeate:

先说一下我们这里的docker启动的是集群模式,我将容器的日志目录映射到了本地宿主机上的目录了,

可以在本地上看一下:

容器的状态:

Filebeat是轻量级的工具省很多的资源开销:

这里安装的时候直接使用

rpm -ivh filebeat-5.5.1-x86_64.rpm

filebeat.prospectors:

- input_type: log

paths:

- /var/log/docker-nginx/access_json.log

tags: ["nginx-accesslog"]

document_type: nginxaccess

- input_type: log

paths:

- /var/log/docker-tomcat/catalina.out

tags: ["tomcat-catalinaout"]

document_type: tomcatcatalina

tags: ["nginx-test-194"]

output.logstash:

hosts: ["192.168.9.35:5044"]

完成之后启动filebeat即可:

Systemctl  restart  filebeat

然后通过curl 或者http:

进行对容器的访问可以查看到日志已经呗输入到了es存储中

可以看一下里面的数据:

比如查看一下nginx的日志:

接下来在kibana当中去创建一个一索引开头的日志格式

然后就可以看到了访问到的内容了

其他容器的也就这样的道理,可以收集,如果日志多了可以上redis和kafka

原文地址:http://blog.51cto.com/xiaorenwutest/2147860

时间: 2024-10-21 00:14:33

Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息的相关文章

Docker集群下,如何用Flannel实现容器互联

当您将多台服务器节点组成一个Docker集群时,需要对集群网络进行设置,否则默认情况下,无法跨主机容器互联,接下来我们首先分析一下原因. 跨主机容器互联 下图描述了一个简单的集群网络,在该集群内,有两台服务器甲和乙,每台服务器上都有两张网卡,分别连接公网和私网,两台服务器可以通过私网互联,在两个服务器节点上分别安装了Docker,并且运行了A/B/C/D 4个容器. 每台服务器节点上都有一个 docker0 网桥,这是docker启动后初始化的虚拟设备,每个容器都与docker0网桥连接,并且,

docker集群部署:第2部分:容器

介绍现在是开始构建Docker应用程序.我们将从这个应用程序的层次结构的底部开始,这个应用程序是一个容器.在这个层次上面是一个服务,它定义了容器在生产中的行为方式,将在第3部分中进行讨论.最后,在顶层是堆栈,定义了所有服务的交互,将在第5部分进行讨论. docker开发环境在过去,如果你要开始编写一个Python应用程序,你的第一步就是在你的服务器上安装一个Python运行库.但是,这会造成你的服务器上的环境必须如此,以使你的应用程序能够按预期运行.使用Docker,docker具有可移植性,你

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepalived实现的HA(High Available).为什么要实现高可用呢?曾经在搭建的时候仅仅用了一台Nginxserver,这种话假设Nginxserver宕机了,那么整个站点就会挂掉.所以要实现Nginx的高可用,一台挂掉还会有还有一台顶上去.从而保证站点能够持续的提供服务. 关于负载均衡和动静

docker swarm英文文档学习-12-在集群模式中的Raft共识

Raft consensus in swarm mode 在集群模式中的Raft共识 当Docker引擎在集群模式下运行时,manager节点实现Raft 共识算法来管理全局集群状态.Docker swarm模式使用共识算法的原因是为了确保集群中负责管理和调度任务的所有manager节点都存储相同的一致性状态.跨集群具有相同的一致状态意味着在出现故障时,任何管理器节点都可以接收任务并将服务恢复到稳定状态.例如,如果集群中负责调度任务的Leader Manager意外死亡,那么任何其他Manage

Swarm实现Docker集群的搭建和管理。

1.Swarm是一个由Docker开发的调度框架. (图网上找的) 2.负载均衡: Docker称之为入口负载均衡(ingress load balancing).它的工作方式是,所有worker节点都监听在发布的服务端口上.当该服务被外部系统调用时,收到流量的节点会通过Docker提供的内部DNS服务,将流量负载均衡不同的worker上. (图网上找的) 3.docker集群搭建. (1).时间同步:yum install –y ntpdatentpdate us.pool.ntp.org (

ELK学习实验018:filebeat收集docker日志

Filebeat收集Docker日志 1 安装docker [[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 [[email protected] ~]# yum update [[email protected] ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/d

Docker 集群环境实现方式

Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行

Docker 集群环境实现的新方式

近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行之有效的管理大型容器集群的整体解决方

05 Docker集群/基础设施 - DevOps之路

05 Docker集群/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi Docker的集群目前主流的方案: Swarm Kubernetes Docker Swarm 集群 是用Swarm集群来部署一个无状态的服务: 目前有三台物理机node01.node02.node03,在node01上初始化Swarm: docker swarm init --advertise-addr 192.168.0