Graylog4.2集群部署完整教程

简介: Graylog4.2集群部署完整教程

GrayLog多节点集群架构如下

640.png

下面介绍Graylog4.2集群部署过程


基础环境准备


三台服务器:CentOS7.9的虚拟机

/data分区(LVM) 用于Elasticsearch日志数据存储

内存大小为6GB


IP地址和主机名如下:


  • 192.168.31.211 graylog01 graylog01.walkingcloud.cn
  • 192.168.31.212 graylog02 graylog02.walkingcloud.cn
  • 192.168.31.213 graylog03 graylog03.walkingcloud.cn


均已关闭SELINUX


640.jpg

640.jpg


一、配置MongoDB集群


1、三台均安装mongodb


cat > /etc/yum.repos.d/mongodb-org.repo << \EOF
[mongodb-org]
name=MongoDB Repository
baseurl=https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
yum install -y mongodb-org


640.jpg

2、三台均先启动mongodb


systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service
systemctl --type=service --state=active | grep mongod
firewall-cmd --add-port=27017/tcp --permanent --zone=public 
firewall-cmd --reload

640.jpg


3、主节点生成授权认证keyfile文件并拷贝到其它节点


openssl rand -base64 756 > /var/lib/mongo/access.keyfile
chown mongod:mongod /var/lib/mongo/access.keyfile
chmod 600 /var/lib/mongo/access.keyfile 
scp -rp /var/lib/mongo/access.keyfile root@graylog02:/var/lib/mongo/
scp -rp /var/lib/mongo/access.keyfile root@graylog03:/var/lib/mongo/


640.jpg

640.jpg

4、vi修改/etc/mongod.conf


以主节点为例,修改配置文件


vi /etc/mongod.conf
net:
  port: 27017
  bindIp: 192.168.31.211 
security:
  keyFile: /var/lib/mongo/access.keyfile
replication:
  replSetName: graylog-rs


640.jpg


graylog02修改成如下

640.jpg

graylog03修改成如下


640.jpg


5、初始化集群


这里为了本地能登录mongo


先将bindIp: 192.168.31.211修改为bindIp: 0.0.0.0
并重启服务
systemctl restart mongod.service



640.jpg


输入mongo进数据库


use admin
rs.initiate( {
   _id : "graylog-rs",
   members: [
      { _id: 0, host: "192.168.31.211:27017" },
      { _id: 1, host: "192.168.31.212:27017" },
      { _id: 2, host: "192.168.31.213:27017" }
   ]
})
rs.status()查看集群状态


640.jpg

6、创建graylog数据库并设置密码


#修改admin用户密码
use admin
db.createUser({user: "admin", pwd: "Admin@2021", roles: ["root"]})
db.auth("admin","Admin@2021")
#创建graylog数据库并设置密码
use graylog
db.createUser({
   user: "graylog", 
   pwd: "Graylog2021",
  "roles" : [{
      "role" : "dbOwner",
      "db" : "graylog"
    }, {
      "role" : "readWrite",
      "db" : "graylog"
    }]
})


640.jpg


7、将主节点bindIp配置恢复并重启mongod服务


将graylog01的bindIp修改成192.168.31.211并重启服务

这时使用账号和密码登录mongo


640.jpg

在graylog02 重启mongod服务,使graylog01重新变为Primary角色


二、搭建Elasticsearch集群


1、三台节点均以rpm包方式安装Elasticsearch


cd  /opt
wget https://mirrors.cloud.tencent.com/elasticstack/yum/elastic-7.x/7.16.2/elasticsearch-7.16.2-x86_64.rpm
rpm -ivh elasticsearch-7.16.2-x86_64.rpm
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
firewall-cmd --add-port=9200/tcp --permanent --zone=public 
firewall-cmd --reload



640.jpg

2、创建存储和日志文件夹


mkdir -p /data/elasticsearch/data
mkdir -p /data/elasticsearch/logs
chown -R elasticsearch:elasticsearch /data/elasticsearch
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml_default


640.jpg


3、修改elasticsearch.yml配置文件


vi/etc/elasticsearch/elasticsearch.yml


1)graylog01节点

#添加并修改成如下行


cluster.name: graylog-cluster
action.auto_create_index: false
node.name: graylog01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 192.168.31.211
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.31.211:9300", "192.168.31.212:9300", "192.168.31.213:9300"]
cluster.initial_master_nodes: ["graylog01"]


640.jpg

640.jpg


2)graylog02节点


cat  /etc/elasticsearch/elasticsearch.yml | grep -v "^#" | grep -v "^$"
cluster.name: graylog-cluster
action.auto_create_index: false
node.name: graylog02
node.master: false
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 192.168.31.212
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.31.211:9300", "192.168.31.212:9300", "192.168.31.213:9300"]


3)graylog03节点


cat  /etc/elasticsearch/elasticsearch.yml | grep -v "^#" | grep -v "^$"
cluster.name: graylog-cluster
action.auto_create_index: false
node.name: graylog03
node.master: false
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 192.168.31.213
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.31.211:9300", "192.168.31.212:9300", "192.168.31.213:9300"]


4、三个节点均修改jvm.options配置文件上内存大小


firewall-cmd --add-port=9300/tcp --permanent --zone=public 
firewall-cmd --reload
vim /etc/elasticsearch/jvm.options
设置jvm内存大小为物理内存的一半
并重启elasticsearch.service
systemctl restart elasticsearch.service


640.jpg

640.jpg


5、查看elasticsearch集群状态


curl -s -XGET 'http://192.168.31.211:9200/_cluster/health?pretty=true'
curl -s -XGET 'http://192.168.31.211:9200/_cat/nodes?v'


640.jpg


三、安装GraylogServer并配置GraylogServer集群


1、安装jdk,pwgen和graylog-server


yum install -y java-1.8.0-openjdk-headless.x86_64
yum install -y pwgen


640.jpg

640.jpg

rpm -ivh https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.rpm
yum install graylog-server -y

640.jpg

systemctl enable graylog-server
systemctl start graylog-server
cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf_default
pwgen -N 1 -s 96
XC0Epiv5SnWFdm82nsUWAJN3t2MHaFEaSFHd6RLPf1nzxwnmubT0n7NQdrK8jCDEOS05DtrkGHDDE61490OUJKBOOXIAT4LI
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password: Graylog@2021
10dfabb9595634675701865aa1c6e774d89d59f4a104ab128fbffcdaa3cf8f7b

640.jpg

2、修改graylog的主配置文件server.conf


主节点graylog01的配置如下


/etc/graylog/server/server.conf 
cat /etc/graylog/server/server.conf | grep -v "^#" | grep -v "^$"
is_master = true
node_id_file = /etc/graylog/server/node-id
password_secret = XC0Epiv5SnWFdm82nsUWAJN3t2MHaFEaSFHd6RLPf1nzxwnmubT0n7NQdrK8jCDEOS05DtrkGHDDE61490OUJKBOOXIAT4LI
root_password_sha2 = 10dfabb9595634675701865aa1c6e774d89d59f4a104ab128fbffcdaa3cf8f7b
root_timezone = Asia/Shanghai
bin_dir = /usr/share/graylog-server/bin
data_dir = /var/lib/graylog-server
plugin_dir = /usr/share/graylog-server/plugin
http_bind_address = 192.168.31.211:9000
http_publish_uri = http://192.168.31.211:9000/
elasticsearch_hosts = http://graylog01:9200,http://graylog02:9200,http://graylog03:9200
rotation_strategy = count
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 20
retention_strategy = delete
elasticsearch_shards = 4
elasticsearch_replicas = 0
elasticsearch_index_prefix = graylog
allow_leading_wildcard_searches = false
allow_highlighting = true
elasticsearch_analyzer = standard
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 8
outputbuffer_processors = 16
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://graylog:Graylog2021@graylog01:27017,graylog02:27017,graylog03:27017/graylog?replicaSet=graylog-rs
mongodb_max_connections = 1000
mongodb_threads_allowed_to_block_multiplier = 5
proxied_requests_thread_pool_size = 32

640.jpg

3、重启graylog-server服务,并开放9000 web端口


建议将配置文件scp到graylog02和graylog03上


640.jpg

firewall-cmd --add-port=9000/tcp --permanent --zone=public 
firewall-cmd --reload
systemctl restart graylog-server

640.jpggraylog02,graylog03节点修改如下三处即可


is_master = true
http_bind_address = 192.168.31.213:9000
http_publish_uri = http://192.168.31.213:9000/


640.jpg

登录Graylog主界面查看GrayLog集群情况


1、查看Nodes信息


640.jpg

2、查看Cluster信息


640.jpg


3、添加Input,可以设置成全局的Input


记得三台几点防火墙开放Input设置的端口,例如syslog1514


firewall-cmd --add-port=1514/udp --permanent --zone=public 
firewall-cmd --reload

640.jpg

640.jpg


640.jpg

Tips:修改graylog的jvm内存大小

640.jpg

640.jpg

本文参考如下链接完成


https://docs.graylog.org/v1/docs/multinode-setup
https://docs.mongodb.com/manual/tutorial/deploy-replica-set/
https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#std-label-deploy-repl-set-with-auth
https://cloud.tencent.com/developer/article/1615815
https://zhuanlan.zhihu.com/p/120698020
https://www.cnblogs.com/opsdemo/p/15035379.html


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
819 2
|
存储 算法 安全
第4章 数据库安全性——4.5 数据加密
第4章 数据库安全性——4.5 数据加密
|
监控 关系型数据库 Linux
|
9月前
|
监控 数据可视化 应用服务中间件
ELK 搭建实战:从 0 到 1 打通日志收集、分析与可视化
ELK日志分析平台实战指南 本文针对分布式系统日志管理痛点,详细介绍了ELK(Elasticsearch+Logstash+Kibana)开源日志分析平台的搭建与使用。文章从ELK三大组件的核心原理入手,包括Elasticsearch的倒排索引机制、Logstash的数据管道处理流程和Kibana的可视化功能。重点讲解了单机版ELK的环境准备、安装配置步骤,以及Nginx日志收集分析的具体实现方案。通过实战案例展示了如何创建索引模式、制作可视化图表和仪表盘。
1681 1
|
存储 运维 监控
开源日志Graylog
【10月更文挑战第21天】
2537 8
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
存储 应用服务中间件 Linux
开源日志管理系统Graylog之Sidecar功能实践
开源日志管理系统Graylog之Sidecar功能实践
1702 0
开源日志管理系统Graylog之Sidecar功能实践
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
存储 安全 Unix
Syslog 管理工具
Syslog是一种基于TCP/IP网络传输日志消息的标准协议,广泛应用于路由器、交换机、防火墙及Unix/Linux服务器等设备的日志管理。通过标准化的消息格式,Syslog实现了集中化日志收集、存储与分析,有助于提升网络性能、减少系统停机时间并强化安全策略。其核心组件包括Syslog侦听器(接收日志)、数据库(存储与查询)和过滤工具(分析特定日志)。此外,Syslog支持8个优先级分类,便于快速定位关键问题。借助日志管理工具如EventLog Analyzer,管理员可实现实时告警、日志归档、合规性报告等功能,从而更高效地监控和维护网络基础设施。
1748 2
|
存储 运维 安全
什么是日志审计系统?性价比较高的日志审计系统有哪些?
日志审计系统主要是通过对信息系统中的各种信息进行采集分析和存储管理的,通过日志统计和汇总等功能实现对信息系统日志的全面审计;规范的日志管理对企业是否合规的评判具有重要帮助。
301 0
什么是日志审计系统?性价比较高的日志审计系统有哪些?

热门文章

最新文章