后来作者加入 elastic.co 公司,Logstash-forwarder 的开发工作给公司内部 GO 团队来搞,最后命名为 Filebeat 。
Filebeat 需要部署在每台应用服务器上,可以通过 Salt 来推送并安装配置 。
下载$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-darwin-x86_64.tar.gz
解压tar -zxvf filebeat-6.2.4-darwin-x86_64.tar.gzmv filebeat-6.2.4-darwin-x86_64 filebeatcd filebeat
修改配置修改 Filebeat 配置,支持收集本地目录日志,并输出日志到 Kafka 集群中
$ vim fileat.ymlfilebeat.prospectors:- input_type: logpaths:-/opt/logs/server/nginx.logjson.keys_under_root: truejson.add_error_key: truejson.message_key: logoutput.kafka:hosts: ["192.168.0.1:9092,192.168.0.2:9092,192.168.0.3:9092"]topic: 'nginx'
Filebeat 6.0 之后一些配置参数变动比较大,比如 document_type 就不支持,需要用 fields 来代替等等 。
启动$ ./filebeat -e -c filebeat.yml
Kafka生产环境中 Kafka 集群中节点数量建议为(2N + 1 )个,这边就以 3 个节点举例
下载直接到官网下载 Kafka
$ wget http://mirror.bit.edu.cn/Apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
解压tar -zxvf kafka_2.11-1.0.0.tgzmv kafka_2.11-1.0.0 kafkacd kafka
修改 Zookeeper 配置修改 Zookeeper 配置,搭建 Zookeeper 集群,数量 ( 2N + 1 ) 个
ZK 集群建议采用 Kafka 自带,减少网络相关的因素干扰
$ vim zookeeper.propertiestickTime=2000dataDir=/opt/zookeeperclientPort=2181maxClientCnxns=50initLimit=10syncLimit=5server.1=192.168.0.1:2888:3888server.2=192.168.0.2:2888:3888server.3=192.168.0.3:2888:3888
Zookeeper data 目录下面添加 myid 文件,内容为代表 Zooekeeper 节点 id (1,2,3),并保证不重复
$ vim /opt/zookeeper/myid1
启动 Zookeeper 节点分别启动 3 台 Zookeeper 节点,保证集群的高可用
$ ./zookeeper-server-start.sh -daemon ./config/zookeeper.properties
修改 Kafka 配置kafka 集群这边搭建为 3 台,可以逐个修改 Kafka 配置,需要注意其中 broker.id 分别 (1,2,3)
$ vim ./config/server.propertiesbroker.id=1port=9092host.name=192.168.0.1num.replica.fetchers=1log.dirs=/opt/kafka_logsnum.partitions=3zookeeper.connect=192.168.0.1: 192.168.0.2: 192.168.0.3:2181zookeeper.connection.timeout.ms=6000zookeeper.sync.time.ms=2000num.io.threads=8num.network.threads=8queued.max.requests=16fetch.purgatory.purge.interval.requests=100producer.purgatory.purge.interval.requests=100delete.topic.enable=true
启动 Kafka 集群分别启动 3 台 Kafka 节点,保证集群的高可用
$ ./bin/kafka-server-start.sh -daemon ./config/server.properties
查看 topic 是否创建成功
$ bin/kafka-topics.sh --list --zookeeper localhost:2181nginx
监控 Kafka ManagerKafka-manager 是 Yahoo 公司开源的集群管理工具 。
可以在 Github 上下载安装:https://github.com/yahoo/kafka-manager
文章插图
如果遇到 Kafka 消费不及时的话,可以通过到具体 cluster 页面上,增加 partition 。Kafka 通过 partition 分区来提高并发消费速度
文章插图
LogstashLogstash 提供三大功能
- INPUT 进入
- FILTER 过滤功能
- OUTPUT 出去
文章插图
下载
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
解压重命名$ tar -zxvf logstash-6.2.4.tar.gz$ mv logstash-6.2.4 logstash
修改 Logstash 配置修改 Logstash 配置,使之提供 indexer 的功能,将数据插入到 Elasticsearch 集群中$ vim nginx.confinput {kafka {type => "kafka"bootstrap_servers => "192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181"topics => "nginx"group_id => "logstash"consumer_threads => 2}}output {elasticsearch {host => ["192.168.0.1","192.168.0.2","192.168.0.3"]port => "9300"index => "nginx-%{+YYYY.MM.dd}"}}
启动 Logstash$ ./bin/logstash -f nginx.conf
Elasticsearch下载$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
解压$ tar -zxvf elasticsearch-6.2.4.tar.gz$ mv elasticsearch-6.2.4.tar.gz elasticsearch
修改配置$ vim config/elasticsearch.ymlcluster.name: es node.name: es-node1network.host: 192.168.0.1discovery.zen.ping.unicast.hosts: ["192.168.0.1"]discovery.zen.minimum_master_nodes: 1
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 日志收集工具简单对比
- 亿级流量场景下,大型缓存架构设计实现,你知道吗?
- grep/awk/sed查指定时间段日志
- MySQL慢查询日志的配置与使用
- Mybatis打印SQL日志
- 后端开发必备的 MySQL 日志文件知识点
- 华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集
- eBay PB 级日志系统的存储方案实践
- 你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?
- liunx 中定时清理过期日志文件