Ubuntu 16.04 搭建 ELK 日志分析平台

我要搭建的ELK Stack图示:

Ubuntu 16.04 搭建 ELK

ELK服务器建议配置:

  • 内存不少于4G
  • CPU:2
  • Ubuntu 16.04

#1 安装Java JDK

Elasticsearch和Logstash都是使用java写的,所以我们需要安装Java,Elasticsearch建议安装Oracle Java 8(OpenJdk应该也行)

#2 安装Elasticsearch

导入Elasticsearch的GPG公钥:

添加Elasticsearch仓库源:

安装elasticsearch:

安装完成之后,配置Elasticsearch:

为了系统安全,我们需要限制外部网络访问Elasticsearch(9200端口)。取消下面一行注释,并把值替换为localhost:

启动Elasticsearch服务:

设置Elasticsearch开机自启:

#3 安装Kibana

添加Kibana仓库源:

安装kibana:

配置Kibana:

去掉server.host一行的注释,并把值改为localhost:

上面配置了只能从本地访问Kibana;因为我们要使用Nginx做反向代理。

启动Kibana服务:

#4 安装Nginx

安装:

使用openssl创建一个管理员(admin),这是用来登录Kibana web接口的

按照提示设置admin用户的密码。

编辑Nginx配置文件:

把文件中的内容替换为:

把your_domain_or_IP替换为你服务器的IP或域名;

检查Nginx配置语法:

重启Nginx:

如果开启了防火墙,配置允许nginx通行:

测试;使用浏览器访问 http://your_domain_or_IP,输入前面设置的密码:

Ubuntu 16.04 搭建 ELK

如果配置没有问题,你应该能看到如下页面:

Ubuntu 16.04 搭建 ELK

#5 安装Logstash

添加Logstash软件源:

安装Logstash:

由于客户端服务器需要使用Filebeat来向ELK服务器发送日志,为了增强日志传输的安全,我们可以使用SSL加密。首先创建存放SSL证书的目录:

创建SSL证书的两种选择:

  • 直接使用IP地址
  • 如果你有架设DNS服务器解析IP,可以使用域名

选择1)使用IP地址:

在生成SSL证书之前,先配置openssl:

v3_ca一段中,添加一行:

把ELK_server_IP替换为ELK服务器的ip地址。

生成SSL证书:

要把logstash-forwarder.crt复制到要给ELK发送日志的服务器上。

选择2)使用域名:

确保DNS的A记录指向ELK服务器IP。

创建SSL证书:

把ELK_server_domain替换为你的域名。

配置Logstash:

创建配置文件:

写入内容:

监听接收日志的5044端口。配置防火墙打开5044端口:

创建配置文件:

写入如下内容:

设置接收的日志格式及类型。

创建配置文件:

写入如下内容:

Elasticsearch使用的端口9200。

Logstash文档:https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html。

现在ELK服务器已经做好了接收日志的准备。


在客户端服务上安装配置Filebeat

把在ELK服务器上生成logstash-forwarder.crt证书传到到客户端服务上,可以使用scp;然后把证书复制的certs目录:

安装Filebeat;添加源和key:

配置Filebeat:

prospectors一段中,配置要发送的日志:

Ubuntu 16.04 搭建 ELK

找到document_type,并把值改为syslog:

Ubuntu 16.04 搭建 ELK

找到output一段,删除或注释掉整个Elasticsearch output一段;

去掉logstash注释,hosts的值改为ELK_server_IP:5044,并添加一行:

Ubuntu 16.04 搭建 ELK

找到tls一段:

Ubuntu 16.04 搭建 ELK

启动Filebeat:

现在filebeat就可以向ELK服务器发送syslogauth.log日志了。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注