几年前,当我参观一家小型开发公司时,他们使用 IRC 频道来监控其服务器上的事件,例如构建服务器、邮件服务器、http 服务器以及特定进程,例如 shell 脚本或 crontabs。
事件完成或遇到异常后,它会向 IRC 频道发送简短但描述性的消息和警报。
我想自己实现类似的东西,因为我知道有两台服务器,在它们之间进行 ssh 检查变得有点繁琐。
尝试过谷歌搜索但得到的是假阳性结果。
这是他们正在使用的工具还是他们最有可能使用过的一些脚本?
谢谢
答案1
你可以加入 syslog 的强大功能syslog2irc
您可以使用系统日志过滤器功能将您感兴趣的消息定向到它们应该在的不同渠道。
例如,您可以使用记录器从脚本发送日志消息,也可以记录器命令可以直接发送消息到syslog2irc(最后需要测试,但应该可以工作)。
因此,syslog-ng + syslog2irc + logger + ircserver 的组合看起来很符合您的要求。
答案2
您可以使用众多可用之一IRC 机器人。
例如,bot在每个服务器上运行,并加入irc服务器上的一个特殊的irc频道。
您的 cron 作业将信息写入 sqlite 数据库,然后机器人读取它并将消息发布到 irc 服务器。
答案3
我猜系统日志正是您想要的。所有日志都集中在一台服务器上,可以从那里抓取,通过“调试”、警报进行过滤……
您还可以向其发送自己的消息。
由于它非常常见,因此有很多方法可以评估来自 syslog 的信息。
答案4
你可以简单地将 IRC 与 netcat 结合使用:
echo 'USER bot bot2 botty botty2\nNICK bottty\nJOIN #CHANNEL\nPRIVMSG #channel :Some text!\nQUIT :All done\n' | netcat ircserver 6667
您可以编写简单的 bash 脚本并插入变量。