docker默认日志管理
docker部署完成后,运行docker info命令,如下图所示:
部署ELK集群管理
1.修改内存地址映射mmp的系统限制
elasticsearch是一个文档数据库,以mmap的方式管理索引。mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式,向操作内存一样读写文件。mmap以页为单位实现映射,操作系统对页的的数量有限制,默认的值太小,elasticsearch要求的最小值是262144,小于此值elasticsearch无法启动。分别在三个node上执行以下命令,临时扩大这种限制:
这种方法在系统重启后就会失效,永久生效的方法是修改文件/etc/sysctl.conf中的vm.max_map_count值并重启系统。
2.创建docker compose文件/root/elk/docker-stack.yml文件,文件内容如下:
总共包含四个服务,解释如下:
elasticsearch:文档数据库,用来存储收集到的日志。数据库是有状态的,需要使用宿主机的文件系统存储数据,因此设置了”node.hostname == manager”的约束条件,只能部署在manager节点上,不能迁移到其它node上,避免数据丢失,只部署一个实例。
logstash:从所有的数据源收集数据并对数据做预处理,然后再提交给elasticsearch,只部署一个实例,无状态,对node无要求。
logspout:从各个node收集数据,然后交给logstash预处理,全局部署。
kibana:UI界面,负责展示数据,只部署一个实例,无状态,对node无要求。
3.创建logstash配置文件/root/elk/logstash/logstash.conf,内容如下:
包含三部分,解释如下:
input:表示logstash监听在udp的5000端口收集数据。
fileter:过滤器,表示过滤掉image为logstash的容器实例上 上来的数据。
output:表示如何上 过滤后的数据,这里是通过9200端口上 到elasticsearch数据库。
4.创建elk容器栈
在/root/elk目录下执行如下指令:
命令返回以后,并不代表容器栈创建成功,需要花一点时间,运行docker stack ps elk,并显示如下结果时,表示创建完成:
5.创建默认索引模式
在浏览器中打开”http://manager ip”访问kibana,首次访问的会要求创建默认索引模式,如下图所示:
按上图红框输入过滤条件,就能查询出所有image是nginx,包含”200″与”304″关键字的log条目。
7.清理elk
实验结束后,执行以下命令清理elk:
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8699 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!