rsyslog移植(亲测成功)

博客介绍了将rsyslog移植到arm板的过程。移植前需先编译多个依赖库,如libestr、libfastjson等,并给出各库的下载、编译命令。编译json时可能遇错误,有解决办法。最后将编译出的库和头文件拷贝到对应目录,编译rsyslog时加特定参数。

1、概述:

移植rsyslog需要很多依赖库,只编译rsyslog之前先得把这些依赖库编译OK。

为了交叉编译的方便,可以把所以依赖库编译出来的库文件和头文件拷贝到交叉编译工具对应的目录下。

 

2、依赖库:

依赖库列表:

libestr

libfastjson

json

liblogging-stdlog    

libgcrypt

 

3、编译

3.1 libestr

下载:wget http://libestr.adiscon.com/files/download/libestr-0.1.9.tar.gz

要求版本大于等于0.1.9

tar xvf libestr-0.1.9.tar.gz && cd libestr-0.1.9

./configure --prefix=安装目录 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

make && make install

 

3.2 libfastjson

git clone https://github.com/rsyslog/libfastjson.git

cd libfastjson

sh autogen.sh

./configure --prefix=安装目录 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

make && make install

 

3.3 json

wget https://github.com/downloads/json-c/json-c/json-c-0.10.tar.gz

tar xvf json-c-0.10.tar.gz

cd json-c-0.10

./configure --prefix=安装目录 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

make && make install

问题:在编译json时,可能会出现 undefined reference to rpl_malloc的错误,此时把config.h.in文件中#undef malloc定义注释掉便可。

 

3.4 liblogging-stdlog    

git clone https://github.com/rsyslog/liblogging.git

cd liblogging

autoreconf -fvi

./configure --prefix=编译路径 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

make && make install

 

3.5 libgcrypt

wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.2.tar.gz // 1.7.6版本没有编译成功

tar -xvf libgcrypt-1.5.2.tar.gz

cd libgcrypt-1.5.2

./configure --disable-nls --disable-asm --prefix=编译路径 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

make && make install

 

3.6 拷贝

       把以上编译出来的库和头文件,以及.pc文件拷贝到交叉编译工具对应目录中。

注意拷贝json的头文件时,编译处理的头文件是包括在json的目录下的,要把json目录下的文件头的工具include中,而不是考目录过去。

 

3.7 rsyslog

编译rsyslog加参数 --disable-liblogging_stdlog

因为尝试安装liblogging-stdlog后,编译时仍报错“No package 'liblogging-stdlog' found”,因此在编译时选择加参数--disable-liblogging_stdlog

tar -xvf rsyslog-8.1.6.tar.gz

cd rsyslog-8.1.6

./configure --host=arm-linux-gnueabihf --prefix=/home/sampson/third_libs/rsyslog-8.1.6/build --disable-liblogging_stdlog CC=arm-linux-gnueabihf-gcc LIBESTR_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBESTR_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBLOGGING_STDLOG_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBLOGGING_STDLOG_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib JSON_C_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include JSON_C_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBUUID_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBUUID_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBGCRYPT_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib 

make && make install

 

问题:

        配置过程中出现过寻找本地目录下的libestr的库,提示格式不对,不知道为什么不找交叉编译中的对应库,为了速度我使用了粗暴的方法,直接把本地的库移动其他地方,再配置则不再提示这个错误。

 

### 验证 rsyslog 是否成功连接到 Kafka 的方法 为了验证 rsyslog 是否成功连接到 Kafka,可以采用以下几种方法: #### 1. 检查 rsyslog 日志文件 rsyslog 的日志文件通常位于 `/var/log/rsyslog/` 或 `/var/log/syslog` 中。通过检查这些日志文件,可以找到关于 Kafka 连接状态的详细信息。如果连接成功,日志中会显示类似以下的消息: ```plaintext rsyslogd: omkafka: Successfully connected to kafka.example.com:9092 [^2] ``` 如果连接失败,则可能会出现错误消息,例如超时或认证问题。 #### 2. 使用 Kafka 消费者工具查看日志 可以通过 Kafka 提供的命令行工具 `kafka-console-consumer` 来验证日志是否正确发送到指定主题。执行以下命令以实时查看 Kafka 主题中的日志数据: ```bash kafka-console-consumer --bootstrap-server kafka.example.com:9092 --topic specified_logs_topic --from-beginning ``` 如果日志成功发送到 Kafka,则可以在终端中看到对应的日志内容[^2]。 #### 3. 配置 rsyslog 的调试模式 rsyslog 支持启用调试模式以提供更详细的日志输出。在配置文件中添加以下内容以启用调试模式: ```bash $DebugFile /var/log/rsyslog_debug.log $DebugLevel 2 ``` 重启 rsyslog 服务后,调试信息将被记录到 `/var/log/rsyslog_debug.log` 文件中。检查该文件可以确认 Kafka 连接的状态和任何潜在问题[^2]。 #### 4. 监控 Kafka 主题的元数据 使用 Kafka 管理工具(如 `kafka-topics`)检查主题的元数据和分区信息。如果 rsyslog 成功连接并写入日志,则可以看到主题的分区偏移量在不断增加。 ```bash kafka-topics --bootstrap-server kafka.example.com:9092 --describe --topic specified_logs_topic ``` 此命令将显示主题的详细信息,包括分区、副本和当前偏移量。 #### 5. 试网络连通性 确保 rsyslog 能够访问 Kafka 经纪人。可以使用 `telnet` 或 `nc` 工具试与 Kafka 经纪人的网络连接: ```bash telnet kafka.example.com 9092 ``` 如果连接成功,则说明网络层面没有问题。 ### 注意事项 - 如果使用的是安全 Kafka 集群,请确保 rsyslog 配置了正确的认证和加密设置[^2]。 - 检查 rsyslog 配置文件中的 Kafka 动作部分是否有语法错误或不匹配的参数。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值