当前位置:   article > 正文

Kafka基于nginx_kafka_module 收集日志

nginx_kafka_module

使用Kafka做日志收集。

需要收集的信息:

1、用户ID(user_id)

2、时间(act_time)

3、操作(action,可以是:点击:click,收藏:job_collect,投简历:cv_send,上传简历:cv_upload)

4、对方企业编码(job_code)

1、HTML可以理解为拉勾的职位浏览页面

2、Nginx用于收集用户的点击数据流,记录日志access.log

3、将Nginx收集的日志数据发送到Kafka主题:tp_individual

架构

HTML+Nginx+ngx_kafka_module+Kafka

提示:

学员需要自己下载nginx,配置nginx的ngx_kafka_module,自定义一个html页面,能做到点击连接就收集用户动作数据即可。

操作步骤如下:
1.安装git

yum install -y git
  • 1

2.切换到/opt/lagou/servers目录,然后将kafka的c客户端源码clone到本地

cd /opt/lagou/servers
git clone https://github.com/edenhill/librdkafka
  • 1
  • 2

如果无法访问github的话,就使用下面的地址

git clone https://gitee.com/tkxiong/librdkafka.git
  • 1

3.进入到librdkafka,然后进行编译

cd librdkafka
yum install -y gcc gcc-c++ pcre-devel zlib-devel
./configure
make && make install
  • 1
  • 2
  • 3
  • 4

4.安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码

cd /usr/local/src
git clone https://github.com/brg-liuwei/ngx_kafka_module
  • 1
  • 2

如果无法访问github的话,就使用下面的地址:

git clone https://gitee.com/chengfangang/ngx_kafka_module.git
  • 1

5.进入到nginx的源码包目录下 (编译nginx,然后将将插件同时编译)

cd /opt/lagou/servers/nginx-1.17.8
./configure --add-module=/usr/local/src/ngx_kafka_module/
make
make install
  • 1
  • 2
  • 3
  • 4

6.修改nginx的配置文件

vi /opt/lagou/servers/nginx-1.17.8/conf/nginx.conf
  • 1
http {

    # some other configs

    kafka;
    kafka_broker_list centos7-1:9092; # host:port ...

    server {
		location = /kafka/log {
                add_header 'Access-Control-Allow-Origin' $http_origin;
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
   		 kafka_topic topic_user_action;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

7、加载so库

#开机加载/usr/local/lib下面的库
echo "/usr/local/lib" >> /etc/ld.so.conf
 
#手动加载
ldconfig
  • 1
  • 2
  • 3
  • 4
  • 5

8、启动nginx(前提:先启动zookeeper和kafka)

cd /usr/local/nginx/sbin
./nginx -c /opt/lagou/servers/nginx-1.17.8/conf/nginx.conf
  • 1
  • 2

9、测试

#启动kafka消费者
kafka-console-consumer.sh --bootstrap-server centos7-1:9092 --topic topic_user_action  --from-beginning

curl http://centos7-1:80/kafka/log -d "message send to kafka topic"
  • 1
  • 2
  • 3
  • 4

消费者接受到消息
消费者接受到消息
10、html网页

<!doctype html>
<html>
<head>
    <meta charSet="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0"/>
    <title>kafka测试</title>
</head>
<body>
<button onclick="action('click')">点击</button>
<button onclick="action('jobCollect')">收藏</button>
<button onclick="action('cvSend')">投简历</button>
<button onclick="action('cvUpload')">上传简历</button>

<script type="text/javascript" src='https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js'></script>
<script>
    function action(_action){
        var info = {};
        info.userId = '123456';
        info.actTime = new Date();
        info.action = _action;
        info.jobCode = "lagou";
        $.ajax({
            type: "post",
            url: "http://centos7-1:80/kafka/log",
            data: JSON.stringify(info),
            success: function(res){

            }
        });
    }
</script>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

网页效果预览
在这里插入图片描述
11、测试结果:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/192836?site
推荐阅读
相关标签
  

闽ICP备14008679号