這邊有很多教學影片可以參考:https://launch.visualstudio.com/
在舊的專案如果使用 Visual Studio 2017開啟的話,會作一個轉檔的動作,原本 project.json就不會再出現了,會把相關設定放至 *.csproj上
在 3/7之前,我把 ASP.Net Core專案換成 Visual Studio 2017 ,還算正常,但在3/30再作一次之後,發現它把 .Net Core相關的 packages全部版本設定成 1.1.2了,在 compile時錯誤一堆,不知道怎麼解,等一個月之後再試試一次,看會不會比較好。
2017年3月31日 星期五
ELK Stack Docker image 實作 docker log失敗,但成功設定 Elasticsearch 與 MongoDB連結
ELK Stack官網說明:An Introduction to the ELK Stack (Now the Elastic Stack)
好用的工具,當然也有 docker image,我所使用的是這一個 https://github.com/deviantony/docker-elk,這一個也可以參考 https://hub.docker.com/r/blacktop/elastic-stack/
原本我是想要實作把我所有 docker log放到 ELK Stack,所以有建一個 VM用來使用 ELK Stack,不與原本的 Docker VM在一起。
參考 Docker Logging with the ELK Stack — Part One
文章有提到可以使用三種方式把 docker logs 轉到 ELK Stack的 Logstash上
1.使用 Filebeat
2.使用 docker logging driver
3.使用 Logspout
作者使用 docker logging driver作範列,並修改 Logstash 的設定檔,應該會成功,但我實作的結果並沒有如預期,也不知道原因,使用 docker logs @LogstashContainerName,看起來是有連結的記錄在,但是在 Elasticsearch上並沒有相關 index產生。這部份想再用 Logspout再試看看。
在實作的過程中想到之前就想把 MongoDB資料與 Elasticsearch作連結,讓 Elasticsearch可以作 index,這次剛好有 Elasticsearch,所以就來實作看看。
MongoDB與 Elasticsearch連結的部份就要使用 mongodb-connector (https://github.com/mongodb-labs/mongo-connector)
connector要看不同版本的 Elasticsearch而下載,我的 ELK Stash內的 Elasticsearch為 5.*,所以要下載 5的版本,所以在 ELK Stash VM上安裝 connector,指令如下
pip install 'mongo-connector[elastic5]'
如果你的 MongoDB不是 Replica Set的話,記得要轉成 Replica Set,就算是一台也可以,不管你的 MongoDB是不是在 Docker上。而最好建立一個 mongodb 帳號是有 backup權限的,再用這個帳號讓 Elasticsearch可以連結,我就有遇過一家資訊服務公司,他所賣的產品有使用到 MongoDB,但完全不設帳號、宓碼,難怪最近 MongoDB被加密要錢。
最後要建立一個 config.json檔 https://github.com/mongodb-labs/mongo-connector/wiki/Configuration%20Options
這邊多花一些時間設定 MongoDB的位置,帳號、密碼,還有那些 document, collection需要被索引
最後再執行 mongo-connector -c config.json
再看看 Elasticsearch是否有 index產生,再到 Kinaba設定就可以看到資料了
好用的工具,當然也有 docker image,我所使用的是這一個 https://github.com/deviantony/docker-elk,這一個也可以參考 https://hub.docker.com/r/blacktop/elastic-stack/
原本我是想要實作把我所有 docker log放到 ELK Stack,所以有建一個 VM用來使用 ELK Stack,不與原本的 Docker VM在一起。
參考 Docker Logging with the ELK Stack — Part One
文章有提到可以使用三種方式把 docker logs 轉到 ELK Stack的 Logstash上
1.使用 Filebeat
2.使用 docker logging driver
3.使用 Logspout
作者使用 docker logging driver作範列,並修改 Logstash 的設定檔,應該會成功,但我實作的結果並沒有如預期,也不知道原因,使用 docker logs @LogstashContainerName,看起來是有連結的記錄在,但是在 Elasticsearch上並沒有相關 index產生。這部份想再用 Logspout再試看看。
在實作的過程中想到之前就想把 MongoDB資料與 Elasticsearch作連結,讓 Elasticsearch可以作 index,這次剛好有 Elasticsearch,所以就來實作看看。
MongoDB與 Elasticsearch連結的部份就要使用 mongodb-connector (https://github.com/mongodb-labs/mongo-connector)
connector要看不同版本的 Elasticsearch而下載,我的 ELK Stash內的 Elasticsearch為 5.*,所以要下載 5的版本,所以在 ELK Stash VM上安裝 connector,指令如下
pip install 'mongo-connector[elastic5]'
如果你的 MongoDB不是 Replica Set的話,記得要轉成 Replica Set,就算是一台也可以,不管你的 MongoDB是不是在 Docker上。而最好建立一個 mongodb 帳號是有 backup權限的,再用這個帳號讓 Elasticsearch可以連結,我就有遇過一家資訊服務公司,他所賣的產品有使用到 MongoDB,但完全不設帳號、宓碼,難怪最近 MongoDB被加密要錢。
最後要建立一個 config.json檔 https://github.com/mongodb-labs/mongo-connector/wiki/Configuration%20Options
這邊多花一些時間設定 MongoDB的位置,帳號、密碼,還有那些 document, collection需要被索引
最後再執行 mongo-connector -c config.json
再看看 Elasticsearch是否有 index產生,再到 Kinaba設定就可以看到資料了
.Net Core 佈署到 docker上出現錯誤 The library 'libhostpolicy.so' required to execute the application was not found
使用 VS 2015建一個新 ASP.Net Core專案,再手動升級到 1.1後佈署到 docker時,出現無法正常執行的狀況,使用 docker logs @ConteainName時就出現 The library 'libhostpolicy.so' required to execute the application was not found錯誤訊息,可是之前也用同樣的方式也把另一個專案放在 docker上是沒有問題了,後來發現其原因可能發生在我把專案 package在使用 nuget升級時,原本
Microsoft.NetCore.App這個部份被改寫了,原本在 project.json的寫法如下:
升級後就變成
"Microsoft.AspNetCore.App": "1.1.0", => type的設定就不見了
所以只要再把成如下寫法,把 type加回去即可
參考文件
Every Other "dotnet run" command fails with `libhostpolicy.so` error #5059
Microsoft.NetCore.App這個部份被改寫了,原本在 project.json的寫法如下:
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
}升級後就變成
"Microsoft.AspNetCore.App": "1.1.0", => type的設定就不見了
所以只要再把成如下寫法,把 type加回去即可
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}參考文件
Every Other "dotnet run" command fails with `libhostpolicy.so` error #5059
2017年3月2日 星期四
Docker 分版本,要開始收錢了
目前有分 Docker Community Edition (CE) 和 Docker EE, CE應該是以前在使用的免費版本還是可以免費使用, EE在安全多了 features,而且要開始收費
目前大部份 docker是放在 CentOS上,新的 CE版要求要在 CentOS 7.3 64bit上才可以使用,說明如下: Docker Community Edition for CentOS,
1. Set up the repository
Set up the Docker CE repository on CentOS:
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
2. Get Docker CE
Install the latest version of Docker CE on CentOS:
sudo yum -y install docker-ce
Start Docker:
sudo systemctl start docker
3. Test your Docker CE installation
Test your installation:
sudo docker run hello-world
其它版本的也可以在 CE的網頁上找的到。
目前大部份 docker是放在 CentOS上,新的 CE版要求要在 CentOS 7.3 64bit上才可以使用,說明如下: Docker Community Edition for CentOS,
1. Set up the repository
Set up the Docker CE repository on CentOS:
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
2. Get Docker CE
Install the latest version of Docker CE on CentOS:
sudo yum -y install docker-ce
Start Docker:
sudo systemctl start docker
3. Test your Docker CE installation
Test your installation:
sudo docker run hello-world
其它版本的也可以在 CE的網頁上找的到。
訂閱:
文章 (Atom)