【zabbix HA】zabbixHA 高可用的實(shí)現(xiàn)

zabbix高可用設(shè)計(jì)目標(biāo)

1陶衅、keepalived服務(wù)優(yōu)先級選擇切換機(jī)制:對于zabbix服務(wù)器來說诵竭,只要zabbix存活和mysql存活,就能夠正常記錄數(shù)據(jù)念颈,不會丟失數(shù)據(jù)泉粉,php和httpd只是web頁面的訪問而已,所以我在這里定義mysql和zabbix為主要服務(wù)榴芳,php和httpd為次要服務(wù)嗡靡,為了實(shí)現(xiàn)主要服務(wù)存在,次要服務(wù)掛了窟感;次要服務(wù)器存在讨彼,主要服務(wù)器掛了,keepalived會優(yōu)先選擇主要服務(wù)存在的一方作為master柿祈,讓keepalived切換更為更合理哈误。

2、數(shù)據(jù)庫主主同步:不管切到哪一邊都需要保持?jǐn)?shù)據(jù)一致性躏嚎,不可出現(xiàn)丟數(shù)據(jù)或者數(shù)據(jù)重復(fù)蜜自,保證數(shù)據(jù)庫的高可用。

3卢佣、文件雙向同步:

? ? ? ? (1)web文件同步:任何做web文件得配置和修改重荠,保證兩邊一致,確保切換不會發(fā)生任何變化珠漂。

? ? ? ? (2)zabbix服務(wù)文件同步:對zabbix_servr的配置文件做的任何修改晚缩,和腳本的修改進(jìn)行同步,也是為了保證兩邊的服務(wù)一致性媳危,沒有落后情況荞彼,達(dá)到無需人工干預(yù)自動切換服務(wù)可正常時(shí)候。

? ? ? ? (3)到此完成了zabbix得無縫切換待笑,無故障時(shí)間鸣皂!

一、實(shí)驗(yàn)環(huán)境

操作系統(tǒng): CentOS7.2 Minial

zabbixA: 192.168.1.102

zabbixB: ?192.168.1.103?

vip: ? ? ? ? ?192.168.1.120

二暮蹂、軟件安裝

在zabbixA和zabbixB

1.安裝zabbix組件

# yum ?-y install epel-release

# rpm -hiv? ?http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm

# yum -y install zabbix-server-mysql zabbix-web.noarch zabbix-web-mysql.noarch ?zabbix-java-gateway ?zabbix-get

# yum ?-y install ?zabbix-agent ?zabbix-sender?

2. 安裝數(shù)據(jù)庫組件

# rpm -ivh? ? ?https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# yum repolist enabled | grep "mysql.*-community.*"

# yum -y install mysql-community-server ?mysql-community-client

3.安裝php httpd組件

# yum -y install ?php php-gd php-mysql php-bcmath php-mbstring php-xml ?httpd

4.安裝文件同步組件

# ?yum ?-y install rsync ?inotify-tools

5. 雙機(jī)互信寞缝,實(shí)現(xiàn)免密登錄

# ssh-keygen -t rsa -P '' -q ?-f ~/.ssh/id_rsa

# ssh-copy-id ?root@$ip

6. 設(shè)置selinux模式和防火墻

#?sysctl?-w?net.ipv4.ip_nonlocal_bind=1

#?echo?"net.ipv4.ip_nonlocal_bind=1"?>>?/etc/sysctl.conf

# setenforce 0

# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' ? /etc/selinux/config

# iptables -F

三、zabbixA軟件配置

1.數(shù)據(jù)庫配置

# systemctl start mysqld.service

# systemctl enable mysqld.service

# cat /var/log/mysqld.log | grep password?

# mysql -u root -p"XXX"

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

mysql> set password = password('mysql123');

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123';

2.zabbix-server配置

# sed -i ? '/^# SourceIP/s/=.*$/=192.168.1.120/' ? ? ? ? ? ? ? ? ?/etc/zabbix/zabbix_server.conf

# sed -i ? '/^# DBHost/s/=.*$/=192.168.1.120/' ? ? ? ? ? ? ? ? ? ? /etc/zabbix/zabbix_server.conf

# sed -i ?'/^DBName/s/=.*$/=zabbix/' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/etc/zabbix/zabbix_server.conf

# sed -i ?'/^# DBPassword/s/.*$/DBPassword=zabbix123/' ?/etc/zabbix/zabbix_server.conf

3.php配置

# sed -i ? ? ?'s/post_max_size = 8M/post_max_size = 32M/g' ? ? ? ? ? ? ? ? ? ? ? ? ?/etc/php.ini

# sed -i ? ? ?'s/upload_max_filesize = 2M/upload_max_filesize = 50M/g' ? ? ? ?/etc/php.ini

# sed -i ? ? ? 's/\;date.timezone =/date.timezone = Asia\/Shanghai/' ? ? ? ? ? ? ? /etc/php.ini

# sed -i ? ? ?'s/max_execution_time = 30/max_execution_time = 600/g' ? ? ? ? ?/etc/php.ini

# sed -i ? ? 's/max_input_time = 60/max_input_time = 600/g' ? ? ? ? ? ? ? ? ? ? ? /etc/php.ini

# sed -i ? ? 's/memory_limit = 128M/memory_limit = 256M/g' ? ? ? ? ? ? ? ? ? ? ?/etc/php.ini?

# systemctl restart zabbix-server

# systemctl enable zabbix-server

# systemctl restart httpd

# systemctl enable httpd

4.keepalived配置

# vim /etc/keepalived/keepalived.conf

############################################

! Configuration File for keepalived

global_defs {

? ?router_id LVS_DEVEL

}

vrrp_script check {?

? ? script "/etc/keepalived/check.sh"?

? ? interval 5 ? ??

} ??

vrrp_instance VI_1 {

? ? state BACKUP

? ? interface eno16777736

? ? virtual_router_id 100

? ? priority 100

? ? advert_int 1

? ? nopreempt

? ? authentication {

? ? ? ? auth_type PASS

? ? ? ? auth_pass 1111

? ? }

? ? track_script { ??

? ? ? check

? ? } ??

? ? virtual_ipaddress {

? ? ? ? 192.168.1.120

? ? }

#notify_master "/etc/keepalived/zabbix.sh start"

#notify_backup "/etc/keepalived/zabbix.sh stop"

}

##############################################

# vim /etc/keepalived/check.sh

##############################################

#!/bin/bash

zabbix_server_status1=$(ps -C zabbix_server --no-heading|wc -l)

if [ "${zabbix_server_status1}" = "0" ]; then

? systemctl start zabbix_server.service

? sleep 3

? zabbix_server_status2=$(ps -C zabbix_server --no-heading|wc -l)

? if [ "${zabbix_server_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

mysqld_status1=$(ps -C mysqld --no-heading|wc -l)

if [ "${mysqld_status1}" = "0" ]; then

? systemctl start mysqld.service

? sleep 3

? mysqld_status2=$(ps -C mysqld --no-heading|wc -l)

? if [ "${mysqld_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

httpd_status1=$(ps -C httpd --no-heading|wc -l)

if [ "${httpd_status1}" = "0" ]; then

? systemctl start httpd.service

? sleep 3

? httpd_status2=$(ps -C httpd --no-heading|wc -l)

? if [ "${httpd_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

##########################################

# chmod +x?/etc/keepalived/check.sh

5. 文件同步設(shè)置

# vim /opt/data_realtime_rsync.sh

####################################################################

#!/bin/bash

# File name:data_realtime_sync.sh

# File path: /opt/data_realtime_sync.sh

src_dir="/etc/zabbix"

dest_dir="/etc/zabbix"

src_ip="192.168.1.102"

dest_ip="192.168.1.103"

. /etc/init.d/functions

cd ${src_dir}

inotifywait -mrq -e modify,attrib,close_write,move,create,delete --format '%e %w%f' ./ |

while read file;do

? ? INO_EVENT=$(echo $file | awk '{print $1}') ? ? ?

? ? INO_FILE=$(echo $file ?| awk '{print $2}') ? ? ?

? ? if [[ $INO_EVENT =~ 'CREATE' ]] || [[ $INO_EVENT =~ 'MODIFY' ]] || [[ $INO_EVENT =~ 'CLOSE_WRITE' ]] || [[ $INO_EVENT =~ 'MOVED_TO' ]];then

? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? rsync -avzcR -e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? done

? ? fi

? ? if [[ $INO_EVENT =~ 'ATTRIB' ]];then

? ? ? ? if [ ! -d "$INO_FILE" ];then

? ? ? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? ? ? rsync -avzcR ?-e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? ? ? done

? ? ? ? fi

? ? fi

? ? if [[ $INO_EVENT =~ 'DELETE' ]] || [[ $INO_EVENT =~ 'MOVED_FROM' ]];then

? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? rsync -avzcR --delete ?-e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? done

? ? fi

done

#####################################################################

# chmod +x /opt/data_realtime_rsync.sh

# vim /etc/systemd/system/rsync-inotity.service

###############################################

[Unit]

Description=File instant rsync script

[Service]

ExecStart=/usr/bin/nohup /opt/data_realtime_rsync.sh ?&

[Install]

WantedBy=multi-user.target

#################################################

6.數(shù)據(jù)庫主主同步配置

# vim /etc/my.cnf

######################################################

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

server-id=1 ? ? ? ? ? ? ? ? ? ? ??

log-bin=mysql-bin ? ? ? ? ? ? ? ?

auto-increment-increment = 2 ? ?

auto-increment-offset = 1 ? ? ?

binlog_format = mixed ? ? ? ??

sync_binlog=1 ? ? ? ? ? ? ? ?

binlog-do-db=zabbix ? ? ? ??

binlog-ignore-db=mysql ? ??

binlog-ignore-db=sys

binlog-ignore-db=performance_schema

binlog-ignore-db=information_schema

replicate-do-db=zabbix ? ? ? ? ? ?

replicate-ignore-db=mysql ? ? ? ?

replicate-ignore-db=sys

replicate-ignore-db=performance_schema

replicate-ignore-db=information_schema

######################################################

# systemctl restart mysqld

登錄zabbixB的MySQL

創(chuàng)建數(shù)據(jù)同步賬號

# mysql -u root -p"mysql123"

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'Repl@123';

mysql> grant all privileges on zabbix.* to zabbix@192.168.1.120 identified by 'zabbix123';

mysql> FLUSH PRIVILEGES;

# exit

獲取zabbixB二進(jìn)制日志名和位置

#mysql -uroot -p"mysql123" ? ?--execute='show master status;

# mysql -uroot -p$"mysql123" --execute='show master status;'

在zabbixA 上

# ?mysql -uroot -p"mysql123"

mysql>?CHANGE?MASTER?TO

????->?MASTER_HOST='192.168.1.103',

????->?MASTER_USER='repluser',

????->?MASTER_PASSWORD='Repl@123',

????->?MASTER_LOG_FILE='mysql-bin.000002',

????->?MASTER_LOG_POS=50334;

mysql> START SLAVE;

mysql> SHOW SLAVE STATUS\G

四仰泻、zabbixB軟件配置

1.數(shù)據(jù)庫配置

# systemctl start mysqld.service

# systemctl enable mysqld.service

# cat /var/log/mysqld.log | grep password?

# mysql -u root -p"XXX"

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

mysql> set password = password('mysql123');

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123';

2.zabbix-server配置

# sed -i ? '/^ SourceIP/s/=.*$/=192.168.1.120/' ? ? ? ? ? ? ? ? ? ? /etc/zabbix/zabbix_server.conf

# sed -i ? '/^# DBHost/s/=.*$/=192.168.1.120/' ? ? ? ? ? ? ? ??? ? /etc/zabbix/zabbix_server.conf

# sed -i ?'/^DBName/s/=.*$/=zabbix/' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/etc/zabbix/zabbix_server.conf

# sed -i ?'/^# DBPassword/s/.*$/DBPassword=zabbix123/' ? /etc/zabbix/zabbix_server.conf

3.php配置

# sed -i ? ? ?'s/post_max_size = 8M/post_max_size = 32M/g' ? ? ? ? ? ? ? ? ? ? ? ? ?/etc/php.ini

# sed -i ? ? ?'s/upload_max_filesize = 2M/upload_max_filesize = 50M/g' ? ? ? ?/etc/php.ini

# sed -i ? ? ? 's/\;date.timezone =/date.timezone = Asia\/Shanghai/' ? ? ? ? ? ? ? /etc/php.ini

# sed -i ? ? ?'s/max_execution_time = 30/max_execution_time = 600/g' ? ? ? ? ?/etc/php.ini

# sed -i ? ? 's/max_input_time = 60/max_input_time = 600/g' ? ? ? ? ? ? ? ? ? ? ? /etc/php.ini

# sed -i ? ? 's/memory_limit = 128M/memory_limit = 256M/g' ? ? ? ? ? ? ? ? ? ? ?/etc/php.ini?

# systemctl restart zabbix-server

# systemctl enable zabbix-server

# systemctl restart httpd

# systemctl enable httpd

4.keepalived配置

# vim /etc/keepalived/keepalived.conf

############################################

! Configuration File for keepalived

global_defs {

? ?router_id LVS_DEVEL

}

vrrp_script check {?

? ? script "/etc/keepalived/check.sh"?

? ? interval 5 ? ??

} ??

vrrp_instance VI_1 {

? ? state BACKUP

? ? interface eno16777736

? ? virtual_router_id 90

? ? priority 100

? ? advert_int 1

? ? nopreempt

? ? authentication {

? ? ? ? auth_type PASS

? ? ? ? auth_pass 1111

? ? }

? ? track_script { ??

? ? ? check

? ? } ??

? ? virtual_ipaddress {

? ? ? ? 192.168.1.120

? ? }

#notify_master "/etc/keepalived/zabbix.sh start"

#notify_backup "/etc/keepalived/zabbix.sh stop"

}

##############################################

# vim /etc/keepalived/check.sh

##############################################

#!/bin/bash

zabbix_server_status1=$(ps -C zabbix_server --no-heading|wc -l)

if [ "${zabbix_server_status1}" = "0" ]; then

? systemctl start zabbix_server.service

? sleep 3

? zabbix_server_status2=$(ps -C zabbix_server --no-heading|wc -l)

? if [ "${zabbix_server_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

mysqld_status1=$(ps -C mysqld --no-heading|wc -l)

if [ "${mysqld_status1}" = "0" ]; then

? systemctl start mysqld.service

? sleep 3

? mysqld_status2=$(ps -C mysqld --no-heading|wc -l)

? if [ "${mysqld_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

httpd_status1=$(ps -C httpd --no-heading|wc -l)

if [ "${httpd_status1}" = "0" ]; then

? systemctl start httpd.service

? sleep 3

? httpd_status2=$(ps -C httpd --no-heading|wc -l)

? if [ "${httpd_status2}" = "0" ]; then

? ? systemctl restart keepalived.service

? fi

fi

##########################################

# chmod +x?/etc/keepalived/check.sh

5. 文件同步設(shè)置

# vim /opt/data_realtime_rsync.sh

####################################################################

#!/bin/bash

# File name:data_realtime_sync.sh

# File path: /opt/data_realtime_sync.sh

src_dir="/etc/zabbix"

dest_dir="/etc/zabbix"

src_ip="192.168.1.103"

dest_ip="192.168.1.102"

. /etc/init.d/functions

cd ${src_dir}

inotifywait -mrq -e modify,attrib,close_write,move,create,delete --format '%e %w%f' ./ |

while read file;do

? ? INO_EVENT=$(echo $file | awk '{print $1}') ? ? ?

? ? INO_FILE=$(echo $file ?| awk '{print $2}') ? ? ?

? ? if [[ $INO_EVENT =~ 'CREATE' ]] || [[ $INO_EVENT =~ 'MODIFY' ]] || [[ $INO_EVENT =~ 'CLOSE_WRITE' ]] || [[ $INO_EVENT =~ 'MOVED_TO' ]];then

? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? rsync -avzcR -e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? done

? ? fi

? ? if [[ $INO_EVENT =~ 'ATTRIB' ]];then

? ? ? ? if [ ! -d "$INO_FILE" ];then

? ? ? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? ? ? rsync -avzcR ?-e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? ? ? done

? ? ? ? fi

? ? fi

? ? if [[ $INO_EVENT =~ 'DELETE' ]] || [[ $INO_EVENT =~ 'MOVED_FROM' ]];then

? ? ? ? for ip in ${dest_ip};do

? ? ? ? ? ? rsync -avzcR --delete ?-e ssh ?$(dirname ${INO_FILE}) root@${dest_ip}:${dest_dir}

? ? ? ? done

? ? fi

done

#####################################################################

# chmod +x /opt/data_realtime_rsync.sh

# vim /etc/systemd/system/rsync-inotity.service

###############################################

[Unit]

Description=File instant rsync script

[Service]

ExecStart=/usr/bin/nohup /opt/data_realtime_rsync.sh ?&

[Install]

WantedBy=multi-user.target

#################################################

?6.數(shù)據(jù)庫主主同步配置

# vim /etc/my.cnf

######################################################

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

server-id=2 ? ? ? ? ? ? ? ? ? ? ??

log-bin=mysql-bin ? ? ? ? ? ? ? ?

auto-increment-increment = 2 ? ?

auto-increment-offset = 2 ? ? ?

binlog_format = mixed ? ? ? ??

sync_binlog=1 ? ? ? ? ? ? ? ?

binlog-do-db=zabbix ? ? ? ??

binlog-ignore-db=mysql ? ??

binlog-ignore-db=sys

binlog-ignore-db=performance_schema

binlog-ignore-db=information_schema

replicate-do-db=zabbix ? ? ? ??

replicate-ignore-db=mysql ? ??

replicate-ignore-db=sys

replicate-ignore-db=performance_schema

replicate-ignore-db=information_schema

######################################################

# systemctl restart mysqld

登錄zabbixA的MySQL

創(chuàng)建數(shù)據(jù)同步賬號

# mysql -u root -p"mysql123"

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'Repl@123';

mysql>?grant all privileges on zabbix.* to zabbix@192.168.1.120 identified by 'zabbix123';

mysql> FLUSH PRIVILEGES;

# exit

獲取zabbixA二進(jìn)制日志名和位置

#mysql -uroot -p"mysql123" ? ?--execute='show master status;

# mysql -uroot -p$"mysql123" --execute='show master status;'

在zabbixB上

#?mysql -uroot -p"mysql123"

mysql>?CHANGE?MASTER?TO

????->?MASTER_HOST='192.168.1.102',

????->?MASTER_USER='repluser',

????->?MASTER_PASSWORD='Repl@123',

????->?MASTER_LOG_FILE='mysql-bin.000002',

????->?MASTER_LOG_POS=50334;

mysql> START SLAVE;

mysql> SHOW SLAVE STATUS\G

?五荆陆、zabbixA ?zabbixB服務(wù)啟動

# systemctl start ?zabbix-server

# systemctl enable zabbix-server

# systemctl start ?rsync-inotify

# systemctl enable ?rsync-inotify

# cat /etc/zabbix/zabbix_server.conf | grep 120

# cat /etc/zabbix/zabbix_server.conf | grep -Ev "^#|^$"

# vim ?/etc/zabbix/web/zabbix.conf.php

六、訪問測試

http://192.168.1.102/zabbix

http://192.168.1.103/zabbix

http://192.168.1.20/zabbix



七集侯、參考

inotify+rsync+mysql主主復(fù)制+keepalived實(shí)現(xiàn)zabbix高可用

http://blog.51cto.com/3241766/2137303

Keepalived中Master和Backup主備切換機(jī)制淺析

http://blog.51cto.com/3241766/2097483

Zabbix高可用被啼,實(shí)現(xiàn)zabbix的無縫切換帜消,無故障時(shí)間

http://blog.51cto.com/yigemeng/1738174

實(shí)現(xiàn)Zabbix的高可用

https://www.longlong.asia/2016/10/29/zabbix-ha.html

keepalived + rsync +inotify 實(shí)現(xiàn)真正的高效數(shù)據(jù)實(shí)時(shí)同步

https://fandenggui.com/post/keepalived-rsync-inotify.html

真正的inotify+rsync實(shí)時(shí)同步 徹底告別同步慢

http://www.ttlsa.com/web/let-infotify-rsync-fast

Zabbix HA Requirment

https://kasperdeng.github.io/zabbix-ha-on-aws

Configuring the Zabbix server for high availability

https://www.packtpub.com/mapt/book/networking_and_servers/9781785289262/3/ch03lvl1sec18/configuring-the-zabbix-server-for-high-availability

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浓体,隨后出現(xiàn)的幾起案子泡挺,更是在濱河造成了極大的恐慌,老刑警劉巖命浴,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娄猫,死亡現(xiàn)場離奇詭異,居然都是意外死亡生闲,警方通過查閱死者的電腦和手機(jī)媳溺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跪腹,“玉大人褂删,你說我怎么就攤上這事〕迦祝” “怎么了屯阀?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長轴术。 經(jīng)常有香客問我难衰,道長,這世上最難降的妖魔是什么逗栽? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任盖袭,我火速辦了婚禮,結(jié)果婚禮上彼宠,老公的妹妹穿的比我還像新娘鳄虱。我一直安慰自己,他們只是感情好凭峡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布拙已。 她就那樣靜靜地躺著,像睡著了一般摧冀。 火紅的嫁衣襯著肌膚如雪倍踪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天索昂,我揣著相機(jī)與錄音建车,去河邊找鬼。 笑死椒惨,一個(gè)胖子當(dāng)著我的面吹牛缤至,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播康谆,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼领斥,長吁一口氣:“原來是場噩夢啊……” “哼错洁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戒突,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎描睦,沒想到半個(gè)月后膊存,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忱叭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年隔崎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片韵丑。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爵卒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撵彻,到底是詐尸還是另有隱情钓株,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布陌僵,位于F島的核電站轴合,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碗短。R本人自食惡果不足惜受葛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偎谁。 院中可真熱鬧总滩,春花似錦、人聲如沸巡雨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸯隅。三九已至澜建,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝌以,已是汗流浹背炕舵。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跟畅,地道東北人咽筋。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像徊件,于是被迫代替她去往敵國和親奸攻。 傳聞我的和親對象是個(gè)殘疾皇子蒜危,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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