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添加到包源列表中:
echo "deb http://ftp.debian.org/debian jessie-backports main" >
/etc/apt/sour0es.list.d/backports.list
3.更新你的系统:
apt update && apt upgrade
Graylog和Elasticsearch都基于Java,因此你需要在系统上安装最新版本的Java。
1.安装最新版本的Java:
apt-get install openjdk-8-jre-headless -y
2.安装java后,检查Java版本:
java -version
正常情况下会有如下输出:
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.在系统中安装其他软件包:
apt-get install apt-transport-https uuid-runtime pwgen -y
Graylog使用Elasticsearch存储日志消息,并提供查询工具。默认情况下,Elasticsearch在Debian 9上不可用,因此你需要将Elasticsearch资源库添加到你的系统中。
1. 下载并安装GPG密钥:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
2. 将Elasticsearch资源库添加到apt:
echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
3. 更新系统软件列表:
apt-get update -y
4. 系统完成更新后,安装Elasticsearch:
apt-get install elasticsearch -y
5. 启动Elasticsearch服务,并设置其在系统启动时自启动:
systemctl start elasticsearch systemctl enable elasticsearch
6. 接下来,你需要编辑文件elasticsearch.yml
。此文件位于/etc/elasticsearch/
目录下(请将该文件的对应内容修改为如下内容):
/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服务:
systemctl restart elasticsearch
要确保重新启动没有返回错误,因为此时Elasticsearch应该正常运行。
7. Elasticsearch重新启动后,它将监听HTTP端口9200
,而集群节点将在9300
端口进行通信。你可以通过运行以下命令来检查响应状况:
curl -X GET http://localhost:9200
8. 你还可以测试Elasticsearch的运行状况:
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
请注意,要查阅REST API的完整列表,请参阅Elasticsearch文档。
Graylog使用MongoDB作为数据库来存储元信息和配置文件。默认情况下,MongoDB已经在Debian 9的资源库中。直接安装MongoDB:
apt-get install mongodb-server -y
完成安装后,接着安装Graylog服务器。
要安装Graylog服务器,您需要将Graylog资源库下载并安装到您的系统。
1. 下载并安装Graylog资源库:
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb dpkg -i graylog-2.2-repository_latest.deb
2. 更新Graylog资源库,然后安装Graylog服务器:
apt-get update -y apt-get install graylog-server -y
3. 你需要为root用户开启密码加密,并设置哈希密码。首先使用pwgen
命令设置密码加密:
pwgen -N 1 -s 96
运行此命令将输出一系列随机字母和数字,类似下面这种(之后会用到该结果):
nNPjRmvyyyPc0YKySXhkebfwUYvW2dQz7kD1GxBq7qhJre1eIAySsUbmlYNKiYZnHquHPu8pTswvc3MFSVDrwn5AmdwOSMri
接着为root用户设置哈希密码。执行以下命令,将hashedpassword
替换为为你所需的密码:
echo -n hashedpassword | sha256sum
你应该看到类似下方的输出结果(之后会用到该结果):
4c941dd2a116bf235e943771ad16c4e8877d75c597936accf168e08c5f93ce24
请注意你需要此密码才能登录Graylog Web界面。
4. 打开Graylog服务器的主配置文件:位于/etc/graylog/server/目录下的server.conf。找到名称为root_password_sha2和password_sercret的项,修改其值为之前控制台输出的内容:
/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服务器并设置其在系统启动时自启动:
systemctl start graylog-server systemctl enable graylog-server
5. 检查Graylog,看服务器日志是否正常工作:
tail -f /var/log/graylog-server/server.log
Graylog现已启动运行,可以访问Graylog的Web界面了。
1. 打开Web浏览器并转到URL: http://192.168.0.102:9000
, 其中192.168.0.1
是你的Linode主机的公网IP地址。你会被重定向到Graylog的登录页面,如下图所示:
请注意如果要在工作环境中部署Graylog,请考虑将Graylog的访问权限改为仅限专用网络。在本指南中,只要将192.168.0.102
替换为Linode的主机公网IP地址,就可以通过浏览器访问。
2. 输入用户名admin
, 密码为之前设置的哈希密码,然后点击“Sign in”按钮。你会看到Graylog的默认仪表盘。
3. 配置Graylog的输入口来从外部资源接收日志。点击 System>Inputs。然后从下拉列表中选择
Syslog UDP,点击Launch new input按钮。你应该看到如下图像:
4. 填写上面的所有信息,完成后点击“Sava"按钮,你会看到Local Inputs(本地输入口),如下图所示:
5. 你的Graylog已经配置好日志输入口,并正在监听8514
端口。现在,你需要配置rsyslog来将系统日志发送到新配置的输入口中。为此,请编辑文件rsyslog.conf,将对应部分改为如下内容(注意修改IP地址):
/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会将你的日志数据集中存放。
为获取更多与本文主题相关的信息,你可以参考以下资源。我希望这些资料能够帮助你,但请注意我无法保证这些外部资料的准确性和时效性