centos7系统下docker安装ELK(Elasticsearch、Logstash和Kibana、Filebeat)

前言

公司最近使用微服务,此时简单的日志收集已经不再满足我们的需求,而在系统中又使用了Elasticsearch,所以决定使用logstash收集日志,传输到Elasticsearch中,使用Kibana搜索展现日志数据。
Docker 镜像统一从 https://hub.docker.com/ 下载 (安装时请使用统一版本,否则会出现奇奇怪怪的bug)
(我这边使用的版本是7.14.1)

安装Elasticsearch

先正常启动es

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d elasticsearch:7.14.1

如果需要设置密码,需要在这一步先设置
进入es容器

docker exec -it elasticsearch bash

编辑 config/elasticsearch.yml
添加如下配置:

http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

之后重启es

docker restart elasticsearch 

再次进入容器后,执行命令:

#可查看设置密码详情
./bin/elasticsearch-setup-passwords -h
#如果不需要自行设置密码,则只需要
./bin/elasticsearch-setup-passwords auto
#如果需要,则
./bin/elasticsearch-setup-passwords interactive

此时密码设置完成。
再将需要的文件夹拷贝到本机上

docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/plugins /data/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/data /data/elasticsearch/

移除临时的es

docker rm elasticsearch

此时再正常启动:

docker run 
#名称
--name elasticsearch 
#开机重启
-it --restart=always
#暴露端口
-p 9200:9200 
-p 9300:9300  
#类型,我这边使用的是单节点
-e "discovery.type=single-node" 
#内存大小,根据自身情况设置
-e ES_JAVA_OPTS="-Xms4g -Xmx4g"  
#挂载data文件夹,索引数据存放的地方
-v /data/elasticsearch/data:/usr/share/elasticsearch/data 
#挂载工具文件夹
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins 
#挂载配置文件
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 
#-d为后台运行
-d elasticsearch:7.14.1

测试是否安装成功

curl 127.0.0.1:9200

在这里插入图片描述
如果设置了密码,则命令为:

curl 127.0.0.1:9200 -u 用户名:密码

在这里插入图片描述

到此Elasticsearch安装成功。

安装Kibana

步骤和安装Elasticsearch相同,都是先运行初始版本,把需要的文件夹复制出来,最后启动

docker run -d 
-it --restart=always 
--privileged=true 
-p 5601:5601 
--name kibana 
-v /data/kibana/config:/usr/share/kibana/config 
-m 512m 
--memory-swap=1024m 
kibana:7.14.1

kibana.yml额外配置:

#es地址
elasticsearch.hosts: [ "http://xxx:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
#es用户名
elasticsearch.username: "elastic"
#es密码
elasticsearch.password: "twkj@2021"
#开启kibana中文
i18n.locale: "zh-CN"

安装Logstash

步骤和安装Elasticsearch相同,都是先运行初始版本,把需要的文件夹复制出来,最后启动。
只不过这里我自己新增了一个conf.d文件夹,把配置放在了一起。
此时logstash.yml配置为:

http.host: 127.0.0.1
#配置路径
path.config: /usr/share/logstash/conf.d/*.conf
#日志路径
path.logs: /var/log/logstash

配置完之后删除初始版本,再执行下面的命令:

docker run -d -it 
--restart=always --privileged=true -p 5044:5044 
--name logstash  
#挂载配置文件
-v /data/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml 
#挂载配置文件夹
-v /data/logstash/conf.d/:/usr/share/logstash/conf.d/ 
--link elasticsearch:elasticsearch
logstash:7.14.1

conf.d目录中配置示例:

#我这边使用的filebeat抓取日志文件推送至logstash,再由logstash分类存储进入es中
input {
    beats {
    port => 5044
    codec => "json"
}
}
filter {
  grok {
  #日志输出规范
    match => { "message" => "(\s)*%{TIMESTAMP_ISO8601:log_time}(\.[0-9]*)?" }
    }
    #日志时间
  date {    match => ["log_time", "yyyy-MM-dd HH:mm:ss.SSS"]    target => "@timestamp"    timezone => "Asia/Shanghai"  }
}
output {
  if [fields][source] == "oauth" {
    elasticsearch {
   #index为自定义索引名称,可以按照自己的习惯进行命名
    hosts => ["elasticsearch:9200"] user => "es用户名" password => "es密码" index => "logstash-oauth-%{+YYYY.MM.dd}"
    }
  }
}

安装Filebeat

步骤和安装Elasticsearch相同,都是先运行初始版本,把需要的文件夹复制出来,最后启动。

docker run -d -it --restart=always --privileged=true 
--name filebeat 
-v /data/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml 
#需要抓取的日志目录映射到filebeat中,防止抓取失败
-v /data/server/:/data/server/ 
--link logstash:logstash  store/elastic/filebeat:7.14.1

filebeat.yml配置示例:

filebeat.inputs:
#类型为日志,如果需要更多配置信息,请移步官网
- type: log
  paths:
  #抓取的文件路径,可以是多个,也可以用*的通配符
    - /data/server/oauth/logs/tw-oauth/*.log
  fields:
  #输送到logstash中的名称,logstash中可以根据名称进行一个分类
    source: twoauth
output.logstash:
#logstash路径
  hosts: ["logstash:5044"]

至此配置完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在CentOS 7上通过Docker安装Elasticsearch,可以按照以下步骤进行操作: 1. 拉取Elasticsearch镜像。可以使用以下命令拉取指定版本的镜像: ``` docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.0 ``` 2. 运行容器启动Elasticsearch。使用以下命令运行容器,请确保替换掉命令中的`b1179d41a7b4`为实际的镜像ID: ``` docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" b1179d41a7b4 ``` 这样,你就成功在CentOS 7上通过Docker安装Elasticsearch。可以通过访问`http://localhost:9200`来验证Elasticsearch是否正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker安装ElasticSearchCentos7机器环境)](https://blog.csdn.net/weixin_41827162/article/details/118436153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [centos7:docker安装Elasticsearch](https://blog.csdn.net/hzblucky1314/article/details/121419857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值