忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 452 | 回复: 1

[系统管理] 请教如何使用bash与rsyslog imuxsock通信【已解决】 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-08-07 06:20:00
发表于 2017-10-27 17:33 |显示全部楼层
本帖最后由 MrQing 于 2017-10-28 10:06 编辑

描述:
1、计划定时执行shell脚本、产生json数据,交由rsyslog提交给后端
2、如果shell脚本运行结果保存到文件(file),那么rsyslog配置简单。
3、考虑到IO和性能(能容忍一定程度日志丢失),打算将 shell脚本产生结果输出到 socket文件,由rsyslog加载imuxsock模块处理

求教如何与 socket文件进行通信

rsyslog配置文件
module(load="imuxsock" SysSock.Use="off")
input(type="imuxsock" Socket="/tmp/rsyslog.sock" CreatePath="on")


论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-08-07 06:20:00
发表于 2017-10-28 10:02 |显示全部楼层
本帖最后由 MrQing 于 2017-10-28 10:31 编辑

已解决,这里简单记录下(如有不对,欢迎指出)

1、unix domain socket类型有datagram(udp)、stream(tcp),通过 第三列可以看出来
  1. # netstat -nux
  2. Active UNIX domain sockets (w/o servers)
  3. Proto RefCnt Flags       Type       State         I-Node Path
  4. unix  3      [ ]         DGRAM                    14961  /var/ossec/queue/alerts/execq
  5. unix  6      [ ]         DGRAM                    2154526970 /dev/log
复制代码
显然 /dev/log 是datagram UDP数据报类型

2、rsyslog imuxsock模块 是基于 DGRAM(udp) 的

3、logger -u /tmp/sock.path 提供了简单接口,将日志信息提交到 指定socket文件,而该命令默认基于stream(tcp)
  1. # strace logger  -u /dev/log  "123"
  2. 提示connect: Protocol wrong type for socket.

  3. # strace logger  -u /dev/log  "123"
  4. socket(PF_LOCAL, SOCK_STREAM, 0)        = 3
  5. connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = -1 EPROTOTYPE (Protocol wrong type for socket)
复制代码
注意此处socket(PF_LOCAL, SOCK_STREAM, 0)

4、logger使用-d 参数,可以基于datagram(udp)方式,因此
  1. # logger -d -u /dev/log  "123"
  2. 执行成功
  3. # strace  logger -d -u /dev/log  "123"
  4. socket(PF_LOCAL, SOCK_DGRAM, 0)         = 3
  5. connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
复制代码
注意此处socket(PF_LOCAL, SOCK_DGRAM, 0)

因此,当使用python、java也好,和套接字通信时,应该指明sock_dgram(udp)才能被 rsyslog imuxsock模块正确加载




您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP