Docker-compose部署ELK
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,Docker-compose部署单机ELK环境主机IP 192.168.0.9Docker version 19.03.2docker-compose version 1.24.0-rc1elasti
千家信息网最后更新 2025年02月02日Docker-compose部署ELK
Docker-compose部署单机ELK
环境
主机IP 192.168.0.9
Docker version 19.03.2
docker-compose version 1.24.0-rc1
elasticsearch version 6.6.1
kibana version 6.6.1
logstash version 6.6.1
一、ELK-dockerfile文件编写及配置文件
● elasticsearch
1、elasticsearch-dockerfile
FROM centos:latestADD elasticsearch-6.6.1.tar.gz /usr/local/COPY elasticsearch.yml /usr/local/elasticsearch-6.6.1/config/COPY jdk1.8 /usr/local/ENV JAVA_HOME=/usr/local/jdk1.8ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/binRUN groupadd elsearch && \useradd elsearch -g elsearch -p elasticsearch && \chown -R elsearch:elsearch /usr/local/elasticsearch-6.6.1 && \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/shanghai" > /etc/timezone && \yum install which -y && \mkdir /opt/data && \mkdir /opt/logsEXPOSE 9200 9300#主要是切换到elsearch用户启动esUSER elsearchWORKDIR /usr/local/elasticsearch-6.6.1/bin/ENTRYPOINT ["./elasticsearch"]
2、elasticsearch.yml
[root@localhost elasticsearch]# egrep "^[^#]" elasticsearch.yml cluster.name: es-clusternode.name: node-1path.data: /opt/datapath.logs: /opt/logsnetwork.host: 0.0.0.0http.port: 9200cluster.routing.allocation.disk.threshold_enabled: truecluster.routing.allocation.disk.watermark.low: 94%cluster.routing.allocation.disk.watermark.high: 96%cluster.routing.allocation.disk.watermark.flood_stage: 98%discovery.zen.minimum_master_nodes: 1
● logstash
1、logstash-dockerfile
FROM centos:latestADD logstash-6.6.1.tar.gz /usr/local/COPY logstash.yml /usr/local/logstash-6.6.1/config/COPY logstash.conf /usr/local/logstash-6.6.1/config/COPY jdk1.8 /usr/local/COPY start.sh /start.shENV JAVA_HOME=/usr/local/jdk1.8ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/binRUN mkdir /opt/data && \mkdir /opt/logs && \chmod +x /start.shENTRYPOINT ["/start.sh"]
2、logstash-start.sh
#!/bin/bash/usr/local/logstash-6.6.1/bin/logstash -f /usr/local/logstash-6.6.1/config/logstash.conf
3、logstash.yml
[root@localhost logstash]# egrep "^[^#]" logstash.yml path.data: /opt/datapath.logs: /opt/logspipeline.batch.size: 200
4、logstash.conf
input { file { path => "/usr/local/nginx/logs/access.log" type => "nginx" start_position => "beginning" sincedb_path => "/dev/null" } file { path => "/var/log/secure" type => "secure" start_position => "beginning" sincedb_path => "/dev/null" }}#详细说明可以查看我之前的博客filter { grok { match => { "message" => '(?[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - (? \[[0-9]{1,2}\/[A-z]+\/[0-9]{4}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2} \+[0-9]*\]) "(? [A-Z]+) (? [^ ]+) (? HTTP/\d\.\d)" (? [0-9]+) (? [0-9]+) "(? [^ ]|(http|https)://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/)" "(? (a-Z|0-9| |.)+)"' } remove_field => ["message","log","beat","offset","prospector","host","@version"] }}#output指向es容器output { if [type] == "nginx" { elasticsearch { hosts => ["es:9200"] index => "nginx-%{+YYYY.MM.dd}" } } else if [type] == "secure" { elasticsearch { hosts => ["es:9200"] index => "secure-%{+YYYY.MM.dd}" } } }
● kibana
1、kibana-dockerfile
FROM centos:latestADD kibana-6.6.1-linux-x86_64.tar.gz /usr/local/COPY kibana.yml /usr/local/kibana-6.6.1-linux-x86_64/config/COPY start.sh /start.shRUN chmod +x /start.shEXPOSE 5601ENTRYPOINT ["/start.sh"]
2、kibana.yml
[root@localhost kibana]# egrep "^[^#]" kibana.yml server.port: 5601server.host: "0.0.0.0"#指向es容器的9200端口elasticsearch.hosts: ["http://es:9200"]
3、kibana-start.sh
#!/bin/bash/usr/local/kibana-6.6.1-linux-x86_64/bin/kibana
二、docker-compose,yml文件编写
[root@localhost elk_dockerfile]# cat docker-compose.yml
version: '3.7'services: elasticsearch: image: elasticsearch:elk container_name: es networks: - elk volumes: - /opt/data:/opt/data - /opt/logs:/opt/logs expose: - 9200 - 9300 restart: always depends_on: - logstash - kibana logstash: image: logstash:elk container_name: logstash networks: - elk volumes: - /opt/logstash/data/:/op/data - /opt/logstash/logs/:/opt/logs - /opt/elk/elk_dockerfile/logstash/logstash.conf:/usr/local/logstash-6.6.1/config/logstash.conf - /usr/local/nginx/logs:/usr/local/nginx/logs - /var/log/secure:/var/log/secure restart: always kibana: image: kibana:elk container_name: kibana ports: - 5601:5601 networks: - elk volumes: - /opt/elk/elk_dockerfile/kibana/kibana.yml:/usr/local/kibana-6.6.1-linux-x86_64/config/kibana.ymlnetworks: elk:
compose文件version版本指向
三、访问界面
文件
指向
容器
主机
单机
博客
版本
环境
用户
界面
端口
切换
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
wind数据库筛选功能用不了了
爱威奶最新服务器
金融 数据库 mysql
山东孚慈互联网科技有限公司
如何加强防护远程桌面服务器
tbc数据库boss
2020江苏网络安全宣传日
数据库统计相同
代理服务器地址列表
广东立创软件开发
政协网络安全应急体系建设
kodi多媒体服务器
厦门实力医疗健康软件开发
工商银行软件开发中心离职率
优化网络安全管理前面写什么
服务器AD域的构建及管理
域名根服务器管理网站
淄博市网络安全支撑
系统和网络安全策略
合肥工业学校计算机网络技术
网络安全十条禁令课件
服务器多点登录软件
沭阳直销网络技术厂家价格
口碑好的软件开发哪家专业
法制日报网络安全案例
服务器普遍价格
云南鸿顺智能软件开发
电信服务器中标份额
软件开发企业账务
网络安全概论课实践项目