如何在Debian 9上使用Graylog2监视日志文件

Graylog是一个基于Java,Elasticsearch和MongoDB的免费开源日志管理工具,可用于从集中位置收集,索引和分析任何服务器日志。 您可以轻松地监控SSH登录和异常活动,以使用Graylog调试应用程序和日志。 Graylog提供强大的查询语言,提醒能力,数据转换处理流程等等。 您可以通过REST API和附加组件扩展Graylog的功能。

Graylog由三个组成部分组成:

  1. 弹性搜索:它存储所有传入的消息,并提供搜索功能。
  2. MongoDB:用于数据库,存储配置和元信息。
  3. Graylog服务器:它接收和处理来自各种输入的消息,并提供用于分析和监控的Web界面。

在本教程中,我们将介绍如何在Debian 9 Server上安装Graylog2。

条件

  • 运行Debian 9的服务器。
  • 最低4 GB RAM。
  • 您的服务器上的静态IP地址192.168.0.187设置。

1安装所需的软件包

在开始之前,您将需要将Java 8和其他所需的软件包安装到系统中。 Debian 9标准存储库中并不包含所有必需软件包,因此您需要将Debian Backports添加到软件包源代码列表中。 首先,使用root用户登录并创建一个backport.list文件:

nano /etc/apt/sources.list.d/backport.list

添加以下行:

deb http://ftp.debian.org/debian jessie-backports main

完成后保存文件,然后使用以下命令更新系统:

apt-get update -y
apt-get upgrade -y

一旦您的系统是最新的,请使用以下命令安装所有软件包:

apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y

一旦安装了所有必需的软件包,就可以继续安装MongoDB。

2安装MongoDB

MongoDB需要存储配置和元信息。 MongoDB在Debian 9默认存储库中可用,因此您可以通过运行以下命令来安装MongoDB:

apt-get install mongodb-server -y

一旦安装了MongoDB,您可以继续安装Elasticsearch。

3安装弹性搜索

Elasticsearch作为搜索服务器,用于存储Graylog服务器发送的所有日志,并在您请求时显示消息。 Debian 9默认存储库中不提供Elasticsearch。 您将需要将Elasticsearch存储库添加到Debian包源。

首先,使用以下命令下载并添加Elasticsearch GPG密钥:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -

接下来,使用以下命令创建一个Elasticsearch repo文件:

nano /etc/apt/sources.list.d/elasticsearch.list

添加以下行:

deb https://packages.elastic.co/elasticsearch/2.x/debian stable main

完成后保存文件,然后运行以下命令来更新存储库:

apt-get update -y

接下来,通过运行以下命令安装Elasticsearch:

apt-get install elasticsearch -y

安装Elasticsearch之后,您将需要修改Elasticsearch主配置文件:

nano /etc/elasticsearch/elasticsearch.yml

进行以下更改:

cluster.name: graylog
network.host: 192.168.0.187
discovery.zen.ping.timeout: 10s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.0.187:9300"]

完成后保存并关闭文件,然后启动Elasticsearch服务,并启动它启动:

systemctl start elasticsearch
systemctl enable elasticsearch

几秒钟后,运行以下操作来测试Elasticsearch是否正常运行:

curl -XGET 'http://192.168.0.187:9200/_cluster/health?pretty=true'

确保输出将集群状态显示为“绿色”:

{
  "cluster_name" : "graylog",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 1,
  "active_shards" : 1,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 1,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 50.0
}

一旦Elasticsearch安装并且正常工作,您可以继续下一步。

4安装Graylog

在Debian 9默认存储库中不提供Graylog,因此您需要首先下载并安装Graylog 2存储库。 您可以通过运行以下命令来执行此操作:

wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
dpkg -i graylog-2.2-repository_latest.deb

安装存储库后,请使用以下命令更新存储库并安装Graylog服务器:

apt-get update -y
apt-get install graylog-server -y

安装Graylog后,您将需要设置一个秘密来保护用户密码,并为root用户设置一个哈希(sha256)密码。

首先,使用以下命令生成password_secret:

pwgen -N 1 -s 96

您应该看到以下输出:

TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC

接下来,使用以下命令为root用户生成哈希密码:

echo -n youradminpassword | sha256sum

您应该看到以下输出:

e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee

注意:记住两个密码键,因为两个密钥都需要在server.conf中配置。

接下来,您将需要修改位于/ etc / graylog / server /目录中的Graylog服务器主配置文件:

nano /etc/graylog/server/server.conf

进行以下更改:

is_master = true
node_id_file = /etc/graylog/server/node-id
########past-your-password-secret-here#########
password_secret = TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC
root_username = admin
#######past-your-root-hash-password-here##########
root_password_sha2 = e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee
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 = 192.168.0.187:9300
elasticsearch_http_enabled = false
elasticsearch_network_host = 0.0.00
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
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
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
content_packs_dir = /usr/share/graylog-server/contentpacks
content_packs_auto_load = grok-patterns.json
proxied_requests_thread_pool_size = 32

完成后保存并关闭文件,然后启动Graylog服务,并启动它启动:

systemctl start graylog-server
systemctl enable graylog-server

一旦你完成,你可以继续下一步

5配置防火墙

默认情况下,Graylog Web界面正在监听端口9000,因此您需要通过UFW防火墙来允许端口9000。 UFW防火墙没有安装在Debian 9中,所以你需要先安装它。 您可以通过运行以下命令来安装它:

apt-get install ufw -y

一旦安装了UFW,通过运行以下命令启用它;

ufw enable

接下来,通过运行以下命令,通过UFW防火墙允许端口9000:

ufw allow 9000

您可以通过运行以下命令,随时检查UFW防火墙的状态。

ufw status

一旦配置了防火墙,您可以继续下一步。

6访问Graylog Web界面

Graylog Web界面正在监听端口9000.现在,打开网页浏览器并输入URL http://192.168.0.187:9000 ,你应该看到以下屏幕:

使用用户名“ admin ”登录,并在server.conf上的root_password_sha2配置的密码。 您应该看到以下屏幕:

接下来,您将需要添加输入以使用UDP接收syslog消息。 要添加输入,单击系统 - >选择输入 - > Syslog UDP - >单击启动新输入按钮,您应该看到以下屏幕:

填写所有细节,如标题,端口,绑定地址,最后单击保存按钮,您应该看到以下屏幕:

现在,Graylog服务器将使用客户端或服务器端口8514接收系统日志。

在客户端系统中,您需要配置rsyslog,以便将系统日志消息发送到Graylog服务器。 您可以通过编辑rsyslog.conf文件来执行此操作:

nano /etc/rsyslog.conf

添加以下行:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 8514
$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @192.168.0.187:8514;GRAYLOGRFC5424

保存文件并重新启动rsyslog服务以应用这些更改:

systemctl restart rsyslog

接下来,在Graylog服务器上,单击“Graylog Sources”,您可以在以下屏幕中看到登录尝试失败的ssh日志。

结论

恭喜! 您已经在Debian 9上成功安装并配置了Graylog服务器。现在可以从中央位置轻松查看日志并分析系统日志。 您还可以自定义Graylog并根据需要发送另一种类型的日志。 您可以从Graylog文档页面http://docs.graylog.org/en/2.2/pages/getting_started.html获取更多信息。 如果您有任何问题,欢迎给我发消息。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏