您的位置:首页 > 运维架构 > Docker

使用docker搭建ELK日志搜集系统(一)

2016-05-25 20:56 886 查看

导读:本篇主要介绍ELF/EFK中Elasticsearch、Kibana的配置安装 

 

ELK是什么?

 

简单来说ELK 是一个开源的日志统一搜集,存储,管理,分析,展示的平台

 

ELK架构

 

# 主要组件包括:

  • ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部
  1. Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能
  2. Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式
  3. Kibana 是一个开源和免费的工具,可以为ElasticSearch提供日志分析友好Web界面
  4. Filebeat 可以理解成时一个轻量级的Logstash,因为相对来说Logstash资源消耗比较大(JVM内存),Filebeat可以把搜集的日志转发到Logstash
  5. fluented 是一个开源免费的日志搜集工具,经常代替Logstash(EFK),支持的插件非常多,对docker支持较好
  6. X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中

参考:

https://www.elastic.co/guide/index.html

https://docs.fluentd.org/v1.0/articles/quickstart

https://www.elastic.co/downloads/x-pack

https://www.elastic.co/products/x-pack/open

 

 

 

ELK/EFK的安装配置

 

系统安装运行需求和建议:

1. 一台独立的linux host centos 7.4,docker 18.06.1-ce+以上版本,docker swarm环境,

2. 自定义Kibana服务器的域名:log.yujianbo.vip ,可以在hosts文件自定义指向对应的服务器

3. 把ELK集群安装在一个独立的docker swarm环境中

4. 安装The Elastic Stack 5.5.1版本

 

安装步骤:

1. 安装docker swarm环境

 简单docker swarm环境搭建步骤:https://www.cnblogs.com/yjb007/p/9551878.html

2.修改docker宿主机的 

vm.max_map_count
 配置在 /etc/sysctl.conf

vim /etc/sysctl.conf
vm.max_map_count=262144
grep vm.max_map_count /etc/sysctl.conf
sysctl -w vm.max_map_count=262144

 

 

3.安装Elasticsearch+X-Pack扩展包

mkdir -p /soft/es/
cd /soft/es/
#下载x-pack-5.5.1.zip,x-pack-5.5.1.jar文件到当前目录,下载地址:https://pan.baidu.com/s/12x5vxYwJHAvd3AnFc1M4_A

cat > Dockerfile << 'EOF'
FROM elasticsearch:5.5.1

COPY x-pack-5.5.1.zip /tmp/
RUN elasticsearch-plugin install file:///tmp/x-pack-5.5.1.zip
COPY x-pack-5.5.1.jar /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar
RUN chown root:root /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar && chmod 644 /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar
RUN rm -rf /tmp/*
EOF

docker build --no-cache --pull -t elasticsearch/yujianbo:5.5.1 ./

mkdir -p /srv/volume/elasticsearch/data
docker service create \
--name pilipa-inside-elasticsearch \
--network my-network \
--replicas 1 \
--publish "mode=host,published=9200,target=9200" \
--mount type=bind,src=/srv/volume/elasticsearch/data,dst=/usr/share/elasticsearch/data \
--env "cluster.name=docker-cluster" \
--env ES_JAVA_OPTS="-Xms512m -Xmx512m" \
elasticsearch/yujianbo:5.5.1

安装完成后可以通过 curl -u elastic:changeme http://127.0.0.1:9200/_cat/health 访问elasticsearch

默认账号密码:elastic/changeme

 

 

4.安装Kibana+X-Pack扩展包

mkdir -p /soft/kibana/
cd /soft/kibana/
#下载x-pack-5.5.1.zip文件到当前目录,下载地址:https://pan.baidu.com/s/12x5vxYwJHAvd3AnFc1M4_A

cat > Dockerfile << 'EOF'
FROM kibana:5.5.1

COPY x-pack-5.5.1.zip /tmp/
RUN kibana-plugin install file:///tmp/x-pack-5.5.1.zip
RUN rm -rf /tmp/*
EOF

docker build --no-cache --pull -t kibana/yujianbo:5.5.1 ./

mkdir -p /srv/volume/kibana/
cat > /srv/volume/kibana/kibana.yml << 'EOF'
server.host: '0.0.0.0'
elasticsearch.url: 'http://pilipa-inside-elasticsearch:9200'
EOF

docker service create \
--name pilipa-inside-kibana \
--network my-network \
--replicas 1 \
--mount type=bind,src=/srv/volume/kibana/kibana.yml,dst=/etc/kibana/kibana.yml \
--publish "mode=host,published=5601,target=5601" \
kibana/yujianbo:5.5.1

 

 

 

 登陆http://log.yujianbo.vip:5601就可以在kibana页面了,默认账号密码:elastic/changeme

 

5.更新X-PACK licence信息

 

#在Dev Tools中输入下面的信息进行licence更新

PUT _xpack/license
{
"license": {
"uid": "568c8040-63fe-4fb7-81e4-f8fe94693ef9",
"type": "platinum",
"issue_date_in_millis": 1505174400000,
"expiry_date_in_millis": 2536796799999,
"max_nodes": 100,
"issued_to": "jianbo yu (i-counting)",
"issuer": "Web Form",
"signature": "AAAAAwAAAA1H1ROSSTmyGk1iX87BAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBxmqnrW+hya/tr/l/aHmLpUpwYMJ7NLCpzr2SRMbjNcJqZGQZYwqCn37MNtMQuNrYF3EJ41wDOKEf4MoOEg593iK+Q1Iih8n9eWhcKh0uHqa2hLu4aBE2cIBb7aedj7/JGMthQLbc5M7xgtcUG1O3n4q0plgm/teRuHxW+ray8tj/daNuXgUAIoFDrWfNmPnCjphLGjg9brzf7KauIYy7zCpcGO/QItIgaFgFV8tUuhwI3ns42O5MIjgUEmt1oG8ZGiqoJg6U/J7UN1/zRjzbyZSyzmGh9YI97sEvYgu72O7p6vMOoJoEVvnFgr4nlSUp6cQyovlnxKgxsab9BKzjV",
"start_date_in_millis": 1505174400000
}
}

 

 6.在Management中创建只读kibana_read Role

 

 下一章介绍通过ELK/EFK搜集docker上容器的日志

 

 

 

参考资料:

https://www.docker.elastic.co/#

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: