V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dLvsYgJ8fiP8TGYU
V2EX  ›  程序员

有什么方法能够实现: Linux 监控日志文件,若出现关键词就发消息提醒?

  •  
  •   dLvsYgJ8fiP8TGYU · 203 天前 · 3160 次点击
    这是一个创建于 203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    具体需求:

    在后台持续读取指定文件,如果新的 log 条目包含指定的关键词,就发出提醒?

    提醒方法:(按偏好程度排序)

    1.访问特定 URL (例如 Bark )

    2.Telegram Bot

    3.发邮件

    最好是开源项目。有大佬知道可实现上述功能的工具吗?

    26 条回复    2022-09-09 17:04:52 +08:00
    ClownFish
        1
    ClownFish  
       203 天前
    我写了个功能,不过没开源
    serialt
        2
    serialt  
       203 天前
    loki?
    aheadlead
        3
    aheadlead  
       203 天前
    也许可以看看 fail2ban ?不是很确定
    0o0O0o0O0o
        4
    0o0O0o0O0o  
       203 天前 via iPhone
    fail2ban 有 notify ,但不知道是否满足你的需求
    DingJZ
        5
    DingJZ  
       203 天前
    我自己的场景是直接扔到腾讯云上,这一套都可以配置,懒得折腾。一个月用不了几块钱
    Jirajine
        6
    Jirajine  
       203 天前   ❤️ 3
    这还需要什么工具,直接写个脚本 tail | grep | while readline ; send 不就完了。
    nilai
        7
    nilai  
       203 天前
    zabbix 可以
    julyclyde
        8
    julyclyde  
       203 天前
    @Jirajine 你这组程序如果故障再启动,就不知道从哪儿开始读了,有可能中间少读一段
    bjzhush
        9
    bjzhush  
       203 天前
    我做过类似需求,监控 NGINXlog 的。
    用 filebeat 监控 log ,然后推送到 redis 队列,PHP 读取 redis 队列实现业务逻辑。
    报警和推送用钉钉机器人就可以,免费,实时,手机安装个钉钉允许 push 消息即可。
    如果需要电话报警,就接个阿里云或第三方平台的接口,非常简单,一个请求而已。
    全程开发 2-3 小时足够
    blindie
        10
    blindie  
       203 天前
    @julyclyde 这点再随便搞一下容错不就行了
    byaiu
        11
    byaiu  
       203 天前
    rsyslog 就能做,linux 自带的
    cnoder
        12
    cnoder  
       203 天前   ❤️ 1
    https://github.com/kasun/python-tail
    这个挺简单的,聚合,时间间隔,关键词, 发企业微信
    Jirajine
        13
    Jirajine  
       203 天前
    @julyclyde 够用不就行了,没必要把事情做那么复杂。严肃场景上 Prometheus grafana 那一整套监控套件呗。
    wellsc
        14
    wellsc  
       203 天前
    filebeat
    tcsky
        15
    tcsky  
       203 天前
    fail2ban 能满足
    julyclyde
        16
    julyclyde  
       203 天前
    @Jirajine 连基本的正确性都无法保证,何谈够用?
    nmap
        17
    nmap  
       203 天前
    一个简单的 shell 脚本就可以了吧
    msg7086
        18
    msg7086  
       203 天前
    扫日志执行操作,这个就是 fail2ban 的专长了。
    qooweds
        19
    qooweds  
       203 天前
    日志文件不大的话,
    写个 shell 脚本,
    过滤当前分钟的日志(容错的话可以过滤最近几分钟的)
    过滤你需要的关键词
    提醒就用 curl 或者 sendmail 触发就好了
    放到 crontab 里面每分钟执行一下
    Zy143L
        20
    Zy143L  
       203 天前 via Android
    最简单就暴力轮日志 grep 过滤
    出现就给你发通知
    用 serverchat pushplus 这些
    kidlj
        21
    kidlj  
       203 天前 via iPhone
    Zabbix
    neochen13
        22
    neochen13  
       203 天前
    filebeat => logstash => httpserver
    mihuan12
        24
    mihuan12  
       202 天前
    rsyslog ,过滤关键字
    qW7bo2FbzbC0
        25
    qW7bo2FbzbC0  
       202 天前   ❤️ 2
    grep 或者 tail 配合行号 基本就是 https://github.com/kasun/python-tail
    anakinsky
        26
    anakinsky  
       202 天前
    loki + grafana
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1657 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 17:04 · PVG 01:04 · LAX 10:04 · JFK 13:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.