開源運(yùn)維監(jiān)控open-falcon的快速部署

在目前流行的三大開源運(yùn)維監(jiān)控工具Zabbix想许、Nagios阴挣、Open-Falcon當(dāng)中,Open-Falcon屬于后起之秀登钥,由小米團(tuán)隊(duì)提供畔师,可以從運(yùn)營級(jí)別(基本配置即可),以及應(yīng)用級(jí)別(二次開發(fā)牧牢,通過端口進(jìn)行日志上報(bào))看锉,對(duì)服務(wù)器、操作系統(tǒng)塔鳍、中間件伯铣、應(yīng)用進(jìn)行全面的監(jiān)控,及報(bào)警轮纫,對(duì)我們的系統(tǒng)正常運(yùn)行的作用非常重要懂傀。由于公司有意采用這款監(jiān)控,我也專門花時(shí)間簡(jiǎn)單研究了一下蜡感,在這就提供一下如何進(jìn)行快速部署(分為Docker部署和Linux普通部署):

falcon-plus:https://github.com/open-falcon/falcon-plus

一蹬蚁、部署前準(zhǔn)備

1、在Centos7系統(tǒng)上安裝Docker(如果不在docker下部署可以省略這一步)

yum update -y

yum install docker epel-release -y

啟動(dòng)docker

systemctl enable docker

systemctl start docker

2郑兴、安裝GO(用于編譯falcon-plus)

上網(wǎng)獲取最新版本的go程序包:https://studygolang.com/dl

下載并安裝

mkdir -p /usr/local/gopath

cd /usr/local

wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz

tar -xvf go1.11.linux-amd64.tar.gz

配置環(huán)境變量

在/etc/profile中添加

export GOROOT=/usr/local/go

export GOPATH=/usr/local/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

3犀斋、安裝git:yum -y install git

如果git clone下載出錯(cuò),還需要更新一下curl(因?yàn)間it下載本質(zhì)上用的是curl):yum update -y nss curl libcurl

二情连、Docker模式部署

1叽粹、部署mysql

## 創(chuàng)建mysql卷目錄

mkdir -p? /home/work/mysql-data

chmod -R 666 /home/work/mysql-data

## 啟動(dòng)mysql容器

? ? docker run -itd \

? ? ? ? --name falcon-mysql \

? ? ? ? -v /home/work/mysql-data:/var/lib/mysql \

? ? ? ? -e MYSQL_ROOT_PASSWORD=test123456 \

? ? ? ? -p 3306:3306 \

? ? ? ? mysql:5.7

## 初始化mysql數(shù)據(jù)并運(yùn)行

? ? cd /tmp && \

? ? git clone --depth=1 https://github.com/open-falcon/falcon-plus && \

? ? cd /tmp/falcon-plus/ && \

? ? for x in `ls ./scripts/mysql/db_schema/*.sql`; do

? ? ? ? echo init mysql table $x ...;

? ? ? ? docker exec -i falcon-mysql mysql -uroot -ptest123456 < $x;

? ? done

? ? rm -rf /tmp/falcon-plus/

2、部署redis

docker run --name falcon-redis -p6379:6379 -d redis:4-alpine3.8

3、部署falcon-plus組合模塊

## 拉取鏡像 hub.docker.com/openfalcon

? ? docker pull openfalcon/falcon-plus:v0.2.1

## 運(yùn)行 falcon-plus 容器

? ? docker run -itd --name falcon-plus \

? ? ? ? --link=falcon-mysql:db.falcon \

? ? ? ? --link=falcon-redis:redis.falcon \

? ? ? ? -p 8433:8433 \

? ? ? ? -p 8080:8080 \

? ? ? ? -p 6030:6030 \

? ? ? ? -e MYSQL_PORT=root:test123456@tcp\(db.falcon:3306\) \

? ? ? ? -e REDIS_PORT=redis.falcon:6379? \

? ? ? ? -v /home/work/open-falcon/data:/open-falcon/data \

? ? ? ? -v /home/work/open-falcon/logs:/open-falcon/logs \

? ? ? ? openfalcon/falcon-plus:v0.2.1

## 啟動(dòng)所有 falcon 后臺(tái)模塊, 如 graph,api,agent等

? ? docker exec falcon-plus sh ctrl.sh start \

? ? ? ? ? ? graph hbs judge transfer nodata aggregator agent gateway api alarm

以上運(yùn)行容器只放開了三個(gè)端口8433(transfer服務(wù)端口)?虫几、8080(Falcon的http端口)锤灿、6030(heartbeat心跳端口),其他需要開放的端口需要時(shí)具體配置(主要是分布式部署的情況下)辆脸。

4但校、分布式啟用部分模塊(如agent)

docker exec falcon-plus sh ctrl.sh start/stop/restart agent

適用于集群部署的docker環(huán)境,一個(gè)docker實(shí)例就啟用一個(gè)模塊的情況啡氢。

5状囱、查看模塊狀態(tài)及日志

## check status of backend modules

? ? docker exec falcon-plus ./open-falcon check

## or you can check logs at /home/work/open-falcon/logs/ in your host

? ? ls -l /home/work/open-falcon/logs/

以上部署完成后,在linux防火墻不限制端口的情況下倘是,應(yīng)該就能看到Falcon服務(wù)的啟動(dòng)(訪問http://{IP}:8080)

6亭枷、部署falcon-dashboard(前端頁面)

docker run -itd --name falcon-dashboard \

? ? ? ? -p 8081:8081 \

? ? ? ? --link=falcon-mysql:db.falcon \

? ? ? ? --link=falcon-plus:api.falcon \

? ? ? ? -e API_ADDR=http://api.falcon:8080/api/v1 \

? ? ? ? -e PORTAL_DB_HOST=db.falcon \

? ? ? ? -e PORTAL_DB_PORT=3306 \

? ? ? ? -e PORTAL_DB_USER=root \

? ? ? ? -e PORTAL_DB_PASS=test123456 \

? ? ? ? -e PORTAL_DB_NAME=falcon_portal \

? ? ? ? -e ALARM_DB_HOST=db.falcon \

? ? ? ? -e ALARM_DB_PORT=3306 \

? ? ? ? -e ALARM_DB_USER=root \

? ? ? ? -e ALARM_DB_PASS=test123456 \

? ? ? ? -e ALARM_DB_NAME=alarms \

? ? ? ? -w /open-falcon/dashboard openfalcon/falcon-dashboard:v0.2.1? \

? ? ? './control startfg'

現(xiàn)在就可以訪問頁面了,第一次登錄需要注冊(cè)賬號(hào)搀崭,登錄后的效果如下(默認(rèn)只顯示一個(gè)Endpoints):

?7叨粘、構(gòu)建docker鏡像

以上是直接用網(wǎng)上提供的鏡像,你也可以將最新的源碼構(gòu)建成最新的鏡像:

## Building falcon-plus

? ? cd /tmp && \

? ? git clone https://github.com/open-falcon/falcon-plus && \

? ? cd /tmp/falcon-plus/ && \

? ? docker build -t falcon-plus:v0.2.1 .

##Building falcon-dashboard

? ? cd /tmp && \

? ? git clone https://github.com/open-falcon/dashboard? && \

? ? cd /tmp/dashboard/ && \

? ? docker build -t falcon-dashboard:v0.2.1 .

三瘤睹、linux下構(gòu)建和部署

以上是Docker情況下部署升敲,但我們需要注意,像代理agent模塊不是所有情況都適合用docker部署的默蚌,比如我們就需要在linux下部署代理以監(jiān)控linux機(jī)器冻晤。這時(shí)候我們可以編譯源碼并生成安裝包苇羡,將安裝包拷到不同的機(jī)器上進(jìn)行模塊部署绸吸。

1、下載源碼

mkdir -p $GOPATH/src/github.com/open-falcon

cd $GOPATH/src/github.com/open-falcon

git clone https://github.com/open-falcon/falcon-plus.git

2设江、安裝數(shù)據(jù)庫并初始化

# 安裝數(shù)據(jù)庫

yum install -y redis

yum install -y mysql-server

# 初始化數(shù)據(jù)

cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/

mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql

mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql

mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql

mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql

mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql

# 如果只是在原有數(shù)據(jù)庫升級(jí)版本就用

mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql

3锦茁、編譯打包相關(guān)模塊

cd $GOPATH/src/github.com/open-falcon/falcon-plus/

# make編譯所有模塊

make all

# make編譯其中一個(gè)模塊(如只編譯agent)

make agent

# pack打包所有模塊

make pack

# 打完包的格式為open-falcon-vx.x.x.tar.gz

4、安裝及使用相關(guān)模塊

# 解壓和創(chuàng)建工作目錄

export WorkDir="$HOME/open-falcon"

mkdir -p $WorkDir

tar -xzvf open-falcon-vx.x.x.tar.gz -C $WorkDir

cd $WorkDir

# 啟動(dòng)和檢查模塊狀態(tài)

cd $WorkDir

# 啟動(dòng)所有模塊(如需修改配置文件請(qǐng)先設(shè)置后啟動(dòng)叉存,在相應(yīng)模塊目錄的config目錄下)

./open-falcon start

# 只啟動(dòng)指定模塊(如agent)

# ./open-falcon [start|stop|restart|check|monitor|reload] module

./open-falcon start agent

# 檢查模塊status

./open-falcon check

5码俩、單模塊編譯和使用(如agent)

以上是整體模塊編譯,其實(shí)還支持只編譯和使用一個(gè)模塊的情況

mkdir -p $GOPATH/src/github.com/open-falcon

cd $GOPATH/src/github.com/open-falcon

git clone https://github.com/open-falcon/falcon-plus.git

cd falcon-plus/modules/agent

go get

./control build

./control start

#本質(zhì)上啟動(dòng)進(jìn)程 ./falcon-agent -c cfg.json > var/app.log

#啟動(dòng)完后通過訪問 http://localhost:1988

?所以調(diào)用agent模塊歼捏,也別忘了先設(shè)置好配置文件cfg.json

{

? ? "debug": true,

? ? "hostname": "",

? ? "ip": "",

? ? "plugin": {

? ? ? ? "enabled": false,

? ? ? ? "dir": "./plugin",

? ? ? ? "git": "https://github.com/open-falcon/plugin.git",

? ? ? ? "logs": "./logs"

? ? },

? ? "heartbeat": {

? ? ? ? "enabled": true,

? ? ? ? "addr": "172.16.1.162:6030",

? ? ? ? "interval": 60,

? ? ? ? "timeout": 1000

? ? },

? ? "transfer": {

? ? ? ? "enabled": true,

? ? ? ? "addrs": [

? ? ? ? ? ? "172.16.1.162:8433"

? ? ? ? ],

? ? ? ? "interval": 10,

? ? ? ? "timeout": 1000

? ? },

? ? "http": {

? ? ? ? "enabled": true,

? ? ? ? "listen": ":1988",

? ? ? ? "backdoor": false

? ? },

? ? "collector": {

? ? ? ? "ifacePrefix": ["eth", "em"],

? ? ? ? "mountPoint": []

? ? },

? ? "default_tags": {

? ? },

? ? "ignore": {

? ? ? ? "cpu.busy": true,

? ? ? ? "df.bytes.free": true,

? ? ? ? "df.bytes.total": true,

? ? ? ? "df.bytes.used": true,

? ? ? ? "df.bytes.used.percent": true,

? ? ? ? "df.inodes.total": true,

? ? ? ? "df.inodes.free": true,

? ? ? ? "df.inodes.used": true,

? ? ? ? "df.inodes.used.percent": true,

? ? ? ? "mem.memtotal": true,

? ? ? ? "mem.memused": true,

? ? ? ? "mem.memused.percent": true,

? ? ? ? "mem.memfree": true,

? ? ? ? "mem.swaptotal": true,

? ? ? ? "mem.swapused": true,

? ? ? ? "mem.swapfree": true

? ? }

}

6稿存、部署dashboard

這個(gè)部署過程內(nèi)容比較多,在這就不細(xì)說了瞳秽,可以參照官網(wǎng)https://github.com/open-falcon/dashboard瓣履,但是既然部署麻煩,dashboard完全就可以通過docker來實(shí)現(xiàn)练俐。

四袖迎、Windows下構(gòu)建和使用agent代理

雖然我們把監(jiān)控系統(tǒng)部署在linux環(huán)境或Docker中,但是要監(jiān)控Windows,還得有windows代理燕锥,網(wǎng)上有提供編譯好的包:

https://github.com/freedomkk-qfeng/windows-agent/releases

但我們有時(shí)候還得親力親為辜贵,因?yàn)閯e人編譯好的包可能不是最新版本的。

關(guān)于windows的代理網(wǎng)上有四種方案(http://book.open-falcon.org/zh_0_2/usage/win.html)归形,我們選擇最后一種方案托慨,原因是支持go,并且是最新維護(hù)的(汽車之家提供的那一版我也編譯通過并使用成功连霉,但是只支持Python2.7或更早版的岭辣,而且編譯過程會(huì)復(fù)雜一些)。下面介紹具體步驟:

1匪蝙、下載golang windows版和git的windows版吓著,然后安裝。

https://studygolang.com/dl

https://git-scm.com/download/win

2歉井、安裝GOLANG到D:\Go柿祈,配置環(huán)境變量(goroot和gopath要不同路徑)

我的是GOROOT為D:\Go,GOPATH為D:\User\GOPATH 哩至,在系統(tǒng)變量Path中添加 %GOROOT%\bin;

3躏嚎、再下載依賴包(正常沒有這一步,但由于我無法翻墻到google菩貌,這就需要手動(dòng)下載以下包卢佣,以下命令可以在CMD中進(jìn)行

git clone https://github.com/googleapis/google-cloud-go.git %GOPATH%/src/cloud.google.com

xcopy "%GOPATH%/src/cloud.google.com/civil" "%GOPATH%/src/cloud.google.com/go/civil" /y /e /i /q

git clone https://github.com/golang/net.git %GOPATH%/src/golang.org/x/net

git clone https://github.com/golang/sys.git %GOPATH%/src/golang.org/x/sys

git clone https://github.com/golang/tools.git %GOPATH%/src/golang.org/x/tools

git clone https://github.com/golang/text.git %GOPATH%/src/golang.org/x/text

git clone https://github.com/golang/crypto.git %GOPATH%/src/golang.org/x/crypto

4、下載要編譯的windows-agent源碼

git clone https://github.com/freedomkk-qfeng/windows-agent %GOPATH%/src/github.com/freedomkk-qfeng/windows-agent

5箭阶、編譯

cd %GOPATH%/src/github.com/freedomkk-qfeng/windows-agent

go get ./...

go build -o windows-agent.exe

不出意外就可以編譯成功虚茶,如果提示還缺包,那就繼續(xù)上網(wǎng)找仇参。

6嘹叫、編譯完后,就可以使用windows-agent.exe诈乒,具體怎么用可以看https://github.com/freedomkk-qfeng/windows-agent

由于網(wǎng)上的使用過程我覺得不夠自動(dòng)罩扇,我自己又寫了個(gè)批處理,調(diào)用也是nssm.exe(一個(gè)注冊(cè)windows服務(wù)的工具)怕磨,需要將批處理腳本喂饥、nssm.exe、windows-agent.exe肠鲫、配置文件cfg.json放在一個(gè)目錄下员帮。

(1)install安裝agent服務(wù)腳本

@echooffcd/d %~dp0.\nssm.exe install windows-agent %~dp0windows-agent.exe %~dp0

(2)start啟動(dòng)agent腳本

@echo off

cd /d %~dp0

.\nssm.exe start windows-agent

(3)stop停止agent腳本

@echo off

cd /d %~dp0

.\nssm.exe stop windows-agent

(4)uninstall卸載agent服務(wù)腳本

@echo off

cd /d %~dp0

.\nssm.exe stop windows-agent

.\nssm.exe remove windows-agent confirm

pause

如果是windows7/10,運(yùn)行以上腳本都需要以管理員身份運(yùn)行滩届。

五集侯、其他監(jiān)控插件

? ? ? ?以上提到監(jiān)控都是針對(duì)OS(Linux/Windows)被啼,而Open-falcon強(qiáng)大的一點(diǎn)是有著大量的監(jiān)控插件支持,所有的第三方監(jiān)控插件只要連通agent代理服務(wù)(監(jiān)控插件或程序最好與本機(jī)agent服務(wù)連通棠枉,否則push可能會(huì)被拒絕連接)浓体,就能獲取更多的監(jiān)控?cái)?shù)據(jù),如Mysql辈讶、Redis命浴、Java JMX、Nginx贱除、Docker等生闲。本文只舉例JMX和Mysql,其他的監(jiān)控插件原理一樣月幌。

1碍讯、Java JMX監(jiān)控

(1)編譯前準(zhǔn)備工作

需要準(zhǔn)備JDK環(huán)境,并配置JAVA_HOME環(huán)境變量扯躺,在這就不細(xì)說了捉兴。

準(zhǔn)備Maven環(huán)境:到http://maven.apache.org/download.cgi中找到最新版的Maven包

cd /usr/local/src/

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

tar zxf apache-maven-3.6.0-bin.tar.gz

mv apache-maven-3.6.0 /usr/local/maven3

# vi /etc/profile 添加環(huán)境變量

export M2_HOME=/usr/local/maven3

export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

# 讓環(huán)境變量立即生效

source /etc/profile

# 確認(rèn)maven生效,驗(yàn)證版本

mvn -v

(2)下載并編譯jmxmon插件源碼

git clone https://github.com/toomanyopenfiles/jmxmon.git

cd jmxmon

# 編譯(強(qiáng)制更新依賴包录语,并生成jar文件)

mvn -U clean package

開始編譯倍啥,一個(gè)漫長(zhǎng)的等待:

編譯完后,生成target目錄澎埠,將主要文件(conf.properties虽缕、control、jar包蒲稳、log4j.properties)打包jar.gz包氮趋,就能到對(duì)應(yīng)環(huán)境去部署,如果認(rèn)為編譯麻煩弟塞,網(wǎng)上也提供了編譯好的包:https://github.com/toomanyopenfiles/jmxmon/releases/tag/v0.0.2

(3)使用jmxmon插件

首先需要在Java服務(wù)中開放JMX監(jiān)聽端口凭峡,我們以linux下的tomcat為例拙已,在catalina.sh啟動(dòng)文件中添加JMX監(jiān)控配置:

JAVA_OPTS="$JAVA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

解壓jmxmon插件包

tar -xvf jmxmon-v0.0.2.tar.gzcdjmxmon-v0.0.2mv conf.example.properties conf.properties

修改配置文件conf.properties决记,內(nèi)容說明如下:

# 工作目錄用來存放jmxmon的臨時(shí)緩存文件,注意不要修改此目錄下的文件

workDir=./

# 需要監(jiān)聽的本地jmx端口倍踪,支持監(jiān)聽多個(gè)端口系宫,多端口用逗號(hào)分隔

jmx.ports=9008

# 本地agent的上報(bào)url,如果使用open-falcon的默認(rèn)配置建车,則這里不需要改變

agent.posturl=http://localhost:1988/v1/push

# 可選項(xiàng):上報(bào)給open-falcon的endpoint扩借,默認(rèn)值為本機(jī)hostname。不建議修改

#hostname=

# 可選項(xiàng):上報(bào)給open-falcon的上報(bào)間隔缤至,默認(rèn)值60潮罪,單位秒。不建議修改

#step=

啟動(dòng)監(jiān)聽(前掉是本機(jī)的agent模塊已啟動(dòng)):

./control start

# 查看日志,或者cat var/app.log以確認(rèn)程序是否正常啟動(dòng)

sh control tail

過幾分鐘后嫉到,通過前端頁面就能看到新獲取的JMX監(jiān)聽數(shù)據(jù):

2沃暗、Mysql監(jiān)控

mymon(MySQL-Monitor) 是Open-Falcon用來監(jiān)控MySQL數(shù)據(jù)庫運(yùn)行狀態(tài)的一個(gè)插件,采集包括global status, global variables, slave status以及innodb status等MySQL運(yùn)行狀態(tài)信息何恶。

(1)獲取源碼進(jìn)行編譯

# Build

go get -u github.com/open-falcon/mymon

cd $GOPATH/src/github.com/open-falcon/mymon

make

(2)修改配置文件

cd $GOPATH/src/github.com/open-falcon/mymon/etc/

vim?myMon.cfg

[default]

basedir = . # 工作目錄

log_dir = ./fixtures # 日志目錄孽锥,默認(rèn)日志文件為myMon.log,舊版本有l(wèi)og_file項(xiàng),如果同時(shí)設(shè)置了细层,會(huì)優(yōu)先采用log_file

ignore_file = ./falconignore # 配置忽略的metric項(xiàng)

snapshot_dir = ./snapshot # 保存快照(process, innodb status)的目錄

snapshot_day = 10 # 保存快照的時(shí)間(日)

log_level? = 5 #? 日志級(jí)別[RFC5424]

# 0 LevelEmergency

# 1 LevelAlert

# 2 LevelCritical

# 3 LevelError

# 4 LevelWarning

# 5 LevelNotice

# 6 LevelInformational

# 7 LevelDebug

falcon_client=http://127.0.0.1:1988/v1/push # falcon agent連接地址

[mysql]

user=root # 數(shù)據(jù)庫用戶名

password=1tIsB1g3rt # 修改為您的數(shù)據(jù)庫密碼

host=127.0.0.1 # 數(shù)據(jù)庫連接地址

port=3306 # 數(shù)據(jù)庫端口

(3)加入定時(shí)器

# Add to crontab

echo '* * * * * cd $(WORKPATH) && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon

表示每分鐘執(zhí)行一次mymon(即每分鐘push一次數(shù)據(jù)到agent服務(wù))惜辑。需要強(qiáng)調(diào)的是$(WORKPATH)要換成具體路徑,這個(gè)路徑不要用環(huán)境變量疫赎,因?yàn)閏rontab默認(rèn)不加載/etc/profile和~/.bash_profile盛撑,既不識(shí)別用戶級(jí)的環(huán)境變量。

過幾分鐘后捧搞,通過前端頁面就能看到新獲取的mysql監(jiān)聽數(shù)據(jù):

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撵彻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子实牡,更是在濱河造成了極大的恐慌陌僵,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创坞,死亡現(xiàn)場(chǎng)離奇詭異碗短,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)题涨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門偎谁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纲堵,你說我怎么就攤上這事巡雨。” “怎么了席函?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵铐望,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我茂附,道長(zhǎng)正蛙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任营曼,我火速辦了婚禮乒验,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蒂阱。我一直安慰自己锻全,他們只是感情好狂塘,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鳄厌,像睡著了一般睹耐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上部翘,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天硝训,我揣著相機(jī)與錄音,去河邊找鬼新思。 笑死窖梁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夹囚。 我是一名探鬼主播纵刘,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼荸哟!你這毒婦竟也來了假哎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤鞍历,失蹤者是張志新(化名)和其女友劉穎舵抹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劣砍,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惧蛹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刑枝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片香嗓。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖装畅,靈堂內(nèi)的尸體忽然破棺而出靠娱,到底是詐尸還是另有隱情,我是刑警寧澤掠兄,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布像云,位于F島的核電站,受9級(jí)特大地震影響徽千,放射性物質(zhì)發(fā)生泄漏苫费。R本人自食惡果不足惜汤锨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一双抽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闲礼,春花似錦牍汹、人聲如沸铐维。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫁蛇。三九已至,卻和暖如春露该,著一層夾襖步出監(jiān)牢的瞬間睬棚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工解幼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抑党,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓撵摆,卻偏偏與公主長(zhǎng)得像底靠,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子特铝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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