准备安装环境

由于本人的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. python 爬虫实例(二)

    环境: OS:Window10 python:3.7 描述 打开下面的网址,之后抓取其中的图片 https://music.163.com/#/artist/album?id=101988&l ...

  2. htm5 css学习笔记整理

    点击链接后退页面: <a href="javascript:history.go(-1)">回到上一个网页</a> ——修改placeholder提示的样式 ...

  3. 2019年广东省赛gdccpc回顾

    本次比赛状态一般般,热身赛单人挂机爆零让自己慌了一整天. 开题直接抓E题入手,准备交题后关机(辣鸡云桌面),开机后又告诉我要关机,心急连交两发结果都WA了,最后靠队员提醒救了回来.心态还算稳住了.后面 ...

  4. qmake持续学习

    1 qmake技巧:  https://blog.csdn.net/chenjianqi0502/article/details/79092433

  5. 计算机视觉/图像处理工具箱推荐(转自cvnote)

    最近在几个地方都看到有人问C++下用什么矩阵运算库比较好,顺便做了个调查,做一些相关的推荐吧.主要针对稠密矩阵,有时间会再写一个稀疏矩阵的推荐. Armadillo:C++下的Matlab替代品 地址 ...

  6. [转帖]PCIe 6.0 v0.3版本草案已完稿:2021年转正、x16带宽飙至128GB/s

    PCIe 6.0 v0.3版本草案已完稿:2021年转正.x16带宽飙至128GB/s https://www.cnbeta.com/articles/tech/899389.htm 硬件发展突飞猛进 ...

  7. WiFi、ZigBee、BLE用哪个?

    小米是这么选的: 1) 插电的设备,用WiFi: 2) 需要和手机交互的,用BLE: 3) 传感器用ZigBee. WIFI,WIFI是目前应用最广泛的无线通信技术,传输距离在100-300M,速率可 ...

  8. Python进阶:生成器--懒人版本的迭代器

    从容器.可迭代对象谈起 所有的容器都是可迭代的(iterable),迭代器提供了一个next方法.iter()返回一个迭代器,通过next()函数可以实现遍历. def is_iterable(par ...

  9. svn: E230001: Server SSL certificate verification failed: certificate issued

    svn: E230001: Server SSL certificate verification failed: certificate issued 今天在使用svn时候发现出现这个问题,这个是因 ...

  10. Scala 数组操作之数组转换

    使用yield和函数式编程转换数组 // 对Array进行转换,获取的还是Array val a = Array(1, 2, 3, 4, 5) val a2 = for (ele <- a) y ...