准备安装环境
由于本人的centos是通过虚拟机来进行安装的,为了本地电脑能够访问centos系统中的端口,则需要把防火墙进行关闭,通过以下方式进行关闭防火墙。
改变SELINUX的值从enforcing 到disabled, 找到SELINUX改变它的值为disabled,SELINUX=disabled,修改完成进行保存。 保存完之后输入reboot命令进行重启。
接着查看防火墙是否被关闭
安装Java Jdk
Elasticsearch 要求安装的版本是1.8的版本,下面我们是安装1.8的方式,通过Oracle网站下载Oracle jdk1.8.
https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.rpm?AuthParam=1572923902_eec0cc0f1690be19f017e4409dc8249a
这个下载连接是登录后的下载连接,也可以在windows电脑上下载完成之后上传到Linux中。
接下来,下载完成之后安装jdk,输入如下命令。
安装完成之后,接着检测一下是否安装成功。
安装和配置Elasticsearch
在这步。我们将要安装和配置Elasticsearch。安装Elasticsearch 从elastic.co提供的一个tgz安装包,并且配置它运行在localhost。
安装前我们先添加elastic.co key到Linux服务器上。命令如下
接着下载rpm安装包
下载完成之后,接着通过rpm命令进行安装。
安装完成之后,接着我们进行修改elasticsaerch.yml 配置文件。 进入到/etc/elasticsearch/目录下,接着修改elasticsearch.yml。
开启内存锁移除bootstrap.memory_lock: true 前面的注释符。这个关闭Elasticsearch的内存切换。 命令如下
在配置文件中移除网络块下面的那个 network.host和 http.port 前面的注释。
保存配置文件并退出。 接下来编辑 elasticsearch.service 文件 中的配置锁。
接着编辑sysconfig配置目录下的Elasticsearch文件。
移除配置文件中的MAX_LOCKED_MEMORY=unlimited前的注释。
通过上面的配置,Elasticsearch 已经配置完成,Elasticsearch 将运行在localhost 端口为9200.我们关闭内存交换,并且开启所有的内存锁。 重新加载systemd, 开启 Elasticsearch start在启动时,并且开启服务.
等待一会儿,当Eelasticsearch启动, 接着检查Eelasticsearch是否启动,通过以下命令查看是否9200端口是否是 'LISTEN'状态.
接着检查内存锁确保mlockall是enabled,并且检查Elasticsearch 正在运行的通过以下命令.
安装Kibana通过Nginx
在这步,我们将安装Kibana通过Nginx服务器. Kibana将 监听在本地IP地址然而Nginx 将为Kibana应用程序扮演一个反向代理. 接着下载Kibana并安装。
接着编辑Kibana配置文件.
进入到以下文件中,找到以下命令所对应的行,去掉前面的注释。
去掉注释之后保存并退出。接着执行以下命令。增加kibana在启动的时候运行。
Kibana 将作为node应用程序运行在端口5601. 输入以下命令检查是否运行在5601端口。
通过上面的步骤,Kibana已经安装完成。接下来,我们安装Nginx 服务器进行反向代理访问Kibana应用。
Nginx 是有效的在 Epel 仓库, 安装epel-release 通过yum.
接下来安装Nginx 和 httpd-tools 安装包.
那个httpd-tools 安装包包含那个那个web服务器的工具, 我们将使用 htpasswd basic认证Kibana. 编辑Nginx配置文件 并且移除 'server { }' 块, 因此我们能够增加一个新的虚拟主机配置文件.
移除server { } 块.保存并退出。
现在我们配置一个虚拟主机配置文件在 conf.d 目录,通过vi 创建'kibana.conf’文件。
粘贴以下配置到kibana.conf文件中.
server { listen 80; server_name elk-stack.co; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.kibana-user; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
接着创建认证文件通过htpasswd命令。
测试 Nginx 配置文件并且确保没有错误. 接着添加配置在系统启动的时候运行并且启动Nginx.
安装和配置 Logstash
在这步,我们将要安装Logsatash并且配置它从filebeat客户端到中央服务器日志,接着过滤并且转换那个Syslog 数据并且移动它到那个stash (Elasticsearch). 下载Logstash 并且安装它通过rpm.
接着通过rpm命令安装
生成一个 SSL 证书文件以至于客户端能够标识那个elastic服务器。
增加一个新的行服务器标识在'[ v3_ca ]' 部分.
# Server IP Address
subjectAltName = IP: 10.0.15.10
保存并退出。
生成那个证书文件通过 openssl 命令.
那个证书文件能够找到在'/etc/pki/tls/certs/' 目录和 '/etc/pki/tls/private/' 目录。
接下来我们创建一个新的Logstash配置文件,我们将创建一个 新的'filebeat-input.conf' 文件配置log源从filebeat。接着 'syslog-filter.conf' 配置文件处理syslog 并且'output-elasticsearch.conf' 配置文件定义 Elasticsearch输出。
进入logstash配置文件目录并且创建新的配置文件i在'conf.d' 的子目录。
粘贴以下内容进去。
input { beats { port => 5443 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" } }
创建syslog-filter.conf文件.
粘贴以下内容进去。
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
我们使用过滤器插件命名为 'grok' 来转换syslog文件.
接着我们创建配置文件 'output-elasticsearch.conf'.
粘贴以下内容进去。
output { elasticsearch { hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
保存并退出,接着我们增加logstash 在开机时自动启动。
安装和配置Filebeat在CentOS客户端
新建一个虚拟机作为客户端 Beats是数据货运,轻量的代理能被安装在那个客户端节点发送巨大的数据从客户端机器到Logstash或者Elasticsearch服务器,有四种beats 是有用的,'Filebeat' 对应 'Log Files', 'Metricbeat' 对应 'Metrics', 'Packetbeat' 对应 'Network Data' 以及 'Winlogbeat' 对应 Windows客户端 'Event Log'.
在这篇教程,我将展示你怎样安装 'Filebeat'传输数据log文件到 Logstash 服务器上通过一个SSL连接.
登录从那个客户端服务器连接到elastic服务器,拷贝certificate文件 从elastic服务器到客户端服务器.
拷贝那个证书文件通过scp命令。
创建一个新的目录并把刚才拷贝的那个证书放到该目录下.
接下来导入elastic key到客户端服务器.
下载Filebeat并且安装它通过rpm.
Filebeat已经安装成功, 进入配置目录并且对 'filebeat.yml'进行编辑.
接着找到paths部分,增加那个新的日志文件, 我们将增加两个日志文件 '/var/log/secure'用于ssh登录日志 并且 '/var/log/messages' 用于 那个服务器日志.
接着在后面增加一个配置定义那个syslog类型文件。
Filebeat已经默认使用Elasticsearch作为输出目标.在这篇教程, 我们将改变它到Logstash,关闭Elasticsearch output 增加 注释在以下命令行。
接着开启Logstash的日志输出。也是在该配置文件下删除注释,并添加以下数据。
保存并退出。
接着开启系统启动时自动启动服务。
使用systemctl status filebeat来进行检查是否启动。
测试Elastic Stack