Tag - Docker

elasticsearch linux Docker alpine    2017-07-19 20:31:27    4
在自己构建elasticsearch的Docker镜像的时候,使用最小化的linux系统alpine遇到不能用root用户启动的问题(也许对alpine不太熟悉,无法使用user相关命令),所以网上搜了些资料,记录及梳理自己的操作步奏

参考文章:http://stackoverflow.com/questions/34920801/how-to-run-elasticsearch-2-1-1-as-root-user-in-linux-machine

临时使用root账号启动
启动命令添加如下语句:
-Des.insecure.allow.root=true
bin/elasticsearch -Des.insecure.allow.root=true

默认以root账号启动
或者修改/bin/elasticsearch文件,修改如下语句:
exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
修改为:
exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -Des.insecure.allow.root=true -cp "$ES_CLASSPATH" \



 

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

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

继续上篇文章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 kubernetes 容器    2017-04-28 16:32:19    37

最近刚刚入手研究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 jetty Docker maven    2017-03-26 23:38:30    24

1. 准备好一个非常简单点的web项目(maven项目)

2. 准备好maven环境,并配置pom文件,关于jetty内容如下:

  1. <!-- jetty dependecies begin -->
  2. <dependency>
  3. <groupId>org.eclipse.jetty</groupId>
  4. <artifactId>jetty-server</artifactId>
  5. <version>9.1.4.v20140401</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.eclipse.jetty</groupId>
  9. <artifactId>jetty-webapp</artifactId>
  10. <version>9.1.4.v20140401</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.eclipse.jetty</groupId>
  14. <artifactId>jetty-continuation</artifactId>
  15. <version>9.1.4.v20140401</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.eclipse.jetty</groupId>
  19. <artifactId>jetty-jsp</artifactId>
  20. <version>9.1.4.v20140401</version>
  21. </dependency>
  22. <!-- jetty dependecies end -->

3. 使用eclipse对maven项目进行build,获取build后的项目目录(或者将项目达成war包)

4. 创建运行配置jetty的Server类

运行war包的类

  1. public class WebAppWarServer {
  2. public static void main(String[] args) throws Exception {
  3. Server server = new Server(8080);
Docker overlay CentOS7 容器    2017-03-26 21:25:25    8

==首先要升级到CentOS7.2,有一个XFS的Bug在7.2系统被修复了。==

docker 1.11

将OverlayFS加到module目录下

  1. echo "overlay" > /etc/modules-load.d/overlay.conf
  2. # lsmod | grep over
  3. overlay 42451 0
  4. reboot

配置Docker Daemon用OverlayFS启动:

创建文件夹

  1. mkdir -p /etc/systemd/system/docker.service.d

加入参数:

  1. cat >/etc/systemd/system/docker.service.d/override.conf <<E
  2. [Service]
  3. ExecStart=
  4. ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
  5. E

重启

  1. systemctl daemon-reload
  2. systemctl restart docker

docker 1.12

将OverlayFS加到module目录下

  1. echo "overlay" > /etc/modules-load.d/overlay.conf
  2. lsmod | grep over
  3. reboot

停止docker服务

  1. rm -rf /var/lib/docker

修改docker的配置文件

  1. vi /usr/lib/systemd/system/docker.service

修改配置:
找到如下一行

  1. ExecStart=/usr/bin/dockerd

加入参数:

  1. --storage-driver=overlay

重启

  1. systemctl daemon-reload
  2. systemctl restart docker

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuy

1/2