日志平台--graylog搭建、nginx代理

系列文章目录

第一章 搭建es集群
第二章 mongodb搭建



前言

接上篇文章内容,本章主要以graylog高可用的搭建为主,详细内容如下~


一、日志平台架构图

在这里插入图片描述

二、graylog介绍

1.为什么选择graylog?

Graylog是一款开源的日志管理和分析平台,可以用于收集、存储和分析各种类型的日志数据。与Filebeat不同的是,Graylog使用GELF协议来接收和处理日志数据,该协议可以扩展支持各种数据类型的日志数据,它还提供了多种流行的日志采集器插件,如syslog、beats、Raw等,这些插件可以直接与graylog平台继承,实现自动化的日志数据采集,因此它已经具备了类似于Filebeat的日志收集功能,所以在使用Graylog平台时,通常不需要部署Filebeat来进行日志收集,

2.日志的采集方式

通常日志采集有两种方式,侵入式采集和非侵入式采集日志
	侵入式采集: 需要在设备或应用程序代码上进行特定的安装或修改,以便于能够获取更加细致和精准的日志信息。比如说,可以通过使用系统调用和内核模块的方式来获取更加丰富的信息。风险过大,使用时需要评估风险
	非侵入式采集: 不需要对被监控的设备或应用程序进行修改或者安装额外的软件,通过在系统或网格层面上拦截和获取日志信息,它们能够抓取并收集设备或应用程序产生的日志信息而不对其本身造成任何影响。其中elk、graylog都属于非侵入式日志采集平台。

3.graylog-server部署

1)、下载所需要的rpm包

	graylog官网地址
		https://www.graylog.org/
	
	下载对应的graylog-server rpm安装包
		https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm
		下载graylog-server-3.2.6-1.noarch.rpm
	
	下载对应的graylog-sidecar rpm安装包
		 wget https://github.com/Graylog2/collector-sidecar/releases/download/1.1.0/graylog-sidecar-1.1.0-1.x86_64.rpm
	
	下载filebeat rpm安装包
		 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.3-x86_64.rpm
	

2)、通过ansible-playbook安装graylog-server
在这里插入图片描述
部分ansible-playbook剧本示例 完整的playbook文件见博客资源,自行下载即可
通过playbook安装的好处,以后像部署高版本的graylog,只需要下载对应的包并放到对应的安装位置,执行ansible剧本即可完整安装。

- name: config graylog server config
  template:
    src: server.conf.j2
    dest: "{{ CONFIG }}/server.conf"
- name: config graylog server start config
  template:
    src: sys-graylog-server.j2
    dest: "{{ ENV_CONFIG }}/graylog-server"
- name: install start shell
  template:
    src: startup.sh.j2
    dest: "{{ HOME }}/bin/startup.sh"
    mode: 0755
- name: install stop shell
  template:
    src: stop.sh.j2
    dest: "{{ HOME }}/bin/stop.sh"
    mode: 0755

3)、生成password_secret与root_password_sha2密文,配置文件需要

	yum -y  install pwgen
	pwgen -N -1 -s 40 1  #生成password_secret
	echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1 #生成root_password

4)、修改对应的配置文件

	is_master = true #如果不是主节点则为false 两台graylog-server机器此处要不一致
	node_id_file = /etc/graylog/server/node-id
	password_secret =q5ZVnwLE1Ghds9p8JTVpO XjL3N238daZ3yPTPjhs #步骤三生成的
	root_username = admin  #用户
	root_password_sha2 =8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 #步骤三生成的
	web_enable = true
	root_timezone = Asia/Shanghai #时区,不修改差8h
	bin_dir = /usr/share/graylog-server/bin
	data_dir = /var/lib/graylog-server
	plugin_dir = /usr/share/graylog-server/plugin
	http_bind_address = ip:9000  #绑定主graylog的ip
	http_publish_uri = http://ip:9000/  #访问时的url地址
	#没密码写法
	elasticsearch_hosts = http://ip:9200,http://ip:9200,http://ip:9200
	#有密码写法
	elasticsearch_hosts=http://用户名:密码@ip:9200,ip:9200,ip: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 = false
	elasticsearch_analyzer = standard
	output_batch_size = 500
	output_flush_interval = 1
	output_fault_count_threshold = 5
	output_fault_penalty_seconds = 30
	processbuffer_processors = 5
	outputbuffer_processors = 3
	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://ip:27017,ip:27017,ip:27017/graylog?replicaSet=graylog #因为在mongo中未创建graylog用户,因此此处没有使用
	#有密码写法
	mongodb://graylog:Graylog_1234@ip:27017,ip:27017,ip:27017/graylog?replicaSet=graylog #见mongodb集群搭建
	mongodb_max_connections = 1000
	mongodb_threads_allowed_to_block_multiplier = 5
	proxied_requests_thread_pool_size = 32

5)、启动graylog-server

	systemctl daemon-reload
	systemctl start graylog-server
	systemctl enable graylog-server

6)、nginx代理两台graylog机器

nginx的安装不做描述
upstream graylog_servers {
    server ip:9000;
    server ip:9000;
}
server {
    listen 8080;
    server_name graylog-test.com;

    location / {
        proxy_pass http://graylog_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
重新加载nginx
/export/server/nginx/sbin/nginx -t
/export/server/nginx/sbin/nginx -s reload

7)、访问graylog-web界面

	http://xxxx:8080
	用户admin  密码是root_password_sha2的密码

4.graylog-sidecar部署

1、在web界面中获取server_api_token,该token部署sidecar有用,必须先获取
创建token
在这里插入图片描述
在这里插入图片描述
2、部署的部分脚本如下所示,在agent机器上执行即可。完整的脚本见博客资源,自行下载即可

在这里插入图片描述

总结

以上就是graylog-server、graylog-sidecar部署的过程,结合之前的ansible和shell学习内容,写出对应的一键部署脚本,方便运维部署管理,以及后续版本更新只需要更新包即可一步安装。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值