Docker 安装 Huginn 监控 VPS,邮件通知库存情况

1. 安装docker和docker-compose:

apt -y update
apt -y install curl
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

2. 新建docker-compose:

mkdir -p /opt/huginn && cd /opt/huginn && nano docker-compose.yml

3. 使用下面的配置(数据库密码/SMTP服务连接信息请自行修改)

version: "3.5"
services: 
    huginn-server:
        image: huginn/huginn
        container_name: huginn
        depends_on: 
            - huginn-mariadb
        environment: 
            - HUGINN_DATABASE_HOST=huginn-mariadb
            - HUGINN_DATABASE_PORT=3306
            - HUGINN_DATABASE_NAME=huginn
            - HUGINN_DATABASE_USERNAME=huginn
            - HUGINN_DATABASE_PASSWORD=password
            - SMTP_SERVER=mail.233.fi
            - SMTP_PORT=587
            - SMTP_USER_NAME=imlala@233.fi
            - SMTP_PASSWORD=password
            - EMAIL_FROM_ADDRESS=imlala@233.fi
        ports:
            - 3000:3000
        restart: unless-stopped
    huginn-mariadb:
        image: mariadb
        container_name: huginn-mariadb
        environment: 
            - MYSQL_DATABASE=huginn
            - MYSQL_USER=huginn
            - MYSQL_PASSWORD=password
            - MYSQL_ROOT_PASSWORD=password
        volumes: 
            - ./db:/var/lib/mysql
        restart: unless-stopped

配置好后up起来就安装好了:

docker-compose up -d

打开 IP:3000 端口可以访问到WEB界面,默认的管理员账号:admin密码:password
进去首先把管理员的邮箱和密码修改一下,邮箱是用来接收通知的:

Docker 安装 Huginn 监控 VPS,邮件通知库存情况

现在就可以添加Agent了:

先添加一个WebsiteAgent:

填写一些基本信息,Schedule这里设置为1分钟,既1分钟检查一次,Keep events设置为Forever,既永远让这个任务生效:

这里我拿搬瓦工的VPS购买页面演示,打开这个页面:https://bwh88.net/cart.php?a=add&pid=72

F12打开Chrome的开发者工具,然后按下图找到相应的div,右键Copy-full-XPath:

Docker 安装 Huginn 监控 VPS,邮件通知库存情况

例如我复制出来的值是:

/html/body/div/div[3]/div[1]/div/div/div/div[1]

回到Huginn的界面在Option下点击Toggle View,使用下面我给出的这段配置替换url和xpath就行:

{
  "expected_update_period_in_days": "2",
  "url": "https://bwh88.net/cart.php?a=add&pid=72",
  "type": "html",
  "mode": "on_change",
  "extract": {
    "有货吗?": {
      "xpath": "/html/body/div/div[3]/div[1]/div/div/div/div[1]",
      "value": "normalize-space(.)"
    }
  }
}

如图所示:

Docker 安装 Huginn 监控 VPS,邮件通知库存情况

接着点击DryRun测试一下看能不能获取到自己要的数据:

Docker 安装 Huginn 监控 VPS,邮件通知库存情况

现在可以看到它是没货的,一旦有货了它这个div里面的内容肯定会有变化。

然后接下来我们让它在有变化的时候就触发另外一个EmailDigestAgent,既发送邮件通知我们。

和之前一样添加EmailDigestAgent,然后按照下图配置即可,注意Sources这里要选上“搬瓦工”:

Docker 安装 Huginn 监控 VPS,邮件通知库存情况

这样就配置好了,如果你不确定你的配置是否可以正常工作,可以先用nginx搭建一个仿站,把页面里面的内容改一下看会不会触发这两个Agent。