前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Debian 9上安装和配置Graylog2

如何在Debian 9上安装和配置Graylog2

作者头像
Techeek
发布2018-09-05 15:52:21
1.2K0
发布2018-09-05 15:52:21
举报
文章被收录于专栏:云计算云计算

什么是Graylog?

Graylog是一款功能强大,免费而且开源的日志管理和分析工具,可在调试应用程序时监控SSH登录和程序的异常活动。它基于Java,Elasticsearch和MongoDB开发,并为日志的集中管理和分析提供了一个舒适美观的Web界面。

Graylog使用Elasticsearch来实现日志的存储和搜索,并使用MongoDB来存储元数据和配置信息。Graylog从各种输入渠道中收集日志、添加索引、进行分析,并通过Web界面显示它们。与其他日志监控工具相比,Graylog更加完善,是一款适合企业使用且简单易上手的工具。

本指南将介绍如何在Debian 9 server上安装和配置Graylog2,其中包括Elasticsearch和MongDB的安装和配置。

请注意本指南中的操作步骤需要root权限。请在执行以下步骤时,务必以root的身份执行,或者在命令前加上sudo的前缀。有关权限的更多信息,请参阅“用户和组”指南。

准备工作

1.仔细阅读我们的入门指南并设置好Linode主机的主机名和时区。

2.所需的依赖项并不能在标准仓库中全部找到,因此你需要将Debian Backports添加到包源列表中:

代码语言:shell
复制
echo "deb http://ftp.debian.org/debian jessie-backports main" > 
/etc/apt/sour0es.list.d/backports.list

3.更新你的系统:

代码语言:shell
复制
apt update && apt upgrade

配置要求

  • Linode主机的系统为Debian 9。
  • 你的Linode主机至少有4GB的内存(RAM)

安装Java

Graylog和Elasticsearch都基于Java,因此你需要在系统上安装最新版本的Java。

1.安装最新版本的Java:

代码语言:shell
复制
apt-get install openjdk-8-jre-headless -y

2.安装java后,检查Java版本:

代码语言:javascript
复制
java -version

正常情况下会有如下输出:

代码语言:shell
复制
java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java 
HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

3.在系统中安装其他软件包:

代码语言:shell
复制
apt-get install apt-transport-https uuid-runtime pwgen -y

安装和配置Elasticsearch

Graylog使用Elasticsearch存储日志消息,并提供查询工具。默认情况下,Elasticsearch在Debian 9上不可用,因此你需要将Elasticsearch资源库添加到你的系统中。

1. 下载并安装GPG密钥:

代码语言:shell
复制
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -

2. 将Elasticsearch资源库添加到apt:

代码语言:shell
复制
echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

3. 更新系统软件列表:

代码语言:shell
复制
apt-get update -y

4. 系统完成更新后,安装Elasticsearch:

代码语言:shell
复制
apt-get install elasticsearch -y

5. 启动Elasticsearch服务,并设置其在系统启动时自启动:

代码语言:shell
复制
systemctl start elasticsearch systemctl enable elasticsearch

6. 接下来,你需要编辑文件elasticsearch.yml。此文件位于/etc/elasticsearch/目录下(请将该文件的对应内容修改为如下内容):

代码语言:javascript
复制
/etc/elasticsearch/elasticsearch.yml      1 2 3 4 5 6 7 8   
cluster.name: graylog 
network.host: 127.0.0.1 
discovery.zen.ping.timeout: 10s 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300"] 
script.inline: false 
script.indexed: false 
script.file: false 

请注意,本指南介绍的方法仅为在本地服务器上使用Elasticsearch,如果需要在另一个服务器上使用Elasticsearch,请将IP地址127.0.0.1替换为你要使用Elasticsearch的服务器IP地址。为确保安全,请参阅Elasticsearch的相关文档。

保存并关闭该文件,然后重新启动Elasticsearch服务:

代码语言:shell
复制
systemctl restart elasticsearch

要确保重新启动没有返回错误,因为此时Elasticsearch应该正常运行。

7. Elasticsearch重新启动后,它将监听HTTP端口9200,而集群节点将在9300端口进行通信。你可以通过运行以下命令来检查响应状况:

代码语言:shell
复制
curl -X GET http://localhost:9200

8. 你还可以测试Elasticsearch的运行状况:

代码语言:shell
复制
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

请注意,要查阅REST API的完整列表,请参阅Elasticsearch文档

安装MongoDB

Graylog使用MongoDB作为数据库来存储元信息和配置文件。默认情况下,MongoDB已经在Debian 9的资源库中。直接安装MongoDB:

代码语言:shell
复制
apt-get install mongodb-server -y

完成安装后,接着安装Graylog服务器。

安装和配置Graylog服务器

要安装Graylog服务器,您需要将Graylog资源库下载并安装到您的系统。

1. 下载并安装Graylog资源库:

代码语言:javascript
复制
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb dpkg -i graylog-2.2-repository_latest.deb

2. 更新Graylog资源库,然后安装Graylog服务器:

代码语言:shell
复制
apt-get update -y apt-get install graylog-server -y

3. 你需要为root用户开启密码加密,并设置哈希密码。首先使用pwgen命令设置密码加密:

代码语言:shell
复制
pwgen -N 1 -s 96

运行此命令将输出一系列随机字母和数字,类似下面这种(之后会用到该结果):

nNPjRmvyyyPc0YKySXhkebfwUYvW2dQz7kD1GxBq7qhJre1eIAySsUbmlYNKiYZnHquHPu8pTswvc3MFSVDrwn5AmdwOSMri

接着为root用户设置哈希密码。执行以下命令,将hashedpassword替换为为你所需的密码:

代码语言:javascript
复制
echo -n hashedpassword | sha256sum

你应该看到类似下方的输出结果(之后会用到该结果):

4c941dd2a116bf235e943771ad16c4e8877d75c597936accf168e08c5f93ce24

请注意你需要此密码才能登录Graylog Web界面。

4. 打开Graylog服务器的主配置文件:位于/etc/graylog/server/目录下的server.conf。找到名称为root_password_sha2和password_sercret的项,修改其值为之前控制台输出的内容:

代码语言:javascript
复制
/etc/graylog/server/server.conf 
1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 
is_master = true 
node_id_file = /etc/graylog/server/node-id 
password_secret = nNPjRmvyyyPc0YKySXhkebfwUYvW2dQz7kD1GxBq7qhJre1eIAySsUbmlYNKiYZnHquHPu8pTswvc3MFSVDrwn5AmdwOSMri 
root_username = admin 
root_password_sha2 = 4c941dd2a116bf235e943771ad16c4e8877d75c597936accf168e08c5f93ce24 
root_timezone = UTC 
plugin_dir = /usr/share/graylog-server/plugin 
rest_listen_uri = http://0.0.0.0:9000/api/ 
rest_enable_cors = true 
web_listen_uri = http://0.0.0.0:9000/ 
rotation_strategy = count 
elasticsearch_max_docs_per_index = 20000000 
elasticsearch_max_number_of_indices = 7 
retention_strategy = delete 
elasticsearch_shards = 4 
elasticsearch_replicas = 1 
elasticsearch_index_prefix = graylog 
allow_leading_wildcard_searches = true 
allow_highlighting = false 
elasticsearch_cluster_name = graylog 
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300 
elasticsearch_http_enabled = false 
elasticsearch_network_host = 0.0.0.0 
elasticsearch_discovery_initial_state_timeout = 3s 
elasticsearch_analyzer = standard 
output_batch_size = 500 
output_flush_interval = 1 
output_fault_count_threshold = 5 
output_fault_penalty_seconds = 30 
ring_size = 65536 
inputbuffer_ring_size = 65536 
inputbuffer_processors = 2 
inputbuffer_wait_strategy = blocking 
processbuffer_processors = 5 
outputbuffer_processors = 3 
processor_wait_strategy = 
blocking message_journal_enabled = true 
message_journal_dir = /var/lib/graylog-server/journal 
async_eventbus_processors = 2 
lb_recognition_period_seconds = 3 
alert_check_interval = 60 
mongodb_uri = mongodb://localhost/graylog 
mongodb_max_connections = 1000 
mongodb_threads_allowed_to_block_multiplier = 5 
transport_email_enabled = true 
content_packs_dir = /usr/share/graylog-server/contentpacks 
content_packs_auto_load = grok-patterns.json 
proxied_requests_thread_pool_size = 32

完成后保存文件。最后,重新启动Graylog服务器并设置其在系统启动时自启动:

代码语言:shell
复制
systemctl start graylog-server systemctl enable graylog-server

5. 检查Graylog,看服务器日志是否正常工作:

代码语言:javascript
复制
tail -f /var/log/graylog-server/server.log

访问Graylog

Graylog现已启动运行,可以访问Graylog的Web界面了。

1. 打开Web浏览器并转到URL: http://192.168.0.102:9000, 其中192.168.0.1是你的Linode主机的公网IP地址。你会被重定向到Graylog的登录页面,如下图所示:

Graylog登录页面
Graylog登录页面

请注意如果要在工作环境中部署Graylog,请考虑将Graylog的访问权限改为仅限专用网络。在本指南中,只要将192.168.0.102替换为Linode的主机公网IP地址,就可以通过浏览器访问。

2. 输入用户名admin, 密码为之前设置的哈希密码,然后点击“Sign in”按钮。你会看到Graylog的默认仪表盘。

Graylog仪表板
Graylog仪表板

3. 配置Graylog的输入口来从外部资源接收日志。点击 System>Inputs。然后从下拉列表中选择

Syslog UDP,点击Launch new input按钮。你应该看到如下图像:

Graylog添加输入
Graylog添加输入

4. 填写上面的所有信息,完成后点击“Sava"按钮,你会看到Local Inputs(本地输入口),如下图所示:

Graylog输入仪表板
Graylog输入仪表板

5. 你的Graylog已经配置好日志输入口,并正在监听8514端口。现在,你需要配置rsyslog来将系统日志发送到新配置的输入口中。为此,请编辑文件rsyslog.conf,将对应部分改为如下内容(注意修改IP地址):

代码语言:javascript
复制
/etc/rsyslog.conf1 2 
$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n" *.* 
@192.168.0.102:8514;GRAYLOGRFC5424

完成后保存并关闭文件,然后使用Linode Manager重新启动服务器以应用这些更改。

6. 重新启动后,登录Graylog的Web界面,点击System > Inputs,然后点击”Show received messages“按钮。你会看到类似下图的syslog消息:

Graylog日志消息
Graylog日志消息

下一步

你现在拥有一个完全配置好的Graylog服务器。Graylog可以用于监控任意规模的日志。因此,无论你是从事网络安全、信息技术、软件开发、运维还是其他任何需要用到日志监控的工作,你都可以使用Graylog。Graylog会将你的日志数据集中存放。

更多信息

为获取更多与本文主题相关的信息,你可以参考以下资源。我希望这些资料能够帮助你,但请注意我无法保证这些外部资料的准确性和时效性

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Graylog?
  • 准备工作
  • 配置要求
  • 安装Java
  • 安装和配置Elasticsearch
  • 安装MongoDB
  • 安装和配置Graylog服务器
  • 访问Graylog
    • 下一步
    • 更多信息
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档