CentOS6.X,部署elasticsearch5.6詳細步驟

標簽(空格分隔): elasticsearch head kibana jdk Linux升級


目錄.png

安裝說明

本次為裸機安裝單機版的elasticsearch5.6才沧,由此會涉及到很多不可避免的迈喉,或者說多余的部分,請自行忽略温圆。操作系統(tǒng)Linux內(nèi)核版本挨摸,jdk版本,elasticsearch5.6需要 Java8岁歉。

這里說明一下得运,因為后面會安裝head插件,對Linux的內(nèi)核要求在3.5以上锅移,默認安裝的Linux版本的內(nèi)核為2.6熔掺。參見截圖。jdk1.8是安裝在elasticsearch用戶下的非剃,在root用戶下java -version就會顯示-bash: java: command not found置逻。

見官方文檔:Elasticsearch requires at least Java 8. Specifically as of this writing, it is recommended that you use the Oracle JDK version 1.8.0_131.

系統(tǒng)參數(shù)
系統(tǒng)參數(shù)

Linux插件安裝

root用戶下,".xz"文件解壓

說明:安裝解壓xz备绽,是在安裝elasticsearch的head插件的時候券坞,需要用到node.js,同時需要Linux需要可以連接internet網(wǎng)絡(luò)

1.下載地址 https://tukaani.org/xz/
要選擇.bz2的肺素,別選.xz的恨锚,否則還是解壓不了

image.png

2.解壓包
tar -zxvf xz-5.2.3.tar.gz
cd xz-5.2.3
./configure --prefix=/usr/local/xz
這里會遇到問題,在configure時就是各種找不到倍靡,沒有g(shù)cc等猴伶,于是輸入以下命令
yum install update -y
yum install upgrade -y
這個過程有點久,等完成后,再安裝gcc
yum install gcc
這樣安裝好后
cd xz-5.0.3/
./configure
make
make install
之后就可以愉快地解壓tar.xz文件啦他挎!基本是參見文檔內(nèi)容筝尾,請見諒。

3.解壓xz包
xz -d ***.tar.xz

4.解壓tar包
tar -xvf ***.tar

安裝wget

yum -y install wget

安裝vim

yum -y install vim

Linux的常用支持庫

在CentOS安裝軟件的時候雇盖,可能缺少一部分支持庫忿等,而報錯。這里首先安裝系統(tǒng)常用的支持庫崔挖。那么在安裝的時候就會減少很多的錯誤的出現(xiàn)贸街。

yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel 

jdk1.8安裝

說明:這里切換到elasticsearch用戶進行安裝,不是一種全局jdk配置方式

1.新建用戶
useradd elasticsearch狸相,這時默認用戶主目錄在 /home/elasticsearch

2.su - elasticsearch薛匪,切換到elasticsearch用戶

3.ls -al,可以查看到隱藏文件脓鹃,見圖片紅色框部分

新建用戶下的目錄.png

4.修改.bashrc文件逸尖,切記 :wq 后,執(zhí)行source .bashrc瘸右,進行保存生效
export JAVA_HOME="/home/elasticsearch/jdk1.8.0_144"
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export JAVA_HOME JRE_HOME CLASSPATH PATH

.bashrc文件配置.png

5.這時再查看java版本娇跟,發(fā)現(xiàn)已經(jīng)為1.8了

jdk1.8.png

elasticsearch5.6安裝以及配置修改

1.下載地址
https://www.elastic.co/downloads/elasticsearch#ga-release

elasticsearch下載.png

2.解壓壓縮文件
tar -zxvf elasticsearch-5.6.3.tar.gz

3.修改elasticsearch.yml配置文件

配置文件位置.png

修改參數(shù)如下,注意該配置##順序分先后##

  • 集群名稱:cluster.name: jt_sap5
  • 節(jié)點名稱:node.name: single-node(集群中的各個節(jié)點名稱都不能相同)
  • 數(shù)據(jù)目錄:path.data: /path/to/data(若沒有特殊數(shù)據(jù)路徑太颤,注釋掉該參數(shù)苞俘,默認使用ES_HOME/data)
  • 日志目錄:#path.logs: /path/to/logs(若沒有特殊數(shù)據(jù)路徑,注釋掉該參數(shù)龄章,默認使用ES_HOME/logs)
  • 鎖定物理內(nèi)存設(shè)置:bootstrap.memory_lock: false(注釋掉該參數(shù)吃谣,默認使用false)
  • 系統(tǒng)過濾器調(diào)用設(shè)置:bootstrap.system_call_filter: false
  • 節(jié)點主機IP:network.host: 10.0.1.215
  • 節(jié)點端口:http.port: 9200
  • 數(shù)據(jù)傳輸端口:transport.tcp.port: 9300
  • 集群節(jié)點獲取類型:discovery.type: single-node(注意該配置只在單節(jié)點集群中使用,多節(jié)點集群不能使用做裙,使用默認類型)
  • 集群節(jié)點列表:discovery.zen.ping.unicast.hosts: ["host1:port1", "host2: port2"](該配置在多節(jié)點集群中使用岗憋,單節(jié)點不適用該配置。其中锚贱,host表示集群中其他節(jié)點的ip地址仔戈,port表示集群中其他節(jié)點的數(shù)據(jù)傳輸端口)
  • 集群有效節(jié)點最小值:discovery.zen.minimum_master_nodes: 3(該配置在多借點集群中使用,單節(jié)點不適用拧廊。其中杂穷,該配置的值不能大于總節(jié)點數(shù)量,建議使用 [節(jié)點數(shù)量/2 + 1] 來計算該配置值)
  • 是否允許跨源 REST 請求:http.cors.enabled: true
  • 允許跨源REST請求的地址:http.cors.allow-origin: ""(在開啟允許跨源REST請求之后卦绣,才使用該配置,不然不能使用飞蚓,其中“”標識允許所有的跨源訪問)
  • 最大的http請求長度:http.max_initial_line_length: 10m

備注:
1.bootstrap.system_call_filter參數(shù)配置滤港,默認為true,這里更改為false,放在bootstrap.memory_lock后面溅漾,同時設(shè)定bootstrap.memory_lock為false山叮,主要可能的原因是由于CentOS6.X內(nèi)核版本為2.6,不支持bootstrap.memory_lock參數(shù)的開啟添履,就會引出下面的內(nèi)核升級問題屁倔。
2.官方文檔中提到bootstrap.memory_lock: true的諸多配置,在后文添加暮胧。
3.注意 “:”锐借,后面需要加空格

內(nèi)核版本問題報錯.png

4.elasticsearch啟動錯誤處理方法,以及必須的配置

[elasticsearch@localhost bin]$ ./elasticsearch
... ...
 
ERROR: 
[5] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
[3]: max virtual memory areas vm.max_map_count [256000] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
 
... ...

(1)針對錯誤[1],[2]往衷,可以采取如下配置:

修改/etc/security/limits.conf配置文件:

#[root@www config]$ vim /etc/security/limits.conf

#增加5行钞翔,修改最大句柄數(shù)和單進程的最大線程數(shù):
*  -  nofile  65536
* soft memlock   unlimited
* hard memlock   unlimited
* soft nproc 2048
* hard nproc 2048

(此處代表所有用戶都適用,可以根據(jù)自身需要設(shè)定特定用戶句柄)
如果系統(tǒng)中存在/etc/security/limits.d/90-nproc.conf席舍,修改
soft nproc 1024為* soft nproc 10240布轿,將所有用戶句柄最大值調(diào)整為10240。

#[root@www config]$ vim /etc/security/limits.d/90-nproc.conf
修改如下配置:

# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     10240
root       soft    nproc     unlimited

修改完成后来颤,重新登錄elasticsearch賬戶汰扭,查看設(shè)置是否生效。

[elasticsearch@www config]$ ulimit -n
65536
[elasticsearch@www config]$ ulimit -u
2048

官方文檔:
Elasticsearch使用了大量的文件描述符或者文件句柄福铅。文件描述符將要被用完時會導致災難性的后果萝毛,并且非常可能引起數(shù)據(jù)丟失本讥。確保增加運行Elasticsearch的用戶打開文件描述符的數(shù)量至少為65,536或者更高珊泳。
Elasticsearch使用多個線程池來進行不同類型的操作。當需要時能夠創(chuàng)建新線程是很重要的拷沸。確保Elasticsearch用戶能創(chuàng)建的線程數(shù)最少為2048個色查。

你可以檢查每個節(jié)點的max_file_descriptors配置情況:

GET _nodes/stats/process?filter_path=**.max_file_descriptors

(2)針對錯誤[3],可以采取如下方式:
修改/etc/sysctl.conf文件配置項:

[root@www ~]# vim /etc/sysctl.conf
# 一個進程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的數(shù)量:
vm.max_map_count=262144
 
# 調(diào)用虛擬內(nèi)存的閾值數(shù):
vm.swappiness=1 

[root@www ~]# sysctl -p

(3)針對錯誤[4][5]撞芍,可以采取如下方式:

出現(xiàn)錯誤的原因:是因為centos6.x操作系統(tǒng)不支持SecComp秧了,而elasticsearch 5.x,默認bootstrap.system_call_filter為true進行檢測序无,所以導致檢測失敗验毡,失敗后直接導致ES不能啟動。但是為了禁止內(nèi)存交換帝嗡,這兩個參數(shù)最好設(shè)置為true晶通。

在elasticsearch.yml中添加配置項:bootstrap.system_call_filter為false:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

官方文檔:大多數(shù)操作系統(tǒng)會用盡可能多的內(nèi)存用于文件系統(tǒng)緩存和及早換出無用的應(yīng)用內(nèi)存。這可能導致一部分JVM內(nèi)存被交換到硬盤上哟玷。這種內(nèi)存交換非常不利于性能和節(jié)點的穩(wěn)定性狮辽。應(yīng)該竭盡所能來避免這種情況。它能引起垃圾回收持續(xù)長達數(shù)分鐘而不是幾毫秒并且能導致節(jié)點響應(yīng)緩慢甚至與集群失去聯(lián)系。由此喉脖,最好的方式就是禁止內(nèi)存交換椰苟。

禁止內(nèi)存交換的三種方式

  • 啟用 bootstrap.memory_lock
  • 暫時禁用,Linux系統(tǒng)執(zhí)行命令sudo swapoff -a树叽,如果要永久禁用舆蝴,則需要編輯/etc/fstab文件,然后注釋掉所有包含swap的行题诵。
  • vim /etc/sysctl.conf洁仗,正如上面提到的vm.swappiness=1,這樣子只會在正常情況下減少內(nèi)存交換仇轻,但在緊急情況中依然存在京痢。

警告:mlockall如果嘗試分配超過了可用的內(nèi)存,可能會引起JVM 或者 shell session退出篷店。在啟動Elasticsearch后祭椰,你可以檢查下設(shè)置是否生效了,可以通過檢查下面請求響應(yīng)中的mlockall值:

`GET _nodes?filter_path=**.mlockall`
or
`GET _nodes/process?pretty`

(4)優(yōu)化JVM的Head內(nèi)存大小
說明:該配置適用于ES服務(wù)器負載較高時疲陕,通過提高JVM的Heap內(nèi)存方淤,可以提高ES的處理速度。

# vim $ES_HOME/config/jvm.options

#這個值不能超過可用物理內(nèi)存的50%蹄殃,甚至更小携茂。
修改以下兩處配置:
-Xms4g
-Xmx4g

#如果內(nèi)存配置超過6G請修改如下配置。把回收期修改為G1 GC
## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
修改后
## GC configuration
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200

5.啟動和關(guān)閉elasticsearch
以elasticsearch用戶登錄

啟動:
# cd $ES_HOME
# ./bin/elasticsearch –d –p pid
關(guān)閉:
# cd $ES_HOME
# kill -9 `pid`

瀏覽器打開:http://127.0.0.1:9200

Head插件安裝

1.安裝git
需要從github上面下載代碼诅岩,因此先要安裝git

yum -y install git

安裝完成后讳苦,就可以直接下載代碼了:

git clone git://github.com/mobz/elasticsearch-head.git

或者在windows下載
下載地址:https://github.com/mobz/elasticsearch-head,下載后上傳到Linux系統(tǒng)中吩谦。

2.安裝node
由于head插件本質(zhì)上還是一個nodejs的工程鸳谜,因此需要安裝node,使用npm來安裝依賴的包式廷。(npm可以理解為maven)
去官網(wǎng)下載nodejs咐扭,https://nodejs.org/en/download/

node官網(wǎng).png

下載下來的jar包是xz格式的,一般的linux可能不識別滑废,但我們前面以及安裝了xz解壓工具了哦蝗肪!

xz -d node*.tar.xz
tar -xvf node*.tar

解壓完node的安裝文件后,需要配置下環(huán)境變量,root用戶編輯/etc/profile蠕趁,注意要修改node路徑薛闪,添加

vim /etc/profile

export NODE_HOME=/home/elasticsearch/node-v8.9.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

#在命令行輸入:source /etc/profile,讓配置文件生效俺陋。

在命令行輸入:node -v逛绵,查看node.js的版本怀各。

node版本號.png

3.安裝grunt
grunt是一個很方便的構(gòu)建工具,可以進行打包壓縮术浪、測試、執(zhí)行等等的工作寿酌,5.0里的head插件就是通過grunt啟動的胰苏。因此需要安裝一下grunt:

npm install grunt-cli

安裝完成后檢查一下:
[root@www elasticsearch-head-master]# grunt -version
grunt-cli v1.2.0
grunt v1.0.1

4.修改head源碼

查看當前head插件目錄下有無node_modules/grunt目錄,沒有的話醇疼,執(zhí)行命令創(chuàng)建:npm install grunt --save

(1)修改服務(wù)器監(jiān)聽地址:增加hostname屬性硕并,設(shè)置為*
目錄:head/Gruntfile.js

connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',
            base: '.',
            keepalive: true
        }
    }
}

(2)檢查head根目錄下是否存在base文件夾
要是沒有的話,將 _site下的base文件夾及其內(nèi)容復制到head根目錄下

(3)修改連接地址:
目錄:head/_site/app.js

修改head的連接地址:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";

把localhost修改成你es的服務(wù)器地址秧荆,如:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.0.0.78:9200";

5.運行head
首先啟動elasticsearch倔毙,然后在head目錄中,執(zhí)行npm install下載依賴的包
如果速度較慢或者安裝失敗乙濒,可以使用國內(nèi)鏡像 npm install -g cnpm --registry=https://registry.npm.taobao.org

#后臺啟動grunt server命令
nohup grunt server &exit

#如果想關(guān)閉head插件陕赃,使用[Linux](http://lib.csdn.net/base/linux)查找進程命令:
ps aux|grep head

#結(jié)束進程:
kill -9 'pid'

訪問head插件:
http://10.0.0.78:9100(啟動后會有提示:Started connect web server on http://10.0.0.78:9100)

Kibana安裝

Kibana是一個開源的分析與可視化平臺,設(shè)計出來用于和Elasticsearch一起使用的颁股。你可以用kibana搜索么库、查看、交互存放在Elasticsearch索引里的數(shù)據(jù)甘有,使用各種不同的圖表诉儒、表格、地圖等kibana能夠很輕易地展示高級數(shù)據(jù)分析與可視化亏掀。
1.下載kibana-5.6.3-linux-x86_64.tar.gz
下載地址為:https://www.elastic.co/downloads/kibana

image.png

2.修改配置文件
進入kibana解壓目錄忱反,修改配置文件config/kibana.yml。

  • kibana服務(wù)器端口號:server.port: 5601
  • kibana服務(wù)器ip地址:server.host: "10.10.10.102"
  • kibana服務(wù)器連接ES地址:elasticsearch.url: "http://10.10.10.102:9200"

3.啟動 kibana

nohup  bin/kibana &>/dev/null&

4.查看是否啟動成功
打開瀏覽器滤愕,訪問:http://IP:5601即可

Linux內(nèi)核2.6升級3.10

背景說明:CentOS 7 的內(nèi)核一般都是3.10的温算,而CentOS 6.X 的內(nèi)核一般都是2.6,在2.6的內(nèi)核下该互,elasticsearch5.x下bootstrap.system_call_filter啟動會出現(xiàn)問題米者,要求為內(nèi)核3.5以上。
升級內(nèi)核的方式宇智,網(wǎng)上有很多方法是下載內(nèi)核然后編譯蔓搞,這樣需要安裝很多必備的環(huán)境和工具,比較麻煩随橘,但是也有助于我們了解內(nèi)核的編譯喂分,這里采取較為簡單的快速的升級方式。

1.查看當前內(nèi)核版本(升級后)

[root@www home]# more /etc/issue
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

[root@www home]# uname -a
Linux www 3.10.107-1.el6.elrepo.x86_64 #1 SMP Tue Jun 27 10:57:54 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

2.導入public key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

3.安裝ELRepo到CentOS
http://elrepo.org/tiki/tiki-index.php 選擇要安裝的ELRepo

ELRepo官網(wǎng).png
rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

4.安裝kernel-lt(lt=long-term)

yum --enablerepo=elrepo-kernel install kernel-lt -y

或者 安裝kernel-ml(ml=mainline)

yum --enablerepo=elrepo-kernel install kernel-ml -y

5.編輯grub.conf文件机蔗,修改Grub引導順序

vim /etc/grub.conf

因為一般新安裝的內(nèi)核在第一個位置蒲祈,所以設(shè)置default=0甘萧,表示啟動新內(nèi)核

image.png

6.重啟
查看此時內(nèi)核版本

[root@www home]# uname -r
3.10.107-1.el6.elrepo.x86_64

[THE END]

參考文檔:

linux的tar.xz文件解壓以及xz工具安裝
centos安裝wget 及配置
Linux中必備常用支持庫的安裝(CentOS-6.5)
Elasticsearch用戶指南 二 安裝
如何在Linux下源碼安裝node.js
Elasticsearch5 及 head插件 安裝說明
centos7下Elasticsearch5.2.2和head 插件環(huán)境搭建
Elasticsearch 5.0 —— Head插件部署指南(Head目前支持5.0了!請不要看本篇文章了)
CentOS6.X 升級內(nèi)核 至 3.10
Welcome to the ELRepo Project

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梆掸,一起剝皮案震驚了整個濱河市扬卷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酸钦,老刑警劉巖怪得,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卑硫,居然都是意外死亡徒恋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門欢伏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來入挣,“玉大人,你說我怎么就攤上這事硝拧【斗ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵河爹,是天一觀的道長匠璧。 經(jīng)常有香客問我,道長咸这,這世上最難降的妖魔是什么夷恍? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮媳维,結(jié)果婚禮上酿雪,老公的妹妹穿的比我還像新娘。我一直安慰自己侄刽,他們只是感情好指黎,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著州丹,像睡著了一般醋安。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上墓毒,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天吓揪,我揣著相機與錄音,去河邊找鬼所计。 笑死柠辞,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的主胧。 我是一名探鬼主播叭首,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼习勤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了焙格?” 一聲冷哼從身側(cè)響起图毕,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眷唉,沒想到半個月后吴旋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡厢破,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了治拿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摩泪。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劫谅,靈堂內(nèi)的尸體忽然破棺而出见坑,到底是詐尸還是另有隱情,我是刑警寧澤捏检,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布荞驴,位于F島的核電站,受9級特大地震影響贯城,放射性物質(zhì)發(fā)生泄漏熊楼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一能犯、第九天 我趴在偏房一處隱蔽的房頂上張望鲫骗。 院中可真熱鬧,春花似錦踩晶、人聲如沸执泰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽术吝。三九已至,卻和暖如春茸苇,著一層夾襖步出監(jiān)牢的瞬間排苍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工税弃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纪岁,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓则果,卻偏偏與公主長得像幔翰,于是被迫代替她去往敵國和親漩氨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容