准备安装环境

由于本人的centos是通过虚拟机来进行安装的,为了本地电脑能够访问centos系统中的端口,则需要把防火墙进行关闭,通过以下方式进行关闭防火墙。

# vi /etc/sysconfig/selinux

改变SELINUX的值从enforcing 到disabled, 找到SELINUX改变它的值为disabled,SELINUX=disabled,修改完成进行保存。 保存完之后输入reboot命令进行重启。

接着查看防火墙是否被关闭

[root@localhost ~]# /usr/sbin/sestatus SELinux status: disabled

[root@localhost ~]# getenforce Disabled

安装Java Jdk

Elasticsearch 要求安装的版本是1.8的版本,下面我们是安装1.8的方式,通过Oracle网站下载Oracle jdk1.8.

[root@localhost ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.rpm?AuthParam=1572923902_eec0cc0f1690be19f017e4409dc8249a"

https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.rpm?AuthParam=1572923902_eec0cc0f1690be19f017e4409dc8249a

这个下载连接是登录后的下载连接,也可以在windows电脑上下载完成之后上传到Linux中。

接下来,下载完成之后安装jdk,输入如下命令。

[root@localhost ~]# rpm -ivh jdk-8u231-linux-x64.rpm

安装完成之后,接着检测一下是否安装成功。

[root@localhost ~]# java -version
java verion 1.8.0_231

安装和配置Elasticsearch

在这步。我们将要安装和配置Elasticsearch。安装Elasticsearch 从elastic.co提供的一个tgz安装包,并且配置它运行在localhost。

安装前我们先添加elastic.co key到Linux服务器上。命令如下

[root@localhost ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

接着下载rpm安装包

[root@localhost ~]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-x86_64.rpm

下载完成之后,接着通过rpm命令进行安装。

[root@localhost ~]# rpm -ivh elasticsearch-5.1.1.rpm

安装完成之后,接着我们进行修改elasticsaerch.yml 配置文件。
进入到/etc/elasticsearch/目录下,接着修改elasticsearch.yml。

[root@localhost ~]# cd /etc/elasticsearch/
[root@localhost ~]#vi elasticsearch.yml

开启内存锁移除bootstrap.memory_lock: true 前面的注释符。这个关闭Elasticsearch的内存切换。 命令如下

bootstrap.memory_lock: true

在配置文件中移除网络块下面的那个 network.host和 http.port 前面的注释。

network.host: localhost
http.port: 9200

保存配置文件并退出。
接下来编辑 elasticsearch.service 文件 中的配置锁。

LimitMEMLOCK=infinity

接着编辑sysconfig配置目录下的Elasticsearch文件。

vi /etc/sysconfig/elasticsearch

移除配置文件中的MAX_LOCKED_MEMORY=unlimited前的注释。

MAX_LOCKED_MEMORY=unlimited

通过上面的配置,Elasticsearch 已经配置完成,Elasticsearch 将运行在localhost 端口为9200.我们关闭内存交换,并且开启所有的内存锁。
重新加载systemd, 开启 Elasticsearch start在启动时,并且开启服务.

[root@localhost ~]# sudo systemctl daemon-reload
[root@localhost ~]# sudo systemctl enable elasticsearch
[root@localhost ~]# sudo systemctl start elasticsearch

等待一会儿,当Eelasticsearch启动, 接着检查Eelasticsearch是否启动,通过以下命令查看是否9200端口是否是 'LISTEN'状态.

[root@localhost ~]# netstat -plntu

接着检查内存锁确保mlockall是enabled,并且检查Elasticsearch 正在运行的通过以下命令.

[root@localhost ~]# curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
[root@localhost ~]# curl -XGET 'localhost:9200/?pretty'

安装Kibana通过Nginx

在这步,我们将安装Kibana通过Nginx服务器. Kibana将 监听在本地IP地址然而Nginx 将为Kibana应用程序扮演一个反向代理.
接着下载Kibana并安装。

[root@localhost ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.2-x86_64.rpm

[root@localhost ~]# rpm -ivh kibana-7.4.2-x86_64.rpm

接着编辑Kibana配置文件.

[root@localhost ~]# vi /etc/kibana/kibana.yml

进入到以下文件中,找到以下命令所对应的行,去掉前面的注释。

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

去掉注释之后保存并退出。接着执行以下命令。增加kibana在启动的时候运行。

sudo systemctl enable kibana
sudo systemctl start kibana

Kibana 将作为node应用程序运行在端口5601.
输入以下命令检查是否运行在5601端口。

netstat -plntu

通过上面的步骤,Kibana已经安装完成。接下来,我们安装Nginx 服务器进行反向代理访问Kibana应用。

Nginx 是有效的在 Epel 仓库, 安装epel-release 通过yum.

yum -y install epel-release

接下来安装Nginx 和 httpd-tools 安装包.

yum -y install nginx httpd-tools

那个httpd-tools 安装包包含那个那个web服务器的工具, 我们将使用 htpasswd basic认证Kibana.
编辑Nginx配置文件 并且移除 'server { }' 块, 因此我们能够增加一个新的虚拟主机配置文件.

cd /etc/nginx/
vim nginx.conf

移除server { } 块.保存并退出。

现在我们配置一个虚拟主机配置文件在 conf.d 目录,通过vi 创建'kibana.conf’文件。

vi /etc/nginx/conf.d/kibana.conf

粘贴以下配置到kibana.conf文件中.

server {
listen ; 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命令。

sudo htpasswd -c /etc/nginx/.kibana-user admin 接着输入你的密码

测试 Nginx 配置文件并且确保没有错误. 接着添加配置在系统启动的时候运行并且启动Nginx.

[root@localhost ~]# nginx -t
[root@localhost ~]# systemctl enable nginx
[root@localhost ~]# systemctl start nginx

安装和配置 Logstash

在这步,我们将要安装Logsatash并且配置它从filebeat客户端到中央服务器日志,接着过滤并且转换那个Syslog 数据并且移动它到那个stash (Elasticsearch).

下载Logstash 并且安装它通过rpm.

[root@localhost ~]# curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.4.2.rpm

接着通过rpm命令安装

[root@localhost ~]# rpm -ivh logstash-7.4.2.rpm

生成一个 SSL 证书文件以至于客户端能够标识那个elastic服务器。

[root@localhost ~]# cd /etc/pki/tls
vi openssl.cnf

增加一个新的行服务器标识在'[ v3_ca ]' 部分.

[ v3_ca ]

# Server IP Address
subjectAltName = IP: 10.0.15.10

保存并退出。

生成那个证书文件通过 openssl 命令.

openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt

那个证书文件能够找到在'/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' 的子目录。

cd /etc/logstash/
vi conf.d/filebeat-input.conf

粘贴以下内容进去。

input {
beats {
port =>
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}

创建syslog-filter.conf文件.

vi conf.d/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'.

vi conf.d/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 在开机时自动启动。

sudo systemctl enable logstash
sudo systemctl start 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命令。

scp root@elk-serverIP://etc/pki/tls/certs/logstash-forwarder.crt .
TYPE elk-server password

创建一个新的目录并把刚才拷贝的那个证书放到该目录下.

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

接下来导入elastic key到客户端服务器.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

下载Filebeat并且安装它通过rpm.

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.2-x86_64.rpm
rpm -ivh filebeat-7.4.2-x86_64.rpm

Filebeat已经安装成功, 进入配置目录并且对 'filebeat.yml'进行编辑.

cd /etc/filebeat/
vi filebeat.yml

接着找到paths部分,增加那个新的日志文件, 我们将增加两个日志文件 '/var/log/secure'用于ssh登录日志 并且 '/var/log/messages' 用于 那个服务器日志.

paths:
- /var/log/secure
- /var/log/messages

接着在后面增加一个配置定义那个syslog类型文件。

document-type: syslog

Filebeat已经默认使用Elasticsearch作为输出目标.在这篇教程, 我们将改变它到Logstash,关闭Elasticsearch output 增加 注释在以下命令行。

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]

接着开启Logstash的日志输出。也是在该配置文件下删除注释,并添加以下数据。

output.logstash:
# The Logstash hosts
hosts: ["10.0.15.10:5443"]
bulk_max_size: 1024
ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
template.name: "filebeat"
template.path: "filebeat.template.json"
template.overwrite: false

保存并退出。

接着开启系统启动时自动启动服务。

sudo systemctl enable filebeat
sudo systemctl start filebeat

使用systemctl status filebeat来进行检查是否启动。

systemctl status filebeat

测试Elastic Stack

centos 安装ELK的更多相关文章

  1. centos 安装elk监控

    下面就是要安装一些收集日志 或者分配日志的工具,我选择的是 Filebeat 来收集日志,然后放到kafka中 让kafka这个消息队列来分配生产者消费者  然后通过Logstash 或者一个国产大神 ...

  2. CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

    第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...

  3. 如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack

    原文地址:https://computingforgeeks.com/how-to-install-elk-stack-on-centos-fedora/ 原作者: Josphat Mutai 译者: ...

  4. 虚拟机创建及安装ELK

    虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    标题3 C ...

  5. 安装ELK

    1. 安装Elasticsearch a. 下载 : https://download.elasticsearch.org/elasticsearch/release/org/elasticsearc ...

  6. 基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 基于Ubuntu14.04下Suricata(一款高性能的网络ID ...

  7. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  8. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  9. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

随机推荐

  1. Docker - 在CentOS7.5中升级Docker版本

    1 - 检查当前版本 [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu ...

  2. springboot maven 收发JSON

    先在pom.xml添加 json 库 <dependency> <groupId>com.alibaba</groupId> <artifactId>f ...

  3. 【机器学习】attention机制

    参考: 1.https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html

  4. Andrew Ng机器学习课程10补充

    Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训 ...

  5. eNSP——实现OSPF与ACL综合实验

    OSPF与ACL再前几个随笔中提到了,现在我们来做一个实例. 拓扑图: 实验案例要求: 1.企业内网运行OSPF路由协议,区域规划如图所示:2.财务和研发所在的区域不受其他区域链路不稳定性影响:3.R ...

  6. layui开关switch显示不全问题

    先看效果: 开关显示不全,高度也不对称. 解决: 在所用到的html/jsp中自己加css .layui-form-switch { width: 52px; height: 23px; } 再看效果 ...

  7. 使用plotrix做韦恩图

    color <- c("#E41A1C","#377EB8","#FDB462") color_transparent <- a ...

  8. 用php做管理后台

    最近因处理家庭之事,技术上没有提高,这段时间也陆续的恢复了正常的开发,由于要做一个管理后台,所以在选择语言和架构上搜了不少资料, php 和java 的选择上,后来选择用php作为管理后台开发的语言. ...

  9. Java 非访问修饰符

    除了访问性修饰符,我们还有非访问性修饰符.这里主要说明static与final修饰符,其他修饰符以后用到再说. 一.static修饰符 static修饰符是用来修饰方法与变量. 1.创建StaticT ...

  10. Java线程同步synchronized的理解

    JVM中(留神:马上讲到的这两个存储区只在JVM内部与物理存储区无关)存在一个主内存(Main Memory),Java中所有的变量存储在主内存中,所有实例和实例的字段都在此区域,对于所有的线程是共享 ...