真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言創(chuàng)建守護(hù)進(jìn)程 go語言 包管理

Supervisor與Logrotate

在golang的gin項(xiàng)目中使用supervisor守護(hù)進(jìn)程,用子進(jìn)程配置將標(biāo)準(zhǔn)輸出日志轉(zhuǎn)移到指定目錄下,然后使用阿里云的日志服務(wù)將標(biāo)準(zhǔn)輸出日志轉(zhuǎn)移到線上做一些分析和預(yù)警。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、陜州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為陜州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

? 項(xiàng)目上線之后一切正常,可是周日夜里三點(diǎn)左右阿里云的日志服務(wù)采集不到日志,一頓pv為0的告警過來,趕緊打開電腦,線上服務(wù)正常,松一口氣,supervisor狀態(tài)也正常,觀察了一會(huì)業(yè)務(wù)數(shù)據(jù)正常就安然入睡了,心想可能是因?yàn)榕渲庙?xiàng)有缺陷吧,回頭好好整整supervisor的配置再觀察一波。

? ?早上起來打開服務(wù)器,cd /var/log/supervisor/,發(fā)現(xiàn)存在兩個(gè)日志文件,分別是xxxx.log-20201223和xxxx.log,xxxx.log的大小為0,xxxx.log-20201223還在繼續(xù)寫入請(qǐng)求日志,權(quán)限問題?chmod 777之后發(fā)現(xiàn)新的文件還是不寫入日志,重啟 supervisor之后發(fā)現(xiàn)日志能正常寫入了。。。一開始懷疑是supervisor日志切割備份有問題,將配置stdout日志文件大小的stdout_logfile_maxbytes配置項(xiàng),默認(rèn) 50MB改成0,代表無限大,stdout日志文件備份數(shù)的stdout_logfile_backups配置項(xiàng),默認(rèn)10改為0,代表不備份,重啟supervisor,心想不切割總不會(huì)再出現(xiàn)切割之后不往新文件寫內(nèi)容的問題了,真乃明智之選。:)

? ? 一周過去,0pv的告警如期而至,雖然不影響線上業(yè)務(wù),如鯁在喉讓我久久不能釋懷。全網(wǎng)翻,百度谷歌,中文英文,去github上翻issue等等,看到一個(gè)歷史issue1090,Better support for logrotate,感覺和日志轉(zhuǎn)儲(chǔ)相關(guān),于是查了下logrotate相關(guān)資料,logrotate程序是一個(gè)日志文件管理工具。用于分割日志文件,刪除舊的日志文件,并創(chuàng)建新的日志文件,起到“轉(zhuǎn)儲(chǔ)”作用。centos系統(tǒng)默認(rèn)安裝,于是找到對(duì)應(yīng)的配置文件,果不其然里面就有supervisor,默認(rèn)配置如下:

/var/log/supervisor/*.log {

? missingok

? weekly

? notifempty

? nocompress

},看到weekly感覺離這個(gè)問題的答案不遠(yuǎn)了,于是去查找linux的logrotate往舊文件寫入的問題,在一篇logrotate writing to old app.log.1 instead of app.log的文章中找到需要配置參數(shù)copytruncate,是用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)啵皇窍瓤截愒偾蹇盏姆绞?,拷貝和清空之間有一個(gè)時(shí)間差,可能會(huì)丟失部分日志數(shù)據(jù)。增加完配置之后,為了快速驗(yàn)證結(jié)果,修改weekly為daily,第二天日志正常切割了,新的文件也正常寫入了標(biāo)準(zhǔn)日志。至此問題解決。

? ? linux的logrotate對(duì)于運(yùn)維來說可能是常識(shí),作為開發(fā)剛接觸運(yùn)維,只能慢慢積累了,工作之余看看相關(guān)的運(yùn)維知識(shí),盡量少采坑。

如何使用Go語言是操作Docker

Docker 提供了一個(gè)與 Docker 守護(hù)進(jìn)程交互的 API (稱為Docker Engine API),我們可以使用官方提供的 Go 語言的 SDK 進(jìn)行構(gòu)建和擴(kuò)展 Docker 應(yīng)用程序和解決方案。

轉(zhuǎn)自:

整理:地鼠文檔

通過下面的命令就可以安裝 SDK 了:

該部分會(huì)介紹如何使用 Golang + Docker API 進(jìn)行管理本地的 Docker。

第一個(gè)例子將展示如何運(yùn)行容器,相當(dāng)于 docker run docker.io/library/alpine echo "hello world" :

還可以在后臺(tái)運(yùn)行容器,相當(dāng)于 docker run -d bfirsh/reticulate-splines :

列出正在運(yùn)行的容器,就像使用 docker ps 一樣:

如果是 docker ps -a ,我們可以通過修改 types.ContainerListOptions 中的 All 屬性達(dá)到這個(gè)目的:

通過上面的例子,我們可以獲取容器的列表,所以在這個(gè)案例中,我們可以去停止所有正在運(yùn)行的容器。

通過指定容器的 ID,我們可以獲取對(duì)應(yīng) ID 的容器的日志:

獲取本地所有的鏡像,相當(dāng)于 docker image ls 或 docker images :

拉取指定鏡像,相當(dāng)于 docker pull alpine :

除了公開的鏡像,我們平時(shí)還會(huì)用到一些私有鏡像,可以是 DockerHub 上私有鏡像,也可以是自托管的鏡像倉庫,比如 harbor 。這個(gè)時(shí)候,我們需要提供對(duì)應(yīng)的憑證才可以拉取鏡像。

值得注意的是:在使用 Docker API 的 Go SDK 時(shí),憑證是以明文的方式進(jìn)行傳輸?shù)?,所以如果是自建的鏡像倉庫,請(qǐng)務(wù)必使用 HTTPS !

我們可以將一個(gè)已有的容器通過 commit 保存成一個(gè)鏡像:

當(dāng)然,除了可以管理本地的 Docker , 我們同樣也可以通過使用 Golang + Docker API 管理遠(yuǎn)程的 Docker 。

默認(rèn) Docker 是通過非網(wǎng)絡(luò)的 Unix 套接字運(yùn)行的,只能夠進(jìn)行本地通信( /var/run/docker.sock ),是不能夠直接遠(yuǎn)程連接 Docker 的。

我們需要編輯配置文件 /etc/docker/daemon.json ,并修改以下內(nèi)容(把 192.168.59.3 改成你自己的 IP 地址),然后重啟 Docker :

創(chuàng)建 client 的時(shí)候需要指定遠(yuǎn)程 Docker 的地址,這樣就可以像管理本地 Docker 一樣管理遠(yuǎn)程的 Docker 了:

現(xiàn)在已經(jīng)有很多可以管理 Docker 的產(chǎn)品,它們便是這樣進(jìn)行實(shí)現(xiàn)的,比如: portainer 。

如何運(yùn)行一個(gè)golang程序?yàn)槭刈o(hù)進(jìn)程

您好,很高興為您解答。

安裝daemonize

安裝git環(huán)境

yum?install?git?-y

獲取daemonize

git?clone?git://github.com/bmc/daemonize.git

安裝daemonize

cd?daemonize

./configure

make??make?install

查看是否安裝

daemonize?-v

通過daemonize執(zhí)行g(shù)olang守護(hù)進(jìn)程

需要打包golang程序?yàn)榭蓤?zhí)行文件(go build),并通過daemonize來執(zhí)行它來實(shí)現(xiàn)守護(hù)進(jìn)程,如:

daemonize?-p?/var/run/myapp.pid?-l?/var/lock/subsys/myapp?-u?nobody?/path/to/myapp

如若滿意,請(qǐng)點(diǎn)擊右側(cè)【采納答案】,如若還有問題,請(qǐng)點(diǎn)擊【追問】

希望我的回答對(duì)您有所幫助,望采納!

~?O(∩_∩)O~


當(dāng)前題目:go語言創(chuàng)建守護(hù)進(jìn)程 go語言 包管理
文章來源:http://weahome.cn/article/doieijd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部