ELK+Kafka分布式日志
将所有的日志发送到一个平台
Elasticsearch 搜索引擎
Logstash 日志框架
Kibana 图形化界面
Kafka 消息中间件
多个应用系统将日志发送到一个平台Kafka上,通过Logstash(输入输出)导入到Elasticsearch库中,Kibana平台收集日志,查看日志。
Kafka 处理日志
RabbitMQ 处理事务
Redis 做缓存
ActiveMQ 消息队列,高并发
1.搭建Elasticsearch环境并测试:
打开虚拟机,输入指令
docker ps -a
docker start containerIp
(1)删除es的容器
(2)删除es的镜像
(3)宿主机调内存: 执行命令:sudo sysctl -w vm.max_map_count=655360
(4)通过ftp软件修改docker-compose.yml中的 mem_limit: 2048M (不动)
(5)找到虚拟机, 执行命令:cd /home/…/springcloudV2.0/
执行命令:docker-compose up -d elasticsearch
(6)测试es:http://192.168.115.158:9200 出现es的版本号说明配置环境成功。
2.搭建logstash
(1)打开物料中logstash
步骤:进入logstash的容器
vi /usr/local/logstash-6.3.0/config/logstash.yml(修改连接es的ip)
修改成:
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.133.129:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changeme
xpack.monitoring.enabled: false
(2)vi /usr/local/logstash-6.3.0/bin/logstash.conf
修改ip以及加入日志参数
input{
kafka{
bootstrap_servers => ["192.168.115.158:9092"]
group_id => "test-consumer-group"
auto_offset_reset => "latest"
consumer_threads => 5
decorate_events => true
topics => ["dm"]
type => "bhy"
}
}
output {
elasticsearch{
hosts=> ["192.168.115.158:9200"]
index=> "dmservice-%{+YYYY.MM.dd}"
}
stdout{
codec => json_lines
}
}
重启logstash
3.修改kibana配置文件
(1)kibana的.yml找到elasticsearch.url:并修改成 “http://192.168.115.158:9200”,每次修改完成后重启
(2)访问:http://192.168.133.129:5601没有出现无es数据即说明成功。
4.kafka
(1)找到server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.115.158:9092
(2)启动kafka命令
重启kafka,然后输入:
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic dm --from-beginning
5.打开idea,查看kafka
(1)输入http://localhost:9999/sendMsgToKafka查看
(2)查看消息队列
(3)kibana
(4)图形化界面