我理解的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" #集群的名稱