草庐IT

Docker安装ELK集群

qq_42799562 2023-09-28 原文

ELK集群安装

一、Elasticsearch

1.1 下载压缩包

elasticsearch
kibana
logstash

1.2 修改/etc/sysctl.conf

vm.max_map_count=262144 # 添加配置
sysctl -p # 执行生效

1.3 生成证书

cd /etc/elk/elasticsearch # 转到压缩包目录
tar zxvf elasticsearch-8.5.0-linux-x86_64.tar.gz # 解压文件
cd /etc/elk/elasticsearch/elasticsearch-8.5.0 # 转到对应目录
bin/elasticsearch-certutil ca # 生成ca证书,直接回车到结束
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 # 通过ca证书生成统一通信证书,用于集群间连接
# 生成http证书,分别输入对应对话框选项
# n 不创建csr
# y 使用已经存在ca证书
# ca证书路径 /etc/elk/elasticsearch/elasticsearch-8.5.0/elastic-stack-ca.p12
# 5y 证书有效期5年
# 输入主机名(可用ip)回车结束
# 输入主机名对应ip 回车结束
bin/elasticsearch-certutil http 
unzip elasticsearch-ssl-http.zip # 解压得到的zip文件
# 分别拷贝以下文件到 /etc/elk/elasticsearch
# /etc/elk/elasticsearch/elasticsearch-8.5.0/elastic-certificates.p12
# /etc/elk/elasticsearch/elasticsearch-8.5.0/elasticsearch/http.p12
# /etc/elk/elasticsearch/elasticsearch-8.5.0/config/elasticsearch.yml

bin/elasticsearch-certutil csr --name kibana  # 生成csr
unzip  /etc/elk/elasticsearch/elasticsearch-8.5.0/csr-bundle.zip # 解压
# 拷贝以下文件到kibana主机目录 /etc/elk/kibana
# /etc/elk/elasticsearch/elasticsearch-8.5.0/kibana/kibana.csr
# /etc/elk/elasticsearch/elasticsearch-8.5.0/kibana/kibana.key
# /etc/elk/elasticsearch/elasticsearch-8.5.0/kibana/elasticsearch-ca.pem

# 拷贝以下文件到logstash主机目录 /etc/elk/logstash
# /etc/elk/elasticsearch/elasticsearch-8.5.0/kibana/elasticsearch-ca.pem

cd /etc/elk/elasticsearch/
mkdir data # 挂载数据
mkdir logs # 挂载日志
chmod 777 /etc/elk/elasticsearch/logs # 授权
chmod 777 /etc/elk/elasticsearch/data # 授权
chmod 777 /etc/elk/elasticsearch/http.p12 # 授权
chmod 777 /etc/elk/elasticsearch/elastic-certificates.p12 # 授权
chmod 777 /etc/elk/elasticsearch/elasticsearch.yml # 授权

1.4 elasticsearch.yml

# 末尾追加配置,其他主机(变更节点名和ip即可)
cluster.name: elasticsearch-cluster
node.name: elasticsearch-cluster-01

path.data: /usr/share/elasticsearch/data/
path.logs: /usr/share/elasticsearch/logs/

network.host: 0.0.0.0
network.publish_host: 192.168.157.142

http.port: 9200

discovery.seed_hosts: ["192.168.157.142:9300", "192.168.157.143:9300"]
cluster.initial_master_nodes: ["192.168.157.142:9300","192.168.157.143:9300"]

xpack.security.enabled: false

1.5 启动容器

docker network create elasticsearch # 创建容器网络
docker run -d --restart=always \
--name elasticsearch \
--net elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-v /etc/elk/elasticsearch/logs/:/usr/share/elasticsearch/logs/ \
-v /etc/elk/elasticsearch/data/:/usr/share/elasticsearch/data/ \
-v /etc/elk/elasticsearch/http.p12:/usr/share/elasticsearch/config/http.p12 \
-v /etc/elk/elasticsearch/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 \
-v /etc/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
docker.elastic.co/elasticsearch/elasticsearch:8.5.0

1.6 开启认证

# 集群节点 elasticsearch.yml 追加配置
xpack.security.enabled: true

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/http.p12
xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/http.p12

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/elastic-certificates.p12

1.7 配置密码

docker restart elasticsearch # 重启容器
docker exec -it elasticsearch  /bin/sh # 进入容器
cd /usr/share/elasticsearch
bin/elasticsearch-setup-passwords interactive # 输入密码即可

二、Kibana

2.1 生成证书

cd /etc/elk/kibana
tar zxvf kibana-8.5.0-linux-x86_64.tar.gz
openssl x509 -req -in kibana.csr --signkey kibana.key -out kibana.crt

chmod 777 /etc/elk/kibana/data
chmod 777 /etc/elk/kibana/kibana.crt
chmod 777 /etc/elk/kibana/kibana.key
chmod 777 /etc/elk/kibana/elasticsearch-ca.pem

2.2 kibana.yml

# 末尾追加配置
server.port: 5601
server.host: "0.0.0.0"

server.ssl.enabled: true
server.ssl.certificate: /usr/share/kibana/config/kibana.crt
server.ssl.key: /usr/share/kibana/config/kibana.key

elasticsearch.hosts: ["https://192.168.157.142:9200","https://192.168.157.143:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"

elasticsearch.ssl.certificateAuthorities: [ "/usr/share/kibana/config/elasticsearch-ca.pem" ]

i18n.locale: "zh-CN"

xpack.reporting.roles.enabled: false

2.3 启动容器

docker run -d --restart=always \
--name kibana \
--net elasticsearch \
-p 5601:5601 \
-v /etc/elk/kibana/data/:/usr/share/kibana/data/ \
-v /etc/elk/kibana/kibana.crt:/usr/share/kibana/config/kibana.crt \
-v /etc/elk/kibana/kibana.key:/usr/share/kibana/config/kibana.key \
-v /etc/elk/kibana/elasticsearch-ca.pem:/usr/share/kibana/config/elasticsearch-ca.pem \
-v /etc/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
docker.elastic.co/kibana/kibana:8.5.0
# 使用 elastic 123456(自己设的密码)进行登录

三、Logstash

cd /etc/elk/logstash
tar zxvf logstash-8.5.0-linux-x86_64.tar.gz
mkdir pipeline
chmod 777 /etc/elk/logstash/pipeline
chmod 777 /etc/elk/logstash/elasticsearch-ca.pem
chmod 777 /etc/elk/logstash/logstash.yml

3.1 logstash.yml

# 文件末尾追加
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "123456"
xpack.monitoring.elasticsearch.hosts: ["https://192.168.157.142:9200", "https://192.168.157.143:9200"]

xpack.monitoring.elasticsearch.ssl.certificate_authority: "/usr/share/logstash/elasticsearch-ca.pem"

3.2 logstash.conf

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  rabbitmq {
    host => "192.168.157.142"
    port => 5672
    user => "guest"
    password => "guest"
    vhost => "/"
    exchange => "logstash"
    exchange_type => "topic"
    key => "apigateway"
    durable => true
  }
}

output {
  elasticsearch {
    hosts => ["https://192.168.157.142:9200", "https://192.168.157.143:9200"]
    index => "apigateway-%{+YYYY.MM.dd}"
    user => "elastic"
    password => "123456"
    cacert => "/usr/share/logstash/elasticsearch-ca.pem"
  }
}

3.3 运行容器

docker run -d \
--restart=always \
--name logstash \
-v /etc/elk/logstash/elasticsearch-ca.pem:/usr/share/logstash/elasticsearch-ca.pem \
-v /etc/elk/logstash/pipeline/:/usr/share/logstash/pipeline/ \
-v /etc/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
docker.elastic.co/logstash/logstash:8.5.0


有关Docker安装ELK集群的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  9. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  10. ruby - 通过 RVM 安装 Ruby 1.9.2 永远行不通! - 2

    当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby​​-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece

随机推荐