Category - IT技术

Docker java logback EFK    2017-05-26 13:02:56    1170

继续上篇文章java logback 向 EFK 写入日志
此篇文章主要讲述在docker环境下EFK与logback的整合,主要解决java项目在docker环境下,向EFK输出日志的问题:
1. 上篇文章中的方法虽然可以向EFK写入日志,但是在集群环境中,无法区分容器,除非自己在日志的msg中写入相关信息,然而往往会被分词器分开,这点比较麻烦
2. 虽然上篇文章中的logback-more-appenders可以使用DataFluentAppender方式来向elasticsearch添加额外的fields,但是这里也同时存在一个问题,就是msg中的部分信息,会被拆分成多个field,导致msg信息不再完整,以及从kibana上面查看日志非常不便

下面来一起看看我是如何解决的(部分内容跟上篇文章同)

打包日志插件(此处有不同)

源码地址:fluentd-logback-appender(此插件是我基于logback-more-appenders源码进行的改进,使得在使用FluentLogbackAppender类的时候,也可以添加额外的fields)

关于此插件的打包,这里不多做说明,相应jar包可以在刘迎光的nexus中找到,搜索“fluentd-logback-appender”即可

项目引用

pom.xml文件添加依赖

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.firewarm</g
docker DockerHub 容器    2017-04-28 16:33:23    1086

有时候想要保存自己的docker镜像,又不想自己搭建docker registry,那么就可以了借用DockerHub来用,一般不会有多少人在意你的镜像,不过万一被人看上了呢,这谁说的准呢,废话不多说,下面来看看操刀记录

  1. 在DockerHub上创建账号:https://hub.docker.com/ (这里我的账号是firewarm)
  2. 本地下载镜像(这里拿alpine做示例),并为镜像打tag
  1. [root@host-30 ~]# docker pull alpine:3.4
  2. [root@host-30 ~]# docker tag alpine:3.4 firewarm/alpine:3.4
  1. 登录到DockerHub上
  1. [root@host-30 ~]# docker login
  2. # 输入用户名和密码
  1. push镜像到DockerHub上
  1. [root@host-30 ~]# docker push firewarm/alpine:3.4
  2. The push refers to a repository [docker.io/firewarm/alpine]
  3. 4fe15f8d0ae6: Pushed
  4. 3.4: digest: sha256:dc89ce8401da81f24f7ba3f0ab2914ed9013608bdba0b7e7e5d964817067dc06 size: 528

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

Docker kubernetes 容器    2017-04-28 16:32:19    1302

最近刚刚入手研究kubernetes,运行容器的时候,发现一直处于ContainerCreating状态,悲了个催,刚入手就遇到了点麻烦,下面来讲讲如何查找问题及解决的

运行容器命令:

  1. [root@master-149 ~]# kubectl run my-alpine --image=alpine --replicas=2 ping www.baidu.com

查看pods状态

  1. [root@master-149 ~]# kubectl get pods
  2. NAME READY STATUS RESTARTS AGE
  3. my-alpine-2150523991-knzcx 0/1 ContainerCreating 0 6m
  4. my-alpine-2150523991-lmvv5 0/1 ContainerCreating 0 6m

一直处于ContainerCreating状态,开始查找原因
执行如下命令:

  1. [root@master-149 ~]# kubectl describe pod my-alpine
  2. Name: my-alpine-2150523991-knzcx
  3. Namespace: default
  4. Node: node-150/192.168.10.150
  5. Start Time: Sat, 19 Nov 2016 18:20:52 +0800
  6. Labels: pod-template-hash=2150523991,run=my-alpine
  7. Status: Pending
  8. IP:
  9. Controllers: ReplicaSet/my-alpine-2150523991
  10. Containers:
  11. my-alpine:
  12. Container ID:
  13. Image: alpine
  14. Image ID:
  15. Port:
  16. Args:
  17. ping
  18. w
java ws.rs restful    2017-04-28 16:21:43    1574

错误信息

  1. Java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
  2. at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
  3. at com.sun.jersey.spi.Container.servlet.ServletContainer.service(ServletContainer.java:669)
  4. at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  5. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  6. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  7. at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
  8. at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
  9. at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
  10. at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
  11. at org.apache.shiro.subject.support.DelegatingSubject.execute(Delega
windows git    2017-04-28 16:19:44    1033

解决办法

  1. 找到项目目录中的隐藏文件夹“.git”
  2. 找到“.git”目录下的config并编辑
  3. 其中url修改为如下模式,保存即可
  1. https://username:password@git.net/username/test.git

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

23/26