filebeat+kafka+logstash+elasticsearch+kibana实现日志收集解决方案


前言:我们使用nginx来模拟产生日志的服务,通过filebeat收集,交给kafka进行消息队列,再用logstash消费kafka集群中的数据,交给elasticsearch+kibana监控

一,环境


服务器环境:

192.168.2.1:elasticsearch
192.168.2.2:filebeat+nginx
192.168.2.3:kafka
192.168.2.4:logstash

二,服务的安装


elasticseatch+filebeat+kafka+logsstash(6.60)清华源下载: https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/
zookeeper官网下载: https://zookeeper.apache.org/releases.html
kafka官网下载: https://kafka.apache.org/downloads

一,配置elasticsearch

1.验证java环境(存在无需安装)
java -version#验证java环境
安装JDK1.8:yum -y install java-1.8.0-openjdk.x86_64
2.安装elasticsearch
rpm -ivh /mnt/elk-6.6/elasticsearch-6.6.0.rpm
3.修改配置文件
vi /etc/elasticsearch/elasticsearch.yml
修改一下内容:
node.name: node-1                       #群集中本机节点名
network.host: 192.168.2.1,127.0.0.1 #监听的ip地址
http.port: 9200         
4.开启elasticsearch
systemctl start elasticsearch
5.查看启动情况
[root@localhost ~]# netstat -anpt | grep java
tcp6       0      0192.168.2.1:9200        :::*                    LISTEN      12564/java
tcp6       0      0127.0.0.1:9200          :::*                    LISTEN      12564/java
tcp6       0      0192.168.2.1:9300        :::*                    LISTEN      12564/java
tcp6       0      0127.0.0.1:9300          :::*                    LISTEN      12564/java
tcp6       0      0192.168.2.1:9200        192.168.2.4:34428       ESTABLISHED 12564/java
tcp6       0      0192.168.2.1:9200        192.168.2.4:34436       ESTABLISHED 12564/java

二,配置filebeat+nginx

1.安装nginx
yum -y install nginx
2.安装filebeat
rpm -ivh /mnt/elk-6.6/filebeat-6.6.0-x86_64.rpm
3.修改filebeat配置文件
[root@localhost ~]# vi /etc/filebeat/filebeat.yml
添加一下内容:
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
​
output.kafka:
  enabled: true
  hosts: ["192.168.2.3:9092"]   #kafka的IP地址和端口
  topic: test1                  #kafka的topic
4.开启服务
systemctl start nginx
systemctl start filebeat

三,配置kafka环境

1.安装java环境(存在无需安装)
yum -y install java-1.8.0-openjdk.x86_64
2.安装zookeeper
tar xf /mnt/zookeeper-3.4.9.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.9/ /usr/local/zookeeper
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
mkdir data logs
echo 1 > data/myid
/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/zookeeper/bin/zkServer.sh status
1.修改zookeeper配置文件
vi zoo.cfg
添加一下内容:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
server.1=192.168.2.3:3188:3288
保存退出
mkdir data logs
echo1 > data/myid
2.启动zookeeper文件
/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/zookeeper/bin/zkServer.sh status
3.安装kafka
tar xf /mnt/kafka_2.11-2.2.1.tgz -C /usr/local/
mv /usr/local/kafka_2.11-2.2.1/ /usr/local/kafka
4.配置kafka
cd /usr/local/kafka/config/
cp server.properties server.properties.bak
vi server.properties
修改一下内容:
broker.id=1
listeners=PLAINTEXT://192.168.2.3:9092
zookeeper.connect=192.168.2.3:2181
5.启动kafka
cd /usr/local/kafka/
./bin/kafka-server-start.sh  ./config/server.properties   &
6.kafka创建topic
./bin/kafka-topics.sh --create--zookeeper localhost:2181 --replication-factor1--partitions1--topic test1   #创建名为test1的topic
./bin/kafka-topics.sh --list--zookeeper localhost:2181     #查看当前有哪些topic
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning    #查看test1中有那些信息

四,配置logstash

1.安装java环境(存在可省略)
yum -y install java-1.8.0-openjdk.x86_64
2.安装logstash
rpm -ivh /mnt/elk-6.6/logstash-6.6.0.rpm
3.编写配置文件
vi /etc/logstash/conf.d/kafka.conf
input {
  kafka {
    bootstrap_servers => ["192.168.2.3:9092"]
    group_id => "es-test"
    topics => ["test1"]                         #与filebeat使用的topic一致
    codec => json
 }
}
​
output {
  kafka{
       codec => json {
            charset => "UTF-8"
        }
    topic_id => "test1"
    bootstrap_servers => "192.168.2.3:9092"
​
  }
  elasticsearch {
    hosts => "http://192.168.2.1:9200"
    index => "kafka‐%{+YYYY.MM.dd}"
 }
}
4.启动服务
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf

五,配置kibana

1.安装kiana
 rpm -ihv /mnt/elk-6.6/kibana-6.6.0-x86_64.rpm
2.配置kiana
vim /etc/kibana/kibana.yml
修改:
server.port: 5601
server.host: "192.168.2.5"
server.name: "db01"
elasticsearch.hosts: ["http://192.168.2.1:9200"]   #es服务器的ip,便于接收日志数据
3.开启kiana服务
systemctl start kibana

三,收集日志


一,kibana收集日志
  1. 添加日志信息

  1. 选择日志格式
3.查看日志信息

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
很抱歉,我不太清楚您想要哪方面的代码,因为ELK+kafka+reyslog+filebeat是一个比较复杂的系统架构,它们涉及到不同的组件和配置。以下是一个简单的流程示例,仅供参考: 1. 安装配置Kafka Kafka是一个分布式消息队列,可用于实现日志传输。可从官方网站下载Kafka的二进制包,然后按照官方文档进行配置。 2. 安装配置Reyslog Reyslog是一个开源的日志收集器,可用于将日志发送到Kafka。可从官方网站下载Reyslog的二进制包,然后按照官方文档进行配置。 3. 安装配置Filebeat Filebeat是一个轻量级的日志采集器,可用于将本地日志文件发送到Reyslog。可从官方网站下载Filebeat的二进制包,然后按照官方文档进行配置。 4. 安装配置ELK ELK是一个开源的日志分析平台,由ElasticsearchLogstashKibana三个组件组成。可从官方网站下载ELK的二进制包,然后按照官方文档进行配置。 5. 配置Kafka输出插件 在Logstash中配置Kafka输出插件,以将从Reyslog接收到的日志发送到Kafka。 6. 配置Elasticsearch输入插件 在Logstash中配置Elasticsearch输入插件,以将从Kafka接收到的日志发送到Elasticsearch中进行存储和索引。 7. 配置KibanaKibana中配置索引和仪表板,以可视化和分析存储在Elasticsearch中的日志数据。 以上是一个简单的ELK+kafka+reyslog+filebeat的流程示例,具体的代码实现需要根据实际情况进行调整和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征服bug

curry.30

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值