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
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
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.
}
}
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": {}
}
}