ELK+redis消息队列,防止数据丢失
原理展示和准备工作
准备工作:
这里我准备了3台虚拟机: IP--------------部署的服务
192.168.131.80---elasticsearch,kibana
192.168.131.81---logstash,redis
192.168.131.82---logstash
工作流程:
1、 .82的logstash 获取日志信息发送到 .81 的redis上
1、 .81 Redis在此处的作用是防止ElasticSearch服务异常导致丢失日志,提供消息队列的作用
3、 .81 的logstash是读取Redis中的日志信息发送给 .80 的ElasticSearch
4、 .80 的ElasticSearch提供日志存储和检索
5、 .80 的Kibana是ElasticSearch可视化界面插件
1、80上安装elasticsearch
1. 安装elasticsearch
rpm -ivh elasticsearch-7.3.2-x86_64.rpm
2. 修改配置文件:
vim /etc/elasticsearch/elasticsearch.yml
3. 配置
**集群的名称**
cluster.name: my-application
**节点的名字,在集群中是唯一的**
node.name: node-1
**监听的IP地址(一般写本机)**
network.host: 192.168.131.80 (本机ip)
0.0.0.0(代表所有)
**监听的端口**
http.port: 9200
**发现的集群的其他elasticsearch节点(多个节点用逗号隔开)**
discovery.seed_hosts: ["192.168.189.80"]
cluster.initial_master_nodes: ["192.168.189.80"]
**集群中有几个Elasticsearch 运行时,集群恢复正常**
gateway.recover_after_nodes: 2
保存退出
4. 启动Elasticsearch
systemctl start elasticsearch
2、80上安装kibana
1. 安装kibana
rpm -ivh kibana-7.3.2-x86_64.rpm
2. 修改配置文件
vim /etc/kibana/kibana.yml
3. 配置
**监听端口**
server.port: 5601
**监听IP**
server.host: "192.168.131.80"
**elasticsearch服务器地址**
elasticsearch.hosts: ["http://192.168.131.80:9200"]
**设置页面语言为中文**
i18n.locale: "zh-CN"
4. 启动kibana
systemctl start kibana
3、81上安装logstash和redis
安装redis
安装依赖环境
yum -y install gcc gcc-c++
上传redis源码包
解压 tar zxf redis-5.0.3.tar.gz
进入目录 cd redis-5.0.3
编译安装 make && make install
复制文件 cp redis-5.0.3/redis.conf /etc
更改redis配置文件
vim /etc/redis.conf
69行 bind 0.0.0.0
136行 daemonize yes -----守护进程方式启动
启动redis redis-server /etc/redis.conf
------------------------------------------------------------------------
安装logstash:
rpm -ivh jdk-8u131-linux-x64_.rpm
rpm -ivh logstash-7.3.2.rpm
配置:
cd /etc/logstash/conf.d/
vim system.conf -----必须以.conf结尾,命名什么随意
input {
redis {
host => "192.168.131.81"
port => "6379"
type => "system-log"
data_type => "list"
key => "logstash:system-log"
}
}
output {
elasticsearch {
hosts => "192.168.131.80:9200"
index => "system-log_%{+YYYY.MM.dd}"
}
}
4、82上安装logstash
安装:
rpm -ivh jdk-8u131-linux-x64_.rpm
rpm -ivh logstash-7.3.2.rpm
配置:
cd /etc/logstash/conf.d/
vim redis.conf -----必须以.conf结尾,命名什么随意
input {
file {
path => "/var/log/messages"
type => "system-log"
start_position => "beginning"
}
}
output {
redis {
host => "192.168.131.81:6379"
data_type => "list"
key => "logstash:system-log"
}
}
5:浏览器访问,创建索引,查询日志!
各个服务启动后,浏览器访问kibana(ip:5601),创建索引然后就可以查询日志了!