概述

应为工作的需要,需要部署一个日志管理系统,以解决多服务器日志查看的问题。
在网上查询了下, 现在常用的是基于filebeat,kafka,logstash,elasticsearch,kibana实现。

各个软件的角色
filebeat: 用于日志收集的客户端(日志数据直接送往elasticsearch应该是也可以的)。
kafka: 消息队列系统,filebeat采集后丢消息队列, 用来分发日志。
logstash:日志收集分析存储(可以对日志进行一些分析处理)。
elasticsearch: 这是一个分布式的搜索引擎, 在这里作为数据仓库, 用来存储,搜索服务。
kibana: 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

环境搭建

各个软件下载解压步骤略过, java环境搭建略过, 如该对这些有问题可以进行百度解决。

例如我是将所有的软件直接解压到 /opt/, 该目录一般也是用来装一些软件使用。

filebeat 安装

修改配置文件, 根据自己的需要修改配置信息, 最基本的配置文件修改收集的日志路径(软件根目录filebeat.yml文件)

 

 paths:
    - /var/log/*.log

配置收集的日志输出:

 

#================================ Kafka =====================================
output.kafka:
  # initial brokers for reading cluster metadata
  #hosts: ["localhost:9092", "localhost:9093", "localhost:9094"]
  hosts: ["localhost:9092"]
  # message topic selection + partitioning
  #topic: '%{[type]}'
  topic: 'c-test'
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

输出源可选的有很多, 包括可以直接输出到我们后面说的那两个软件, elasticsearch,logstash 等。 这里我们使用的kafka(kafka这里1可以做一些缓冲, 其次方便后期做一些其他的扩展)

运行filebeat:

sudo ./filebeat -e -c filebeat.yml

需要注意的是 filebeat.yml 软件会提示需要root所有。

kafka安装

kafka是基于zookeeper的,我们可以先启动zookeepre

bin/zookeeper-server-start.sh config/zookeeper.properties

 

配置文件包括数据存储,端口等信息,默认无需修改即可运行, 需要注意的是,数据存储的目录默认是 /tmp下,如果重启服务器就会导致数据丢失的可能。zookkeeper也是可以集群的。

kafka配置信息修改, 这是一个分布式的软件, 配置信息(server.properties)修改需要注意的是

1 指向同一个zookeeper集群

2 broker.id=0 在集群中不要重复

创建主题(重要)

 

./bin/kafka-topics.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –create –topic log –replication-factor 1 –partitions 1

启动创建者(可以用来测试)

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic log

 

启动消费者(可以用来测试)

 

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic log --from-beginning

 

安装logstash

创建配置文件 config/my.conf

 

input {
	kafka {
		#config kafka server info
		bootstrap_servers => "localhost:9092,localhost:9093,localhost:9094"
		topics => ["c-test"]
	}
}


output {
	#stdout {}
	elasticsearch {
	}
filter {
    json {
        source => "message"
    }
}

详细配置请参照官方文档:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html#package-repositories

 

启动:

bin/logstash -f config/my.conf

 

该系统启动对elasticsearch有依赖。

安装Elasticsearch

修改配置文件(elasticsearch.yml)

 

# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:  集群名字,在一个集群中的机器请保持一致的配置
#
cluster.name: es
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node: 集群节点名, 如果在集群中请保持不同的名字
#
node.name: fang-pc


# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):  数据存储路径,根据需要调整
#
path.data: /home/fang/software/elasticsearch-5.4.1/data
#
# Path to log files:  日志路径,根据自己需求调整
#
path.logs: /home/fang/software/elasticsearch-5.4.1/logs

 

启动:

bin/elasticsearch

安装kibana

这个需要配置es服务器地址, 默认是本机。

启动:

bin/kibana

 

默认地址: http://localhost:5601

 

至此日志系统搭建完成, 更详细,更升入的需要查看官方文档学习了。

elasticsearch历史数据维护:

//删除所有的日志数据, 默认日志格式 logstash-2017.06.12  按日生成index的
curl -XDELETE 'http://host.IP.address:9200/logstash-*'
curl -XDELETE http://localhost:9200/.kibana

//如果没有其他数据可以直接
curl -XDELETE http://localhost:9200/*

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注