多節(jié)點(diǎn)Cronsun的安裝與部署

我理解的Cronsun 簡(jiǎn)單來(lái)說(shuō)是基于go語(yǔ)言編寫(xiě)的一個(gè)帶ui界面的crontab管理工具,讓我們可以在web頁(yè)面上統(tǒng)一管理多個(gè)服務(wù)器上的定時(shí)任務(wù),也可以看到每次任務(wù)執(zhí)行結(jié)果。

網(wǎng)上關(guān)于Cronsun的安裝部署教程不是很多,這里記錄一下的我的安裝部署過(guò)程。

下面是我在ubuntu環(huán)境下安裝部署多節(jié)點(diǎn)cronsun的過(guò)程

準(zhǔn)備的三臺(tái)機(jī)器ip分別是172.16.202.128,172.16.202.136,172.16.202.137,分別在三臺(tái)機(jī)器上配置etcd集群,mongodb,cronsun

etcd

創(chuàng)建etcd工作文件夾
mkdir -p /var/lib/etcd
mkdir -p /etc/etcd
下載etcd3: wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
tar -xzvf 解壓到 /opt 目錄下
目錄下有兩個(gè)可執(zhí)行文件etcd 和 etcdctl
cp etcd /usr/bin/
cp etcdctl /usr/bin/
配置服務(wù)
# vim /etc/systemd/system/etcd.service (添加以下內(nèi)容)

Description=Etcd Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd

[Install]
WantedBy=multi-user.target

etcd集群配置
vim /etc/etcd/etcd.conf
172.16.202.128上的etcd配置

#[member]
ETCD_NAME=etcd1
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://172.16.202.128:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://172.16.202.128:2379,http://127.0.0.1:2379"
#[cluster]
ETCD_LISTEN_PEER_URLS="http://172.16.202.128:2380"   #集群內(nèi)部通信使用的URL
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.16.202.128:2380"
#廣播給集群內(nèi)其他成員訪問(wèn)的URL
ETCD_INITIAL_CLUSTER="etcd1=http://172.16.202.128:2380,etcd2=http://172.16.202.136:2380,etcd3=http://172.16.202.137:2380"
#初始集群成員列表
ETCD_INITIAL_CLUSTER_STATE="new"
#初始集群狀態(tài),new為新建集群
ETCD_INITIAL_CLUSTER_TOKEN="cronsun-etcd-cluster"  #集群的名稱 

172.16.202.136上的etcd配置

#[member]
ETCD_NAME=etcd2
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://172.16.202.136:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://172.16.202.136:2379,http://127.0.0.1:2379"
#[cluster]
ETCD_LISTEN_PEER_URLS="http://172.16.202.136:2380"   #集群內(nèi)部通信使用的URL
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.16.202.136:2380"
#廣播給集群內(nèi)其他成員訪問(wèn)的URL
ETCD_INITIAL_CLUSTER="etcd1=http://172.16.202.128:2380,etcd2=http://172.16.202.136:2380,etcd3=http://172.16.202.137:2380"
#初始集群成員列表
ETCD_INITIAL_CLUSTER_STATE="new"
#初始集群狀態(tài),new為新建集群
ETCD_INITIAL_CLUSTER_TOKEN="cronsun-etcd-cluster"  #集群的名稱 

172.16.202.137上的etcd配置

#[member]
ETCD_NAME=etcd3
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://172.16.202.137:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://172.16.202.137:2379,http://127.0.0.1:2379"
#[cluster]
ETCD_LISTEN_PEER_URLS="http://172.16.202.137:2380"   #集群內(nèi)部通信使用的URL
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.16.202.137:2380"
#廣播給集群內(nèi)其他成員訪問(wèn)的URL
ETCD_INITIAL_CLUSTER="etcd1=http://172.16.202.128:2380,etcd2=http://172.16.202.136:2380,etcd3=http://172.16.202.137:2380"
#初始集群成員列表
ETCD_INITIAL_CLUSTER_STATE="new"
#初始集群狀態(tài),new為新建集群
ETCD_INITIAL_CLUSTER_TOKEN="cronsun-etcd-cluster"  #集群的名稱 

etcd相關(guān)命令
關(guān)閉:systemctl enable etcd.service
啟動(dòng):systemctl start etcd.service
查看集群節(jié)點(diǎn): etcdctl member list
測(cè)試服務(wù)狀態(tài):etcdctl cluster-health
查看etcd運(yùn)行日志:journalctl -xe -u etcd #遇到etcd啟動(dòng)有問(wèn)題的時(shí)候通過(guò)查看日志可以快速定位到問(wèn)題

mongodb

下載mongodb: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.2.tgz

tar -xzvf 解壓到 /opt 目錄下
cd /opt/mongodb-linux-x86_64-4.0.2
mkdir -p /data/db
mkdir -p /data/logs
vim /etc/mongodb/mongodb.conf

dbpath=/data/db
logpath=/data/logs/mongo.log
bind_ip=0.0.0.0
logappend=true
fork=true
port=27017

啟動(dòng)mongodb: bin/mongod --config /etc/mongo/mongodb.conf

cronsun:

wget https://github.com/shunfei/cronsun/releases/download/v0.3.5/cronsun-v0.3.5-linux-amd64.zip
tar -xzvf cronsun-v0.3.5-linux-amd64 -C /opt
cd /opt/cronsun-v0.3.5
vim /opt/cronsun-v0.3.5/conf/db.json

    "Hosts": [
    "172.16.202.137:27017"  # 這里改為mongodb監(jiān)聽(tīng)的ip和端口
  ],

vim /opt//cronsun-v0.3.5/conf/etcd.json

     "Endpoints":[
        "http://172.16.202.137:2379" # 這里改為etcd監(jiān)聽(tīng)的ip和端口
    ],

后臺(tái)啟動(dòng)cronsun
nohup ./cronweb -conf conf/base.json > /dev/null &
nohup ./cronnode -conf conf/base.json > /dev/null &

到此多節(jié)點(diǎn)任務(wù)系統(tǒng)就可以了 訪問(wèn) http://ip:7079,任意節(jié)點(diǎn)均可訪問(wèn),且每個(gè)節(jié)點(diǎn)上的數(shù)據(jù)都是一樣的

vim /opt/cronsun-v0.3.5/conf/mail.conf

{
    "Enable": true, //打開(kāi)報(bào)警
    "To": ["*****@****.com","****@qq.com"], //發(fā)送對(duì)象
    "Keepalive": 60, 
    "Host": "smtp.exmail.qq.com",
    "Port": 465,
    "Username": "****@****.com", //發(fā)送郵件的賬號(hào)
    "Password": "*****", //發(fā)送郵件的密碼
    "SSL": true,
    "LocalName": ""
}

重啟cronweb 刷新后在任務(wù)管理界面打開(kāi)報(bào)警

etcd配置詳解

#[member]
ETCD_NAME=etcd1 #節(jié)點(diǎn)名稱,默認(rèn)為default,本例中三臺(tái)機(jī)器分別為:etcd1,etcd2,etcd3
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #服務(wù)運(yùn)行數(shù)據(jù)保存的路徑,本例中指定獨(dú)立分區(qū)
ETCD_LISTEN_CLIENT_URLS="http://192.168.10.90:2379,http://127.0.0.1:2379"  #監(jiān)聽(tīng)的客戶端服務(wù)地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.10.90:2379,http://127.0.0.1:2379"  
#對(duì)外公告的該節(jié)點(diǎn)客戶端監(jiān)聽(tīng)地址,這個(gè)值會(huì)告訴集群中其他節(jié)點(diǎn)。

#[cluster]
ETCD_LISTEN_PEER_URLS="http://192.168.10.90:2380"#監(jiān)聽(tīng)的同伴通信的地址,比如http://ip:2380,如果
有多個(gè),使用逗號(hào)分隔。需要所有節(jié)點(diǎn)都能夠訪問(wèn),所以不要使用 localhost!
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.90:2380" #對(duì)外公告的該節(jié)點(diǎn)同伴監(jiān)聽(tīng)地址,這
個(gè)值會(huì)告訴集群中其他節(jié)點(diǎn)
#廣播給集群內(nèi)其他成員訪問(wèn)的URL
ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.90:2380,etcd2=http://192.168.10.91:2380,
etcd3=http://192.168.10.92:2380" 
#集群中所有節(jié)點(diǎn)的信息
ETCD_INITIAL_CLUSTER_STATE="new" #新建集群的時(shí)候,這個(gè)值為 new;假如加入已經(jīng)存在的集群,
這個(gè)值為 existing。
#初始集群狀態(tài),new為新建集群
ETCD_INITIAL_CLUSTER_TOKEN="vagrant-etcd-cluster"  #集群的名稱
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容