刚开始接触理财, 第一次朋友介绍的是[安信证券]这款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
当发现当前值与上一个值有差异时(有差异代表已更新), 触发。
页面动态展示
当发现更新,钉钉提醒
当发现更新,邮件提醒