Graylog是一个基于Java,Elasticsearch和MongoDB的免费开源日志管理工具,可用于从集中位置收集,索引和分析任何服务器日志。 您可以轻松地监控SSH登录和异常活动,以使用Graylog调试应用程序和日志。 Graylog提供强大的查询语言,提醒能力,数据转换处理流程等等。 您可以通过REST API和附加组件扩展Graylog的功能。
Graylog由三个组成部分组成:
- 弹性搜索:它存储所有传入的消息,并提供搜索功能。
- MongoDB:用于数据库,存储配置和元信息。
- 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获取更多信息。 如果您有任何问题,欢迎给我发消息。