Linux机器上安装konga和docker容器,磁盘空间被占满的一次清理过程

课程

一、背景

浏览器访问konga没有响应,习惯性地认为是磁盘空间满导致,因为kong是运行正常的。
当然磁盘满,对于这个机器来说,安装了Kong/Konga、docker的几个容器,并没有部署java或者其他语言的项目。
所以有可能是下面几个导致:

  • kong的log日志
  • docker日志

他俩都不是,后面使用Linxu大杀器,找到了漏网之鱼konga,它是一个Nodejs前端程序,没想到蛀虫会是它!!!

二、排查过程

1、Kong日志治理

这个我们做过日志治理,和jvm日志一样。见下图

  • 具体kong网关的日志如何治理,本文不再赘述。

; 2、docker日志治理

我们已做了全局设置。

vi /etc/docker/daemon.json
  • log-driver
  • log-opts
{
  "registry-mirrors": ["https://nbi3meca.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3",
    "labels": "production_status",
    "env": "os,customer"
  },
  "insecure-registries" : [
    "harbor.xx.cloud"
  ]
}

进一步确认,切到docker日志所在的目录,也证实docker容器的日志治理正常。

注意:下面的10d03463ced439106824202b443f28a32b46529f2be2b7a76a1400846889495e-json.log这个便是docker容器的日志文件。

[root@APIGateWay containers]# cd 10d03463ced439106824202b443f28a32b46529f2be2b7a76a1400846889495e/
[root@APIGateWay 10d03463ced439106824202b443f28a32b46529f2be2b7a76a1400846889495e]# ll -h
total 23M
-rw-r----- 1 root root  23M Jun 14 14:47 10d03463ced439106824202b443f28a32b46529f2be2b7a76a1400846889495e-json.log
-rw------- 1 root root 3.1K May 11 09:31 config.v2.json
-rw-r--r-- 1 root root 1.6K May 11 09:31 hostconfig.json
-rw-r--r-- 1 root root   13 May 11 09:31 hostname
-rw-r--r-- 1 root root  174 May 11 09:31 hosts
drwx------ 2 root root    6 May 11 09:31 mounts
-rw-r--r-- 1 root root   54 May 11 09:31 resolv.conf
-rw-r--r-- 1 root root   71 May 11 09:31 resolv.conf.hash
[root@APIGateWay 10d03463ced439106824202b443f28a32b46529f2be2b7a76a1400846889495e]#

3、使用原始的Linux日志排查方案

切到顶层目录下,

du -a|sort -rn|head -5

发现在./konga下有个40多G的庞然大物。nohup.log

它又是怎么来的呢??

三、konga的安装

1、下载

把官网的https://github.com/pantsel/konga下载到本地。

2、运行

它已经提供了一个start.sh,但是不是后台运行的,需要我们简单封装一把。
于是有了下面的shell命令:

nohup node --harmony app.js > nohup.log &

因为start.sh也就是一个核心语句"node --harmony app.js",这里只是把它nohup了一把。

可是,这里必须要说可是,它会输入一个日志文件nohup.log。

而我们任由它野蛮生长,也就有了今天的恶果。

既然konga的日志没有什么作用,就不要保存到磁盘了,我决定修改一把run.sh命令,如下:

nohup node --harmony app.js >/dev/null 2>&1 &

这样就一劳永逸了,都不会治理Konga的日志了。

四、konga的start.sh完整文本

[root@APIGateWay konga]

if [ $# -eq 0 ]
  then

    node --harmony app.js
  else
    while getopts "c:a:u:" option
    do
        case "${option}"
            in
            c) COMMAND=${OPTARG};;
            a) ADAPTER=${OPTARG};;
            u) URI=${OPTARG};;
        esac
    done

    if [ "$COMMAND" == "prepare" ]
        then
            node ./bin/konga.js $COMMAND --adapter $ADAPTER --uri $URI
        else
            echo "Invalid command: $COMMAND"
            exit
    fi
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值