Docker环境 ELK 快速部署

摘要:
Docker环境ELK快速部署环境Centos7.4,Dockersion17.12 Docker至少3GB内存;内核配置echo'vm。max_map_Count=262144net。果心somaxconn=65535'˃˃/etc/sysctl。confsysctl-p#创建elk#下载elk image dockerpullsebp/elk#创建卷(推荐)dockervolume

Docker环境 ELK快速部署

环境 Centos 7.4 , Docker version 17.12
Docker至少3GB内存;

内核配置

echo '
vm.max_map_count = 262144
net.core.somaxconn=65535
'>>/etc/sysctl.conf
sysctl -p

#创建elk

 #下载elk镜像  
docker pull sebp/elk

 #创建volume(推荐)  
docker volume create elk-es
docker volume ls

 #创建elk容器  
sudo docker run -dit --name elk 
  -p 5601:5601 -p 9200:9200 -p 5044:5044 
  -v elk-es:/var/lib/elasticsearch 
  -v /etc/localtime:/etc/localtime 
  sebp/elk 

保持时区一致-v /etc/localtime:/etc/localtime
内存限制 -e ES_MIN_MEM=1G -e ES_MAX_MEM=3G

查看

docker ps -l  
 #访问测试  
curl localhost:9200
curl localhost:5601
 #浏览器访问kabana  ip:5601  

#logstash 客户端访问配置

 #logstash配置文件目录 /etc/logstash/conf.d/
 #关闭logstash的ssl验证(生产环境建议使用自签证书)
docker exec -it elk sed -i 's/ssl/#ssl/' /etc/logstash/conf.d/02-beats-input.conf
 #重启ELK容器
docker restart elk

##############################

#客户端使用centos+nginx+filebeat测试

下载centos镜像

docker pull centos

创建Dockerfile文档,自定义镜像,安装filebeat、nginx

echo '
FROM centos

MAINTAINER Elven <elven89@qq.com> && 
ENV TZ "Asia/Shanghai" && 
ENV TERM xterm

 #use aliyun source,and install#
RUN curl -s http://mirrors.aliyun.com/repo/Centos-7.repo>/etc/yum.repos.d/CentOS-Base.repo && 
 curl -s http://mirrors.aliyun.com/repo/epel-7.repo>/etc/yum.repos.d/epel.repo && 
 sed -i "/aliyuncs.com/d" /etc/yum.repos.d/*.repo && 
 yum install -y net-tools tar && 
 rm -rf  /var/cache/yum/* /tmp/* /var/tmp/* /root/*.cfg

 #install filebeat
ENV FILEBEAT_VERSION=6.2.3
RUN rpm -Uvh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-x86_64.rpm && 
 systemctl enable filebeat.service 
ADD filebeat.yml /etc/filebeat/filebeat.yml

 #install nginx
RUN rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm && 
 yum install nginx -y && 
 systemctl enable nginx.service && 
 yum clean all

EXPOSE 80

ENTRYPOINT ["/usr/sbin/init"]
'>Dockerfile

创建filebeat配置文件

echo '#filebeat#
filebeat.prospectors:
#nginx
- input_type: log
  enable: yes
  #tags: nginx-access
  paths:
    - /var/log/nginx/access.log
  exclude_lines: ["^$"]
  fields:
    type: "nginx-access"
  fields_under_root: true
#logstash
output.logstash:
  hosts: ["elk:5044"]
'>filebeat.yml

创建镜像filebeat-nginx

docker build -t filebeat-nginx .

查看镜像

docker images

创建容器filebeat-nginx

sudo docker run --privileged -dit --name filebeat-nginx 
  --link elk -p 82:80  filebeat-nginx

挖坑 centos镜像使用--privileged参数,启动/usr/sbin/init ,才可使用systemctl管理服务

查看

docker ps -l
netstat -lntp |grep 82
docker exec -it filebeat-nginx netstat -lntp
curl localhost:82

浏览器访问ip:82 能访问nginx页面

首次打开,需要添加索引
Management管理-->Index Patterns索引模式-->Create index pattern创建索引模式
填写filebeat-* (索引名)-->Next step-->选择如@timestamp-->Create index pattern ,完成

elk镜像自带nginx日志切割实例文件
/opt/logstash/patterns/nginx
/etc/logstash/conf.d/11-nginx.conf


#调试

 #进入elk容器
docker exec -it elk /bin/bash

 #安装网络工具net-tools
apt install net-tools -y
 #查看启动端口
netstat -lntp

 #logstash检测配置
/opt/logstash/bin/logstash -t -f /opt/logstash/config/logstash.yml
 #终端启动
service logstash stop
/opt/logstash/bin/logstash -f /opt/logstash/config/logstash.yml

 #进入filebeat-nginx容器  
docker exec -it filebeat-nginx /bin/bash

 #filebeat调试
systemctl stop filebeat
/usr/share/filebeat/bin/filebeat -configtest -c /etc/filebeat/filebeat.yml
/usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -d "publish"

#汉化kibana (可选)

查看ELK Dockerfile文档得知系统基于ubuntu:16

 #进入elk容器
docker exec -it elk /bin/bash

 #配置国内源
echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial xenial-updates main universe restricted multiverse'>>/etc/apt/sources.list
echo 'deb-src http://mirrors.aliyun.com/ubuntu/ xenial xenial-updates main restricted multiverse universe'>>/etc/apt/sources.list
apt-get update 

 #安装git
apt install git -y
git --version
 #安装python
apt install python -y
python -V

 #汉化kibana
cd /opt
git clone https://github.com/anbai-inc/Kibana_Hanization.git
cd Kibana_Hanization
python main.py /opt/kibana

 #重启kibana
service kibana restart

 #Ctrl+D快捷键退出容器

##############################

使用curl命令操作Elasticsearch索引

 #查询索引
curl 'localhost:9200/_cat/indices?v'

 #创建索引test-index
curl -XPUT 'localhost:9200/test-index?pretty'

 #删除索引
curl -XDELETE 'localhost:9200/test-index'

##############################
官方文档

Docker ELK文档
http://elk-docker.readthedocs.io/

Docker Hub官网 ELK
https://hub.docker.com/r/sebp/elk/

github elk
https://github.com/spujadas/elk-docker
https://github.com/spujadas/elk-docker/blob/master/nginx-filebeat/Dockerfile

免责声明:文章转载自《Docker环境 ELK 快速部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇UE4 C++ 笔记C#选择文件、选择文件夹、打开文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ubuntu下发布asp.net core并用nginx代理之旅(续)

前面实现了ubuntu下的发布,然而实际项目一般为visual studio中发布文件系统,然后上传至生产环境中,(部分参考:上传文件到linux - ubuntu) 这节就发布到生产环境中的: 1.首先,在生产环境中搭建ftp服务端,方便我们上传文件至服务端中,以vsftpd为例: 首先安装vsftpd (不得不说ubuntu的apt-get用起来确实方...

(转) docker跨主机 macvlan 网络配置

原文链接 https://github.com/alfredhuang211/study-docker-doc/blob/master/docker%E8%B7%A8%E4%B8%BB%E6%9C%BAmacvlan%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE.md#搭建环境 -----以下部分转自原文----- 搭建环境 v...

在 docker 环境下部署运行 JumpServer 堡垒机

为了安全合规,也为了规范运维,在服务器的运维过程中是很有必要引入堡垒机工具的。 不过目前大部分堡垒机都是商用付费的,出于学习的目的,免费的堡垒机目前只看到有 麒麟堡垒机 和 JumpServer 两款。 麒麟堡垒机 界面有些老了,也不太清楚维护更新的状态如何,不过功能上还是非常全面的,但没有官方的 Docker 镜像用于快速部署还是比较遗憾,只能是单独准备...

第六篇 kubernetes helm部署harbor镜像仓库

1.harbor镜像仓库简介 Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、 镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。 2.harbor 组件简介 从安装组件我们可以看出harbor主要依靠以下几个组件: Nginx...

Docker部署Zabbix+Grafana监控

Docker部署Zabbix+Grafana监控 环境 centos 7 ; Docker 17.12.0-ce ; docker-compose version 1.20.1 2018-4-1 当前zabbix最新版3.4.7 ,grafana最新版5.0.4 #下载部署代码 cd /opt git clone https://gitee.com/a...

nginx 拦截 swagger 登录

随着微服务的也来越多,每个服务都有单独的文档,那么问题来了,怎么把所有文档整合在一起呢 本方法采用服务器拦截的方式进行处理 首先需要在opt 的主目录中 /opt/ 创建一个新文件 htpasswd此文件的书写格式是用户名:密码每行一个账户并且 密码必须使用函数 crypt(3) 加密官方档说 可以用 Apache 的 htpasswd 工具来创建密码文件...