【实践】使用Nginx作为GrayLog日志接入的负载均衡

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
日志服务 SLS,月写入数据量 50GB 1个月
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 【实践】使用Nginx作为GrayLog日志接入的负载均衡

如下图所示

(图片点击放大查看)

在Graylog集群环境上,日志源将日志发送到负载均衡,由负载均衡来分配日志发送到GrayLog具体哪个节点上,实现各节点接入能力和处理能力平衡均分

(图片点击放大查看)

下面采用nginx作为GrayLog 日志接入的负载均衡

1、配置nginx 的yum源

参考nginx官方文档

http://nginx.org/en/linux_packages.html#RHEL

具体命令如下

vim /etc/yum.repos.d/nginx.repo
添加如下行
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

(图片点击放大查看)

安装nginx

yum install nginx --enablerepo=nginx-stable --disablerepo=epel

(图片点击放大查看)

(图片点击放大查看)

2、配置nginx下stream配置文件

vim /etc/nginx/nginx.conf 
将http字段中的include /etc/nginx/conf.d/*.conf;移到上方

(图片点击放大查看)

然后

cd /etc/nginx/conf.d/
mv default.conf /opt
vim  graylog_stream.conf

添加如下行

stream {
      log_format streamlog_json escape=json 
                     '{"timestamp":"$time_iso8601",'
                     '"remote_addr":"$remote_addr",' 
                     '"protocol":"$protocol",' 
                     '"status":"$status",' 
                     '"bytes_sent":"$bytes_sent",' 
                     '"bytes_received":"$bytes_received",'
                     '"session_time":"$session_time",' 
                     '"upstream_addr":"$upstream_addr",'
                     '"upstream_bytes_sent":"$upstream_bytes_sent",' 
                     '"upstream_bytes_received":"$upstream_bytes_received",'
                     '"upstream_connect_time":"$upstream_connect_time"'
                     '}';
      access_log /var/log/nginx/stream-access.log  streamlog_json ;
      access_log  syslog:server=10.10.253.101:2514 streamlog_json ;
      open_log_file_cache off;
      upstream graylog_servers{
        server 10.10.253.101:9000;
        server 10.10.253.102:9000 backup;
        server 10.10.253.103:9000 backup;
      }
      server {
        listen       9000;
        proxy_pass   graylog_servers;
      }
      upstream server_input1_switchlog {
          server 10.10.253.101:1515;
          server 10.10.253.102:1515;
          server 10.10.253.103:1515;
      }
      server {
         listen 1515 udp;
         proxy_pass server_input1_switchlog;
      }
      upstream server_input2_firewall-log {
        server 10.10.253.101:1514;
        server 10.10.253.102:1514;
        server 10.10.253.103:1514;
      }
      server {
            listen 1514 udp;
            proxy_pass server_input2_firewall-log;
      }
}

3、启动nginx服务

systemctl enable nginx
systemctl start nginx
firewall-cmd --add-port=1514/udp --permanent 
firewall-cmd --add-port=1515/udp --permanent 
firewall-cmd --add-port=9000/tcp --permanent 
firewall-cmd --reload

(图片点击放大查看)

这样就可以用nginx来实现接入日志时的负载均衡效果

相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
293 43
|
4月前
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
113 4
|
2月前
|
弹性计算 负载均衡 网络协议
阿里云SLB深度解析:从流量分发到架构优化的技术实践
本文深入探讨了阿里云负载均衡服务(SLB)的核心技术与应用场景,从流量分配到架构创新全面解析其价值。SLB不仅是简单的流量分发工具,更是支撑高并发、保障系统稳定性的智能中枢。文章涵盖四层与七层负载均衡原理、弹性伸缩引擎、智能DNS解析等核心技术,并结合电商大促、微服务灰度发布等实战场景提供实施指南。同时,针对性能调优与安全防护,分享连接复用优化、DDoS防御及零信任架构集成的实践经验,助力企业构建面向未来的弹性架构。
257 76
|
3月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
351 90
|
1月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
91 21
|
1月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
71 14
|
1月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
70 11
|
3月前
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
204 5
|
3月前
|
SQL 存储 自然语言处理
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
让跨 project 联查更轻松,SLS StoreView 查询和分析实践
|
3月前
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?