【Docker】Docker安装 ELK环境( elasticsearch + logstash + kibana)

Docker安装ELK环境 ( elasticsearch + logstash + kibana)

1、下载es镜像,并启动es
官方安装教程

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.12.0
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.12.0

2、下载kibana镜像,并启动kibana
官方安装教程
--link elasticsearch:elasticsearch:第一个elasticsearch而是容器的名,

docker pull docker.elastic.co/kibana/kibana:7.12.0
docker run -d --name kibana  --link elasticsearch:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.12.0

访问kibana
【Docker】Docker安装 ELK环境( elasticsearch + logstash + kibana)_第1张图片
说明安装成功

3、下载logstash镜像

docker pull logstash:7.5.1

4、启动logstash

docker run -d --name=logstash logstash:7.5.1

5、等待30秒,查看日志

docker logs -f logstash

如果出现以下信息,说明启动成功。

[2020-08-26T08:12:01,224][INFO ][org.logstash.beats.Server] Starting server on port: 5044
[2020-08-26T08:12:01,722][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

6、创建持久化目录,拷贝数据,授予权限,并重新启动
创建持久化目录

mkdir -p /data/elk7/logstash/config/conf.d

拷贝数据

docker cp logstash:/usr/share/logstash/config /data/elk7/logstash/
docker cp logstash:/usr/share/logstash/data /data/elk7/logstash/
docker cp logstash:/usr/share/logstash/pipeline /data/elk7/logstash/

授予权限

chmod 777 -R /data/elk7/logstash

重启logstash

docker run -d --name=logstash logstash:7.5.1

7、修改配置文件中的地址

vi /data/elk7/logstash/config/logstash.yml

添加下面二行配置

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash

在这里插入图片描述

8、新建文件syslog.conf

touch syslog.conf

在这里插入图片描述
在新建的syslog.conf文件中添加以下代码

input {
	### 从RabbitMq获取消息
	rabbitmq {
		### 需要修改成自己的MQ地址
        host => "192.168.147.133"
        ### 需要修改成自己的MQ端口号
		port => "5672"
		### 需要修改成自己的MQ账号
		user=>"admin"
		### 需要修改成自己的MQ密码
        password=>"admin" 
        ### 消息队列名称
		queue => "error_log_queue"
		### 交换机名称
		exchange => "/blog_ex"
		codec=>json
		durable => true
    }
}

filter {
  #Only matched data are send to output.
}

output {
	### 输出到es中
	elasticsearch {
		action => "index"          #The operation on ES
		### 需要修改成自己的ES地址
		hosts  => "192.168.147.133:9200"   #ElasticSearch host, can be array.
		### ES索引名称
		index  => "blog_error_logs"         #The index to write data to.
	}
}

【Docker】Docker安装 ELK环境( elasticsearch + logstash + kibana)_第2张图片
9、重启logstash,并让配置生效
先删除logstash容器 docker rm logstash
/data/elk7/logstash/config/ 根据自己实际地址

docker run -d --name=logstash --restart=always -v /data/elk7/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk7/logstash/config/conf.d/:/usr/share/logstash/conf.d/ logstash:7.5.1

10、在mq中投递消息
Docker安装RabbitMQ请参考:https://blog.csdn.net/qq_42021376/article/details/115246746?spm=1001.2014.3001.5501
在这里插入图片描述
11、查询投递后的消息

GET blog_error_logs/_search
{
  "query": {
    "match_all": {}
  }
}

【Docker】Docker安装 ELK环境( elasticsearch + logstash + kibana)_第3张图片
ELK环境搭建成功

你可能感兴趣的:(linux,运维,linux,docker,elasticsearch)