前言
为了提高日志采集服务系统高可用和负载均衡 使用了Nginx来实现
采集系统架构如下

安装
步骤 1: 使用 yum 安装依赖包
sudo yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel gcc gcc-c++
步骤 2: 下载 Nginx
/opt/software » wget http://nginx.org/download/nginx-1.12.2.tar.gz
步骤 3: 解压
tar -zxvf nginx-1.12.2.tar.gz -C /opt/module
步骤 4: 编译和安装
cd /opt/module/nginx-1.12.2
su root
./configure --prefix=/usr/local/webserver/nginx
make&&make install
步骤 5: 启动 Nginx
cd /usr/local/webserver/nginx
sbin/nginx
sbin/nginx -s stop
sbin/nginx -s reload
注意:
• Nginx 默认使用的是 80 端口, 由于非root用户不能使用 1024 以内的端口, 所以建议使用 root 用户启动 Nginx
• 如果使用普通用户启动 Nginx, 需要先执行下面的命令来突破上面的限制:sudo setcap cap_net_bind_service=+eip /usr/local/webserver/nginx
步骤 6: 查看是否启动成功
[root@node07 nginx-1.12.2]# netstat -an | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
unix 2 [ ] DGRAM 88059
[root@node07 nginx-1.12.2]# ps -ef | grep nginx
root 19472 1 0 Jul21 ? 00:00:00 nginx: master process sbin/nginx
nobody 19473 19472 0 Jul21 ? 00:00:03 nginx: worker process
root 23479 16485 0 09:19 pts/0 00:00:00 grep --color=auto nginx
通过网页访问: http://node07

配置负载均衡
步骤 1: 修改/usr/local/webserver/nginx/conf/nginx.conf
增加如下配置:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 配置上游服务器: 其实就被代理的服务器, springboot
upstream logserver{
server node06:8686 weight=1;
server node07:8686 weight=1;
server node08:8686 weight=1;
}
server {
listen 80;
server_name 192.168.2.168;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
# 配置代理
proxy_pass http://logserver;
proxy_connect_timeout 10;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
步骤 2: 分发数据采集服务器的 jar 包
开发好的日志采集服务 springboot服务
步骤 3: 启动 Ngin
步骤 4: 分别在 3 个节点启动 jar 为了方便启动制作统一启动脚本logCluster.sh
vim ~/bin/logCluster.sh
#!/bin/bash
case $1 in
"start"){
for i in node06 node07 node08
do
echo "========启动日志服务: $i==============="
ssh $i "source /etc/profile ; java -jar /opt/jars/log-service.jar >/dev/null 2>&1 &"
done
};;
"stop"){
for i in node06 node07 node08
do
echo "========关闭日志服务: $i==============="
ssh $i "ps -ef|grep log-service.jar | grep -v grep|awk '{print \$2}'|xargs kill" > /dev/null 2>&1
done
};;
*)
{
echo 启动姿势不对, 请使用参数 start 启动日志服务, 使用参数 stop 停止服务
};;
esac
启动脚本
logCluster.sh start
步骤 5: 做测试
查看落盘目录中是否有产生的日志.
网友评论