by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/
继续上篇文章java logback 向 EFK 写入日志,
此篇文章主要讲述在docker环境下EFK与logback的整合,主要解决java项目在docker环境下,向EFK输出日志的问题:
1. 上篇文章中的方法虽然可以向EFK写入日志,但是在集群环境中,无法区分容器,除非自己在日志的msg中写入相关信息,然而往往会被分词器分开,这点比较麻烦
2. 虽然上篇文章中的logback-more-appenders可以使用DataFluentAppender方式来向elasticsearch添加额外的fields,但是这里也同时存在一个问题,就是msg中的部分信息,会被拆分成多个field,导致msg信息不再完整,以及从kibana上面查看日志非常不便
下面来一起看看我是如何解决的(部分内容跟上篇文章同)
详情参考部署文档CentOS7 安装EFK(elasticsearch、fluent、kibana)进行Docker下日志搜集
源码地址:fluentd-logback-appender(此插件是我基于logback-more-appenders源码进行的改进,使得在使用FluentLogbackAppender类的时候,也可以添加额外的fields)
关于此插件的打包,这里不多做说明,相应jar包可以在刘迎光的nexus中找到,搜索“fluentd-logback-appender”即可
pom.xml文件添加依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.firewarm</g
最近刚刚入手研究kubernetes,运行容器的时候,发现一直处于ContainerCreating状态,悲了个催,刚入手就遇到了点麻烦,下面来讲讲如何查找问题及解决的
运行容器命令:
[root@master-149 ~]# kubectl run my-alpine --image=alpine --replicas=2 ping www.baidu.com
查看pods状态
[root@master-149 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-alpine-2150523991-knzcx 0/1 ContainerCreating 0 6m
my-alpine-2150523991-lmvv5 0/1 ContainerCreating 0 6m
一直处于ContainerCreating状态,开始查找原因
执行如下命令:
[root@master-149 ~]# kubectl describe pod my-alpine
Name: my-alpine-2150523991-knzcx
Namespace: default
Node: node-150/192.168.10.150
Start Time: Sat, 19 Nov 2016 18:20:52 +0800
Labels: pod-template-hash=2150523991,run=my-alpine
Status: Pending
IP:
Controllers: ReplicaSet/my-alpine-2150523991
Containers:
my-alpine:
Container ID:
Image: alpine
Image ID:
Port:
Args:
ping
w
<!-- jetty dependecies begin -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.1.4.v20140401</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>9.1.4.v20140401</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-continuation</artifactId>
<version>9.1.4.v20140401</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.1.4.v20140401</version>
</dependency>
<!-- jetty dependecies end -->
运行war包的类
public class WebAppWarServer {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
==首先要升级到CentOS7.2,有一个XFS的Bug在7.2系统被修复了。==
echo "overlay" > /etc/modules-load.d/overlay.conf
# lsmod | grep over
overlay 42451 0
reboot
创建文件夹
mkdir -p /etc/systemd/system/docker.service.d
加入参数:
cat >/etc/systemd/system/docker.service.d/override.conf <<E
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
E
重启
systemctl daemon-reload
systemctl restart docker
echo "overlay" > /etc/modules-load.d/overlay.conf
lsmod | grep over
reboot
rm -rf /var/lib/docker
vi /usr/lib/systemd/system/docker.service
修改配置:
找到如下一行
ExecStart=/usr/bin/dockerd
加入参数:
--storage-driver=overlay
重启
systemctl daemon-reload
systemctl restart docker
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuy