Graylog+elasticsearch+mongodb集群+nginx负载均衡前端

时间:2022-08-27 10:03:50

网上有张图画的很好,搜索有关它的配置文章,google里有几篇英文的,都是依靠haproxy等或别的什么实现,没有纯粹的Graylog+elasticsearch+mongodb集群,项目需要,只有自己摸索一下了,搞好发现其实也很简单。

Graylog+elasticsearch+mongodb集群+nginx负载均衡前端

整个结构大概就是上图样子,nginx的负载均衡可以参考我前面的文章。将后端的web集群换成graylog集群地址就可以了。

下面是4台集群的配置效果图,完成后的效果是随便访问那个IP,都可以访问到所有的日志,节点可以根据需求任意添加,无论graylog,es,还是mongodb都可以。

Graylog+elasticsearch+mongodb集群+nginx负载均衡前端

配置过程如下,难点在于graylog的集群,安装软件的过程可以参考前面的安装过程

========================================elasticsearch=================================

#vim /etc/elasticsearch/elasticsearch.yml

node.master: true    #两台机器设置成master,其余节点此项不写

network.bind_host: 192.168.1.231  #绑定实际的服务器IP地址,不是集群的IP

cluster.name: graylog        #与/etc/graylog/server/server.conf 中的elasticsearch_cluster_name 集群名称必须相同

discovery.zen.minimum_master_nodes: 2  #4台机器就2个够了

discovery.zen.ping.multicast.enabled: false

discovery.zen.ping.unicast.hosts: ["192.168.1.231:9300","192.168.1.232:9300","192.168.1.233:9300","192.168.1.234:9300"]

=================================================mongodb========================================

vim /etc/mongod.conf   #所有节点配置文件相同

replication:

replSetName: graylog

systemLog:

destination: file

logAppend: true

path: /var/log/mongodb/mongod.log

storage:

dbPath: /var/lib/mongo

journal:

enabled: true

processManagement:

fork: true  # fork and run in background

pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile

net:

port: 27017

#mongo//进入数据库配置

rs.initiate()

rs.add("192.168.1.231:27017");

rs.add("192.168.1.232:27017");

rs.addArb("192.168.1.233:27017");

rs.add("192.168.1.234:27017");

graylog:PRIMARY>  rs.config();   rs.config();

{

"_id" : "graylog",

"version" : 4,

"protocolVersion" : NumberLong(1),

"members" : [

{

"_id" : 0,

"host" : "node231:27017",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 1,

"host" : "192.168.1.232:27017",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 2,

"host" : "192.168.1.234:27017",

"arbiterOnly" : false,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

},

{

"_id" : 3,

"host" : "192.168.1.233:27017",

"arbiterOnly" : true,

"buildIndexes" : true,

"hidden" : false,

"priority" : 1,

"tags" : {

},

"slaveDelay" : NumberLong(0),

"votes" : 1

}

],

"settings" : {

"chainingAllowed" : true,

"heartbeatIntervalMillis" : 2000,

"heartbeatTimeoutSecs" : 10,

"electionTimeoutMillis" : 10000,

"getLastErrorModes" : {

},

"getLastErrorDefaults" : {

"w" : 1,

"wtimeout" : 0

},

"replicaSetId" : ObjectId("578c49834bd6994271fcfad7")

}

}

============================graylog===================================

#vim /etc/graylog/server/server.conf

password_secret =0b4e7a0e5fe84ad35fb5f95b9ceeac790b4e7a0e5fe84ad35fb5f95b9ceeac79

root_password_sha2 =ed02457b5c41d964dbd2f2a609d63fe1bb7528dbe55e1abf5b52c249cd735797

elasticsearch_cluster_name = graylog

elasticsearch_discovery_zen_ping_multicast_enabled = false

elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.1.231:9300,192.168.1.232:9300,192.168.1.233:9300,192.168.1.234:9300

mongodb_uri = mongodb://192.168.1.231:27017,192.168.1.232:27017,192.168.1.233:27017,192.168.1.234:27017/graylog

elasticsearch_shards = 4

elasticsearch_replicas = 1

mongodb_useauth = false       #默认为false,可不必添加,生产环境必须

=====================测试=============================

使用curl命令操作elasticsearch

# curl -X GET 'http://192.168.1.231:9200/_cat/nodes'

192.168.1.234 192.168.1.234  7 13 0.06 d * Marrina

192.168.1.233 192.168.1.233  7 21 0.12 d m Banshee

192.168.1.231 192.168.1.231  8 23 0.43 d m Katie Power

192.168.1.232 192.168.1.232  7 22 0.15 d m Dark Phoenix

192.168.1.231 192.168.1.231 20 23 0.43 c - graylog-8562414f-0f9b-48d9-b0c6-9faab367832e

]# curl -X GET 'http://192.168.1.231:9200/_cluster/health?pretty=true'

{

"cluster_name" : "graylog",

"status" : "green",

"timed_out" : false,

"number_of_nodes" : 4,

"number_of_data_nodes" : 3,

"active_primary_shards" : 4,

"active_shards" : 4,

"relocating_shards" : 0,

"initializing_shards" : 0,

"unassigned_shards" : 0,

"delayed_unassigned_shards" : 0,

"number_of_pending_tasks" : 0,

"number_of_in_flight_fetch" : 0,

"task_max_waiting_in_queue_millis" : 0,

"active_shards_percent_as_number" : 100.0

}

mongodb状态查询

graylog:PRIMARY> rs.status()

{

"set" : "graylog",

"date" : ISODate("2016-07-18T09:14:33.419Z"),

"myState" : 1,

"term" : NumberLong(2),

"heartbeatIntervalMillis" : NumberLong(2000),

"members" : [

{

"_id" : 0,

"name" : "node231:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 19532,

"optime" : {

"ts" : Timestamp(1468833273, 2),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2016-07-18T09:14:33Z"),

"electionTime" : Timestamp(1468813741, 1),

"electionDate" : ISODate("2016-07-18T03:49:01Z"),

"configVersion" : 5,

"self" : true

},

{

"_id" : 1,

"name" : "192.168.1.232:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 8272,

"optime" : {

"ts" : Timestamp(1468833271, 4),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2016-07-18T09:14:31Z"),

"lastHeartbeat" : ISODate("2016-07-18T09:14:31.802Z"),

"lastHeartbeatRecv" : ISODate("2016-07-18T09:14:31.765Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node231:27017",

"configVersion" : 5

},

{

"_id" : 2,

"name" : "192.168.1.234:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 8257,

"optime" : {

"ts" : Timestamp(1468833271, 4),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2016-07-18T09:14:31Z"),

"lastHeartbeat" : ISODate("2016-07-18T09:14:31.736Z"),

"lastHeartbeatRecv" : ISODate("2016-07-18T09:14:31.802Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "192.168.1.232:27017",

"configVersion" : 5

},

{

"_id" : 3,

"name" : "192.168.1.233:27017",

"health" : 1,

"state" : 7,

"stateStr" : "ARBITER",

"uptime" : 8092,

"lastHeartbeat" : ISODate("2016-07-18T09:14:31.802Z"),

"lastHeartbeatRecv" : ISODate("2016-07-18T09:14:32.548Z"),

"pingMs" : NumberLong(0),

"configVersion" : 5

}

],

"ok" : 1

}

graylog:PRIMARY>

Graylog+elasticsearch+mongodb集群+nginx负载均衡前端的更多相关文章

  1. 基于【 centos7】四 || FastDFS集群+Nginx负载均衡

    1. 架构设计 1.1 架构图 FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用F ...

  2. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

  3. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  4. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)! 首先自己从宏观把控一下,通过上网科普自 ...

  5. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)

    [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...

  6. 架构之路:nginx与IIS服务器搭建集群实现负载均衡(三)

    参考网址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 [前言] 在<架构之路:nginx与IIS服务器搭 ...

  7. Nginx实现tomcat集群进行负载均衡

    一.背景 随着业务量和用户数量的激增,单一的tomcat部署应用已经无法满足性能需求,而且对于每次发布项目期间服务不可用的问题也凸显,既然出现了这个问题,那么我们本文就借助nginx来完美的解决这个问 ...

  8. Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡   分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...

  9. 搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    转载:https://www.cnblogs.com/xiongze520/p/10308720.html 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟 ...

随机推荐

  1. iOS开发之UIImage等比缩放

    iOS开发之UIImage等比缩放 评论功能真不错 评论开通后,果然有很多人吐槽.谢谢大家的支持和关爱,如果有做的不到的地方,还请海涵.毕竟我一个人的力量是有限的,我会尽自己最大的努力大家准备一些干货 ...

  2. validate插件:验证密码没有空格 用户名是5-10位 至少包含数字和大小写字母中的两种字符

    //校验密码是否含有空格 jQuery.validator.addMethod("notblank", function(value, element) { var pwdblan ...

  3. Python学习第五天

    复习内容: · 迭代器&生成器 · 装饰器 · Json & pickle 数据序列化 · 软件目录结构规范yi 一.生成器 1.   列表生成式: 2.   生成器的定义:在Pyth ...

  4. python爬图

    闲的无事,看着知乎里种种python优点,按捺不住,装起python3.4. 网上找了点爬行图片的代码,修改至兼容3.4,成功爬行指定url所有jpg图片,代码段如下: import os impor ...

  5. awk使用方法与案例介绍

    一.awk简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切 ...

  6. 清华机试中手机键盘问题求解 java 和 c

    题目描述:按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次.如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需 ...

  7. VS2015 搭建 Asp&period;net core 开发环境

    1.首先你得装个vs2015 并且保证已经升级至 update3及以上(此处附上一个vs2015带up3的下载链接: ed2k://|file|cn_visual_studio_enterprise_ ...

  8. Python library not found&colon; libpython2&period;7mu&period;so&period;1&period;0

    在使用pyinstaller生成python可执行文件的时候,包错误,提示有几个依赖的库找不到:Python library not found: libpython2.7mu.so.1.0 参考st ...

  9. lvs原理及各种调度算法详解

    LVS原理详解 LVS原理详解 LVS简介 LVS结构与工作原理 一.LVS的结构 二.LVS内核模型 三.LVS的包转发模型 1.NAT模型: 2.DR模型: 3.TUN模型: 四.LVS的调度算法 ...

  10. 【WPF】ListView自定义分页

    XAML: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDe ...