Docker安装Graylog

Graylog简介

Graylog是一个开源且完整的日志聚合、管理工具,提到日志管理想必大家都会想到ELK平台,Graylog功能和ELK类似,但又比ELK要易用,相对的日志分析能力以及一些功能没有ELK强大。所以Graylog与ELK各有优劣,ELK被诟病的地方主要是不善于处理多行日志,同时也不能保留原始日志格式,只能把原始日志分字段保存,因为不符合正则表达式匹配的日志行,会被全部丢弃。

而Graylog则更擅长处理多行日志,支持原始日志格式的采集,在采集后可以再添加字段,例如http_status_code,response_time等等。除此之外,Graylog还支持自己开发的日志采集脚本,这一点带来了很大的自由度。在安装方面Graylog提供了一体化方案,安装方便,不像ELK需要搭建3个独立系统从而带来系统间的集成问题。

Graylog基本架构图如下:

从架构图的左边部分可以看到,设备或应用的日志数据通过网络传输的方式发送到Graylog服务器上,然后我们可以从浏览器上查看日志数据。图中的右边部分可以看到有两个数据库MongoDB和Elasticsearch,其中MongoDB主要用于存储Graylog的配置数据和元数据,而日志数据则是存储在Elasticsearch中,同时Elasticsearch也作为日志数据的搜索引擎。

Graylog也很好的支持集群,集群架构图如下:

Graylog更细致的架构图如下:

官方文档地址:

http://docs.graylog.org/en/3.0/pages/architecture.html


Graylog搭建

在上一小节中,我们简要介绍了Graylog,知道了这是一个什么工具,本小节我们就来搭建一个Graylog服务。首先到官网查看安装方式,官网地址如下:

https://www.graylog.org/

Graylog官方提供了多种安装方式,官网截图:

我这里安装的是当前最新的3.0版本,安装方式为Docker,官方Docker安装文档地址如下:

http://docs.graylog.org/en/stable/pages/installation/docker.html

Graylog配置项官方文档如下:

http://docs.graylog.org/en/stable/pages/configuration/server.conf.html

因为本文使用Docker来进行安装,所以需要提前准备好Docker环境。除此之外,还需要先搭建好MongoDB和Elasticsearch服务,虽然官方提供了一体化的安装方式,但是通常不会使用一体化的安装,而是将MongoDB和Elasticsearch独立安装,因为这两个组件是通用的服务,大多数情况下不仅Graylog服务需要用到,其他的一些项目或服务也都可能会用到,而且单独安装也方便于环境调优。关于Docker环境的安装以及这两个服务的搭建可以参考我另外几篇文章,本文不进行赘述:


以下是我的安装步骤:

1.首先创建一个docker-compose.yml文件,编辑文件内容如下:

version: ‘2‘
services:
  # Graylog: https://hub.docker.com/r/graylog/graylog/
  graylog:
    image: graylog/graylog:3.0
    environment:
      # 配置项需以GRAYLOG_开头,并且是全大写的
      # 密码加密盐值,不能小于16个字符
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      # 用户名配置项,默认为admin
      - GRAYLOG_ROOT_USERNAME=admin
      # 此处的密码是经过SHA2算法加密后的密码,默认为admin
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      # 这里需要填一个可以在外部访问的地址,我这里填的是宿主机的地址,否则无法通过浏览器访问
      - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.190.129:9000/
      # 配置Elasticsearch连接地址,多节点使用逗号分隔
      - GRAYLOG_ELASTICSEARCH_HOSTS=http://192.168.190.129:9200
      # 配置MongoDB连接地址,多节点使用逗号分隔
      - GRAYLOG_MONGODB_URI=mongodb://192.168.190.129:27017/graylog
    ports:
      # Graylog web interface and REST API
      - 9000:9000
      # Syslog TCP
      - 1514:1514
      # Syslog UDP
      - 1514:1514/udp
      # GELF TCP
      - 12201:12201
      # GELF UDP
      - 12201:12201/udp

通常我们都不会使用默认的密码,使用如下命令可以生成SHA2加密后的密码,然后替换GRAYLOG_ROOT_PASSWORD_SHA2配置项的值即可:

[[email protected] ~]# echo -n "Enter Password: " && head -1 </dev/stdin | tr -d ‘\n‘ | sha256sum | cut -d" " -f1
Enter Password: 123456a  # 输入明文密码
f707fdda7c874ff49ebfb2c88a2860c5ff4ce3d94a21efb76566ad0f92c9ad57  # SHA2加密后的密码
[[email protected] ~]# 

2.然后将docker-compose.yml放到一个目录下,具体放在什么目录可以自行定义,我这里是放在/usr/local/graylog目录下:

[[email protected] ~]# cd /usr/local
[[email protected] /usr/local]# mkdir graylog
[[email protected] /usr/local]# cd graylog/
[[email protected] /usr/local/graylog]# ls
docker-compose.yml
[[email protected] /usr/local/graylog]#

3.接着使用docker-compose命令启动这个容器:

[[email protected] /usr/local/graylog]# docker-compose up
# Graylog启动成功的情况下会打印这么一句日志
graylog_1  | 2019-04-18 16:47:50,732 INFO : org.graylog2.bootstrap.ServerBootstrap - Graylog server up and running.

注:这种方式是前台启动,若希望后台启动则加上-d参数即可

启动成功后通过浏览器访问9000端口可以进入如下登录界面,我这里使用的默认用户名和密码,所以均为admin:

日志数据可以在Search界面查看,但是我们需要先配置一下日志数据的入口,System -> Inputs:

选择GELF UDP:

然后点击Launch new input按钮,会弹出如下输入框,勾选Global,配置如下即可:

点击Save后完成配置,然后我们就可以通过12201这个端口去发送日志数据给Graylog了:

具体如何将日志数据发送给Graylog服务,将在下一篇中进行介绍

原文地址:https://blog.51cto.com/zero01/2381063

时间: 2024-10-13 12:31:26

Docker安装Graylog的相关文章

ubuntu下docker安装与版本升级

ubuntu 下docker安装与版本升级 一.系统环境 系统:ubuntu-server 14.04 x86_64 内核:3.13.0-32-generic 二.Docker安装 --------------------------------------------------------------------------------- 要想安装最新版本的Docker需要使用Docker源来安装 $ sudo su - root # apt-get -y installapt-transp

CentOS Docker 安装

CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位.系统内核版本为 2.6.32-431 或者更高版本. 使用 yum 安装

docker安装

CentOS 系列安装 Docker 实验环境: 开一台centos6.5 和centos7 内存4G ,网卡桥接 CentOS6.5: 在RedHat/CentOS环境下安装Docker.官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中.由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核. 升级内核(记住一定要升级,要不然会出现很多莫名奇怪的问题,建议用yum安装) 1.yum安装带aufs模块的3.10内核 #cd /etc/yu

Docker 安装

CentOS安装Docker Docker支持CentOS及以后的版本. 对于CentOS系统可以试用EPEL库安装Docker,命令如下: $sudo yum install -y http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm $sudo yum install -y docker-io 对于CentOS7系统,由于CentOS-Extras源中已内置Docker,可以直接使用yum命令进行安装: $sud

Docker安装及配置管理

一.Docker介绍: Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点. 容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离.虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短.容器使用宿主操作系统的内核,而虚拟机使用独立的内核. Docker 目前的局限性之一是,只能用在 64

使用docker安装部署Spark集群来训练CNN(含Python实例)

使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上本文链接,不甚感激! http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器,每台有8个tesla-GPU,然而平时做实验都只使用了其中的一个GPU,实在暴遣天物! 于是想用spark来把这些GPU都利用起来.听闻d

Win10系统使用Docker安装oracle并通过Navicat for oracle进行登录

一.安装Docker Linux系统可以直接采用命令进行Docker安装: Win7系统安装Dokcer实际通过Boot2Docker在Windows下安装一个VirtualBox来实现: Boot2Docker对于Win10系统的支持不太友好,好消息是现在有了专门为Win10准备的Docker安装包:docker-tollbox; docker-tollbox下载地址:https://www.docker.com/products/docker-tollbox DockerToolbox.ex

zabbix docker - 安装和初始化配置

zabbix docker - 安装和初始化配置 安装zabbix server docker-mysql版本 zabbix server支持不同的数据库(详见zabbix的docker hub),这里选择mysql作为底层数据库, $ docker pull zabbix/zabbix-server-mysql 安装mysql docker $ docker pull mysql 设置和启动mysql数据库 $ docker run --name zabbix -v /var/docker_d

Docker安装及镜像管理

1.docker简介 容器虚拟化,比传统虚拟化轻量 2013年出现,发展非常迅猛 Redhat在6.5版本开始支持docker 使用GO语言开发,基于apache2.0协议 开源软件,项目代码在github维护 2.容器虚拟化和传统虚拟化比较 3.Docker的优势 启动非常快,秒级实现 资源利用率很高,一台机器可以跑上千个docker容器 更快的交付和部署,一次创建和配置后,可以在任意 地方运行 内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率 易迁移,平台依赖性不强