技术

十步轻松部署ELK收集Docker容器日志

December 12, 2018

架构图:
tu.png
简述:Filebeat安装在各个跑Docker的服务器中,对接Elasticsearch和Logstash
本文中系统为:Centos7.5,跑ELK的服务器配置为4核8G内存 实验中吃了3.05G内存
第一步,安装docker

参考:http://docs.xiz.im/700399

第二步,获取ELK images

docker pull sebp/elk

第三步,修改内存配置

sysctl -w vm.max_map_count=262144
vi /etc/sysctl.conf
#在尾部添加
vm.max_map_count=262144

第四步,允许IPV4转发

vim  /usr/lib/sysctl.d/00-system.conf
#在最下面添加
net.ipv4.ip_forward=1
#重启网络服务
systemctl restart network

第五步,运行容器

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it  --log-opt max-size=500m --log-opt max-file=1 --restart=always  --name elk sebp/elk
#参数:开放5601、9200、5044端口,限制容器日志大小为500MB最多一个日志文件,随着Docker启动

第六步,进入容器 修改Logstash

docker exec it elk bash
vi /etc/logstash/conf.d/02-beats-input.conf
#删除关于SSL的配置信息,一共3条

第七步,到需要收集日志的服务器上安装「Filebeat」

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.1-x86_64.rpm
rpm -vi filebeat-6.5.1-x86_64.rpm

第八步,编辑Filebeat的配置

vi /etc/filebeat/filebeat.yml
#24行,修改为true
enabled: true
#28行,修改为
- /var/lib/docker/containers/*/*-json.log
#128行,修改为如下配置,elk是域名 建议使用域名方式
host: "elk:5601"

在148行中的elasticsearch配置修改成如下,elk是域名 建议使用域名方式
tu2.png

第九步,启用并配置elasticsearch模块

filebeat modules enable elasticsearch
filebeat setup
service filebeat start
systemctl enable filebeat

第十步,在kibana中建立索引
「management」>「Index Patterns」
tu3.png

我弄了一个nginx的容器来测试日志传输,最后实验成果了,效果如下图
tu4.png

拓展
1.定期清除收集的日志,如7天清理一次

#设立定时任务
crontab -e
0 1 */7 * * sh~/clean.sh
#创建一个sh脚本
vi clean.sh
time=`date +%Y.%m.%d -d "7 days ago"`
echo $shijian
curl -XDELETE "http://10.140.10.51:9200/filebeat-6.5.1-${time}"
闲话

记录丰巢寄件发生了不愉快的事情

November 27, 2018

23日因换货需求,用丰巢选择了申通快递寄件,一共是2件服饰物品,因为格子够放所以就全丢进去了。
27日卖家收到快递只有一件。
那么问题来了,要丢件应该是一起丢 不可能卖家只收到了一件。
所以问题肯定出在丰巢快递员取件的时候只拿了一件,但是我放的很规整 是叠起来的,所以不存在快递员没看到另一件的情况。
所以又有个问题来了,就算一个格子只能放一件,一个短信、手机通知也没有 直接玩消失,真的不知道说什么好了。
联系了丰巢客服,他们表示会在3-7天内跟进处理
PS:丰巢有监控,会保留30天。待物品找回时会直接去投诉申通快递员

闲话

解决好压广告

November 6, 2018

双十一要到了2345下面的好压每天弹双十一广告,烦死了....于是乎就有了这篇文章
删除安装目录下的Protect文件夹中的Helper_Haozip.exe
如果不需要他们的弹窗新闻也可以同时删除该目录中的HaozipMiniPage.exe