概述
应为工作的需要,需要部署一个日志管理系统,以解决多服务器日志查看的问题。
在网上查询了下, 现在常用的是基于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/*