系列文章目录
文章目录
前言
接上篇文章内容,本章主要以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学习内容,写出对应的一键部署脚本,方便运维部署管理,以及后续版本更新只需要更新包即可一步安装。