1:在安装有coreseek服务的主机上添加监控sphinx状态的服务
安装xineed服务
yum install xinetd
添加端口
echo "sphinxcheck 9322/tcp # sphinx status check" >> /etc/services
使用xinetd守护进程运行sphinx状态检测
vim /etc/xinetd.d/sphinxchk service sphinxcheck { disable = no flags = REUSE socket_type = stream port = 9322 wait = no user = root server = /usr/local/coreseek4.1/shell/sphinxchk_status.sh log_on_failure += USERID only_from = 192.168.1.126 }
新建状态监控shell
vim /usr/local/coreseek4.1/shell/sphinxchk_status.sh #!/bin/bash ERROR_MSG=`ps -aef|grep coreseek4.1|grep -v grep |wc -l` if [ "$ERROR_MSG" != "0" ] then # sphinx is fine, return http 200 /bin/echo -e "HTTP/1.1 200 OK\r\n" /bin/echo -e "Content-Type: Content-Type: text/plain\r\n" /bin/echo -e "\r\n" /bin/echo -e "sphinx is running.\r\n" /bin/echo -e "\r\n" else # sphinx is fine, return http 503 /bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n" /bin/echo -e "Content-Type: Content-Type: text/plain\r\n" /bin/echo -e "\r\n" /bin/echo -e "sphinx is *down*.\r\n" /bin/echo -e "\r\n" fi
重启下xinetd服务
service xinetd restart
2:安装并配置haproxy
安装
yum -y install haproxy
配置文件/etc/haproxy/haproxy.cfg
#全局配置参数,进程级的,用来控制Haproxy启动前的一些进程及系统设置 global log 127.0.0.1 local2 #local2在/etc/rsyslog.conf中有一行local2.* /var/log/haproxy.log chroot /var/lib/haproxy pidfile /var/run/haproxy.pid user haproxy group haproxy daemon maxconn 4096 stats socket /var/lib/haproxy/stats #配置一些默认的参数,可以被frontend,backend,listen段继承使用 defaults mode http log global option dontlognull option log-health-checks //记录健康检测日志 option redispatch //在连接失败或断开情况下,允许当前会话被重新分发 retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 100000 #统计信息 listen haproxy-status 0.0.0.0:8888 mode http option httplog stats uri /status //统计页面url stats realm Global\ statistics stats auth test:123456 //登录用户和密码 #监听 listen proxy-sphinx 192.168.1.123:9312 mode tcp balance leastconn option tcpka option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www server sphinx1 192.168.1.124:9312 weight 1 check port 9322 inter 1s rise 2 fall 2 server sphinx2 192.168.1.125:9312 weight 1 check port 9322 inter 1s rise 2 fall 2
启动haproxy服务
service haproxy restart
访问http://192.168.1.123:8888/status 如看到如下类似界面,则表示成功了!