【zabbix监控+python爬虫+shell脚本】 理财对接天天基金网实现相关基金波动邮件/钉钉提醒

2024-12-19 23:53:16 体育 facai369

【zabbix监控+python爬虫+shell脚本】 理财对接天天基金网实现相关基金波动邮件/钉钉提醒

刚开始接触理财, 第一次朋友介绍的是[安信证券]这款app, 看了几天, 以每笔500的价格入手了两个基金玩玩接触一下行情, 后来发现, 每次都不知道它什么时候更新这个变动净值参数,每次都要自己去搜索, 或者又要登录一遍去看盈亏, 够懒吧, 嘿嘿, 后来突发奇想, 跟朋友了解一下是不是有什么公式能计算得到相关的净值参数的, 于是翻了一遍, 发现对[天天基金网]这个web来比较轻松愉快一些, 那么既然有了想法, 就开干吧。 当基金发现波动的时候, 来信息提示, -代表下跌,正数代表上涨 容器: zabbix-server : Docker zabbix-agent : CentOS Linux release 7.7.1908 (Core) 版本: nginx1.17 + mysql5.7.22 + php7 + zabbix4.2.5 python2.7.5 【zabbix】 zabbix这块, 使用到的无非就是一个开源的项目而已, 不难, 自行搭建, 至于有伙伴说不知道怎么搭, 那么建议你去找度娘聊一下, 或者搜一下我之前写的zabbix搭建的文章, 但是我的文章水平都很有限,没办法,人就这样,还想上天不成[/哭泣/]。 【python】 python这块, 用爬虫,使用的是原生的python2.7, 由于我的是centos7.7, 有点抗拒8, 至于有人问为什么呢,俺不知道,也不想说,哈。 【shell】 shell这个就很简单了, 无非就是推送一下python爬去下来的数据, 扔给zabbix, 对了, zabbix我用的是主动模式, 至于为什么用主动模式, 因为我的zabbix是扔在docker里面的, 所以我每次搭建一个监控的时候就直接导入我的zabbix镜像, 然后进去start一下相关进程就好了, 干净。 提醒:进行下面操作之前,zabbix得预先搭建好, 我这边就不再演示了。 fund.code fund.dict fund_dict2.sh fund_dict.sh与fund_dict2.sh基本相同, 不过就是后面筛选的参数不一样,自动获取今天的时间和昨天的时间(以今天的为标准), 当今天的基金净值为更新的时候拿到的参数是空的, 这个时间会进入判断, 如果拿到的参数为空,那就是说今天的相关基金净值还没有更新, 那么这个时候就取昨天的为准, 一旦发现更新, 就推送到监控上面去触发, 然后提醒, 告诉自己今天的基金是涨还是跌。 fund_dict.sh fund_log fund.py 爬虫, 实现将相关基金的净值参数根据相关日期拿下来 爬下来的数据是怎么样的呢, 是这样的 fund.sh 过滤, 调用爬虫去获取, 我定义的是每5分钟获取一次, 扔进crontab里面自生自灭了。 1. 授权给zabbix 注: 因为到时候要扔进zabbix去进行自动化操作, 你不给它工钱, 又想让它干活, 它会跟你大吼一个 "Permission denied" 然后罢工你信不信。 2. zabbix-agentd要配置好 注: 这些值是要推送给监控上面的, 后面加的是你要监控的基金代码, so easy. 3. 定时炸弹 注: 定时运行爬虫, 爬取最新数据下来分析, 每5分钟爬一次。 运行之后回事什么样子的呢, 就像这个样子, 会在相关日志目录下生成相关的基金数据日志 注:上面已经说了, zabbix已经搭建好了吧, 那么现在就来配置告警吧。 注:这个是要在zabbix server中配置的。 告警方式双推送。 1. 钉钉 1.1钉钉告警shell 注:钉钉需要配置后台推送,扔个文件进去相关目录,记得授权和修改你的钉钉机器人地址, 有些python没有装requests模块的, pip install requests装一下就好。 1.2告警媒介类型 1.3动作 警示度 操作 消息传送指定 1.4 用户 报警媒介 2. 邮件 注:邮件不用配置后台哈,邮件这块我用的是zoho域名邮箱, zoho是什么?呃,水平有限不知道怎么解释。登登登....百度一下,你就知道。 基本上操作与钉钉无异。 触发器:{fund:funds_001071.diff()}=1 当发现当前值与上一个值有差异时(有差异代表已更新), 触发。 页面动态展示 当发现更新,钉钉提醒 当发现更新,邮件提醒