中间件应用运行在码头工人容器中能够感受到容器快速创建快速销毁确实带来了很大的便利性,灵活性。但由于码头工人应用容器销毁不管人为操作,还是容器挂掉甚至容器应用导致其崩溃,它运行的数据都会随着它的生命周期结束而结束,这种情况是非常适合部署无状态服务。却不适合有状态的应用部署。但问题来了,假如运维同事需要对容器应用发生的故障进行下一步分析,而在容器中这分部有状态的应用日志也会随着容器销毁而销毁。日志都丢了还谈什么故障分析定位,运维同事面临盲目被动状态。然而在大的容器集群环境下如果直接将容器应用日志持久化到本地磁盘目录,那样日志会出现目录结构临乱和容器日志文件也会面临覆盖问题。
1)将容器中的单个或多个业务应用新增日志内容按照一定目录结构存放在远程日志服务器。
2)存储日志的目录结构形式需要以下方式存储:
/logs/app_id/service_id container_id/app_name xxx.log
1) Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,Filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到logstarsh中存放。
2) Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的,多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置。
部署日志服务器logstash配置要求如下。
Logstash软件对JDK也是有要求的,建议在JDK1.8.0以上版本来运行Logstash。
直接去甲骨文官方下载JDK版1.8本软件来安装
tar xvf jdk1.8.0_131.tar。广州- c/usr
然后配置JDK环境变量vi/etc/profile
JAVA_HOME=/usr/jdk1.8.0_131
CLASSPATH=? $ JAVA_HOME/lib.tools.jar
路径=$ JAVA_HOME/bin: PATH 美元;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
出口JAVA_HOME类路径路径
用命令源/etc/profile生效环境变量
软件下载
https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.tar.gz
软件安装
执行命令焦油-xvf/opt/logstash-6.0.0.tar。广州解压logstash
启动logstash
/opt/logstash/bin/logstash -f /opt/logstash/logstash.conf
在日志服务器上新建一个/logs目录用于存储大量应用容器日志。
<强> 强>
直接将filebeat软件和nginx, php-fpm软件联合一起封装成一个新的基础镜像,事先我们需要知道哪些应用日志文件需要提取出来。注意以下是需要提取容器中的应用日志:
Nginx日志容器路径
/var/log/nginx
Php-fpm日志窗口路径:
/var/opt/雷米/php70/日志/php-fpm
下载filebeat软件
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.0-linux-x86_64.tar.gz
<强> 5.1,采用dockerfile脚本安装nginx, php-fpm, Filebeat软件强>
以下红色字体部署就是规范nginx与php-fpm应用日志,并将日志文件映射到/logs目录下。同时安装filebeat软件。