文档章节

Graylog:集中日志解决方案

EDIAGD
 EDIAGD
发布于 2016/10/26 15:12
字数 1437
阅读 3279
收藏 5

一:为什么需要集中日志解决方案?

在公司服务机子部署越来越多的情况下,让我们来想想会遇到的问题:

  • 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力
  • 日志数据分散在多个系统,难以查找
  • 日志数据量大,查询速度慢
  •  一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据
  •  数据不够实时
  • 很难对数据进行挖掘,分析,业务告警,审计

这些问题的存在让开发以及运维人员很是头痛,严重影响效率!

二:什么是graylog技术栈?

为了解决上述问题,我们需要一个日志的集中管理方案,graylog技术栈:

  • Collector-sidecar(收集日志)或者syslog
  • Mongodb(存储日志源文件)
  • Elasticsearch(提供搜索日志)
  • Graylog2.1.1(搜索和视图展示日志,告警和权限)

有了这些,我们就能把日志先收集起来,进行我们想要的分析之后,web的形式展示出来,提供查询!

三:graylog的安装部署

安装环境:linux centOS系统安装,已安装JDK1.8版本,安装启动顺序

  1. 安装部署mongodb
  2. 安装部署elasticsearch
  3. 安装部署graylog
  4. 安装部署Graylog Collector Sidecar

1:安装部署mongodb

参考我的博文:linux下安装mongodb  https://my.oschina.net/baishi/blog/758367

2:安装部署elasticsearch

(1)下载jar包

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz

如果报错

执行

wget --no-check-certificate

https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz

(2)解压jar包

tar -zxvf elasticsearch-2.3.5.tar.gz

(3)修改elasticsearch.yml配置文件

elasticsearch-2.3.5安装目录conf下执行

vim elasticsearch.yml

cluster.name: graylog                              #集群名称建议命名graylog,便于识别区分

node.name: elasticsearch-node-92         # elasticsearch集群节点名称

network.host: 自己安装节点IP                 # 绑定节点IP

http.port: 9200                                         # 外部访问端口,默认,也可以安全考虑修改

discovery.zen.ping.multicast.enabled: false   #多播发现方式关闭,因为graylog采用单播方式发现elasticsearch集群方式

discovery.zen.ping.unicast.hosts                   #多个节点用逗号隔开

discovery.zen.minimum_master_nodes: 3    # elasticsearch集群节点,最少选举数,这个数一定要设置为整个集群节点个数的一半加1,即N/2+1,必须为奇数

(4)启动elasticsearch服务

新建一个elasticsearch用户,出于安全考虑,elasticsearch服务不能使用root用户启动

创建elasticsearch用户组及elasticsearch用户,执行

groupadd elasticsearch

useradd elasticsearch -g elasticsearch -p elasticsearch

(其中-g使用户属于某个组,-p为新用户使用加密密码)

更改elasticsearch-2.3.5文件夹及内部文件的所属用户及组为elasticsearch:elasticsearch

chown -R elasticsearch:elasticsearch  elasticsearch-2.3.5

切换用户

su elasticsearch

在elasticsearch-2.3.5/bin目录下执行

./elasticsearch  -d

解释:-d:服务在后台启动

(5)检查elasticsearch服务状态

浏览器访问:http://elasticsearch节点所在IP:9200/

证明服务启动成功

(6)注意事项

elasticsearch集群安装,各个节点,要保证elasticsearch.yml中cluster.name: graylog,集群名称一致   

如果想停止服务

ps -ef | grep elastic

 kill -9 进程号

3:安装部署graylog

(1)下载安装包

 wget https://packages.graylog2.org/releases/graylog/graylog-2.1.1.tgz

(2)解压安装包

tar -zxvf graylog-2.1.1.tgz

(3)修改配置文件

修改安装目录下 graylog.conf.example 文件

vim graylog.conf.example

web_listen_uri 值是graylog启动成功后,web服务访问地址

rest_listen_uri 的值,是graylog启动成功后,api访问地址

其中 password_secret 的值用命令生成

 pwgen -N 1 -s 96

其中root_password_sha2 的值使用命令生成

 echo -n 123456| sha256sum  (这里对密码123456哈希加密)

elasticsearch_cluster_name 值必须是elasticsearch配置文件中的cluster_name

elasticsearch_discovery_zen_ping_unicast_hosts 填写elasticsearch地址,如果是多个,用逗号隔开

elasticsearch_discovery_zen_ping_multicast_enabled = false 多播模式关闭

elasticsearch集群分片数量

elasticsearch绑定的节点IP

mongodb安装服务的ip地址

 设置告警邮件发送者信息

(4)复制配置文件

 因为graylog安装bin目录下,默认启动配置文件

配置文件路径:/etc/graylog/server/server.conf

所以需要将 graylog.conf.example 复制到/etc/graylog/server/目录下,并且改名 server.conf

执行命令:

mkdir -p /etc/graylog/server/ 

cp graylog.conf.example /etc/graylog/server/server.conf

(5)启动graylog

在graylog安装bin目录下执行

./graylogctl start

查看日志,在graylog安装目录下执行

tail -200f /log/graylog-server.log

如果报错:

原因:

在mongodb版本2.6之后,是需要日志journaling设置的,而默认情况下是关闭的

解决办法:

在mongodb启动命令加上 --journal

最后启动命令:

./mongod --dbpath=/usr/local/mongodb/data/ --fork --logpath=/usr/local/mongodb/logs --storageEngine=mmapv1 --journal

重启mongodb后,重启graylog服务即可!

graylog启动成功,日志输出

如果需要停止graylog服务,在graylog安装bin目录下执行

 ./graylogctl stop

(6)访问graylog

graylog启动成功后,浏览器访问:graylog安装IP:9000

用户名:admin (配置文件中)

密码:123456 (配置文件中 root_password_sha2 加密123456值)

四:总结

到此,基础的集中日志管理graylog安装完毕!,后续将继续介绍:

安装部署Graylog Collector Sidecar 收集应用日志

采用syslog收集日志方式

graylog一些使用,包括日志截取,告警等

之前也实践过ELK技术栈,后来选型graylog,是基于graylog带有的权限管理,和告警功能比较完善!

目前遗留的问题,是后期随着时间的积累,怎样去维护历史日志数据,欢迎有相关经验的朋友,一起讨论!

 

© 著作权归作者所有

共有 人打赏支持
EDIAGD
粉丝 49
博文 149
码字总数 58327
作品 0
嘉定
后端工程师
私信 提问
部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集、检索、可视化 Dashboard。本节将实践用 Graylog 来管理 Docker 日志。 Graylog 架构 Graylog 架构如下图所示: Gray...

CloudMan6
2017/11/10
0
0
阿里云上搭建Graylog日志服务器的几个注意事项

1、故障现象 因项目需要,需要配置集中的日志服务器,本来打算上ELK,但后面申请的资源太少,改用更轻量级的日志服务器Graylog,关于Graylog的介绍以及安装部署我就不在这里写了,参考官方文...

冰冻vs西瓜
2018/08/01
0
0
Graylog2+Elasticsearch+Nxlog

博客地址已转移至:http://cocojoey.lofter.com/post/1eff2f40_10a6d448 这里今后不再更新。。。。。。。。。。。。。 日志管理工具:收集,解析,可视化 Elasticsearch - 一个基于Lucene的文...

小杰linux
2017/07/19
0
0
如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

上一节已经部署好了 Graylog,现在学习如何用它来管理日志。 首先启动测试容器。 docker run -d --log-driver=gelf --log-opt gelf-address=udp://localhost:12201 --log-opt tag="log-test......

CloudMan6
2017/11/13
0
0
graylog2+mongodb构建集中管理日志服务器

graylog2 是一个开源的日志存储系统,是由java语言编写的server,能够接收TCP,UDP,AMQP的协议发送的日志信息,并且基于mongodb数据库服务器快速存储,能够通过一个基于ruby编写的web管理界面,让轻...

johnsz
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ToolBar控件在C#开发APP中的使用方式【附案例源码】——Smobiler移动开发平台

控件说明 底部工具栏控件。 效果演示 其他效果 该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾。 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向。 Flex...

amanda112
25分钟前
1
0
模块

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等...

gtandsn
32分钟前
1
0
代码之外的生存指南,这6本书助你提升软实力

上期盟主向大家推荐了6本技术类书籍,引起了热烈反响。那么,工作之余,还有哪些好书能够为你打开更多的精彩世界呢?本期,多位知名企业的技术大咖将继续为您带来好书推荐,在新的一年里,为...

安卓绿色联盟
35分钟前
3
0
5分钟用Jitpack发布开源库

作者: 菜刀文 Demo:https://github.com/helen-x/JitPackReleaseDemo 项目开发中会用到很多开源库, 他们一般通过Maven/Gradle依赖进来的. 演而优则唱,开发越来越溜以后, 你是否也蠢蠢欲动,想发...

SuShine
41分钟前
2
0
状态码 301 与 302的区别

302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。 而301重定向是永久的重定向,搜索引擎在抓取新的内容的同...

小草先森
47分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部