登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 522|回复: 0

Centos7上安装与设置ElasticStack

[复制链接]

177

主题

177

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-3 19:07:19 | 显示全部楼层 |阅读模式 来自 贵州
Elastic Stack简介工具名称先容
Elasticsearch是基于 Lucene 由 Java 开辟的开源搜刮引擎。它提供了一个分布式、多租户的全文搜刮引擎(多租户是指多租户技能,是一种软件架构技能,用来探究与实现如安在多用户的情况下共用雷同的体系或步伐组件,而且仍可确保各用户间数据的隔离性。),并带有 HTTP 仪表盘的 Web 界面(Kibana)。数据会被 Elasticsearch 查询、检索,而且利用 JSON 文档方案存储。Elasticsearch 是一个可扩展的搜刮引擎,可用于搜刮全部范例的文本文档,包罗日记文件。Elasticsearch 是 Elastic Stack 的焦点,Elastic Stack 也被称为 ELK Stack。
Logstash是用于管理变乱和日记的开源工具。它为数据网络提供及时通报途径。 Logstash 将网络您的日记数据,将数据转换为 JSON 文档,并将其存储在 Elasticsearch 中。
Kibana是 Elasticsearch 的开源数据可视化工具。Kibana 提供了一个美丽的仪表盘 Web 界面。 你可以用它来管理和可视化来自 Elasticsearch 的数据。 它不但漂亮,而且强盛。
在本教程中,我将向您展示如安在 CentOS 7 服务器上安装和设置 Elastic Stack 以监督服务器日记。 然后,我将向您展示如安在操纵体系为 CentOS 7 和 Ubuntu 16 的客户端上安装 “Elastic beats”。
Elastic Stack所需情况条件64 位的 CentOS 7,4 GB 内存 - elk 主控机 64 位的 CentOS 7 ,1 GB 内存 - 客户端 1 64 位的 Ubuntu 16 ,1 GB 内存 - 客户端 2步调 1 - 操纵体系初始化禁用 CentOS 7 服务器上的 SELinux
我们将禁用 CentOS 7 服务器上的 SELinux。 编辑 SELinux 设置文件。
vim /etc/sysconfig/selinux 将 SELINUX 的值从 enforcing改成disabled SELINUX=disabled 然后重启服务器: reboot 再次登录服务器并查抄 SELinux 状态。 getenforce disabled步调 2 - 安装 Java情况
摆设 Elastic stack 依靠于Java,Elasticsearch 必要 Java 8 版本,保举利用 Oracle JDK 1.8 。从官方的 Oracle rpm 包安装 Java 8。
wget http://download.oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u77-linux-x64.rpm \\下载java8的版本 rpm -ivh jdk-8u77-linux-x64.rpm \\rpm安装jdk情况 java -version \\检察java的版本 查抄可否工作步调 3 - 安装和设置 Elasticsearch
在此步调中,我们将安装和设置 Elasticsearch。 从 elastic.co 网站提供的 rpm 包安装 Elasticsearch,并将其设置运行在 localhost 上(以确保该步伐安全,而且不能从外部访问)。
将 elastic.co 的密钥添加到服务器
elastic.co网站是一个https的网站(私有证书),我们必要添加证书秘钥才气安全的顺遂下载。
rpm --import http://artifacts.elastic.co/GPG-KEY-elasticsearch下载安装 Elasticsearch 5.1wget http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm rpm -ivh elasticsearch-5.1.1.rpm安装完成后我们编辑设置文件
设置文件名称:elasticsaerch.yml
cd /etc/elasticsearch/ vim elasticsearch.yml bootstrap.memory_lock: true \\去掉第 40 行的解释,启用 Elasticsearch 的内存锁。这将禁用 Elasticsearch 的内存互换。 network.host: localhost http.port: 9200 \\在 Network 块中,取消解释 network.host 和 http.port 行。
编辑 elasticsearch.service 文件的内存锁设置。
vim /usr/lib/systemd/system/elasticsearch.service MAX_LOCKED_MEMORY=unlimited \\去掉第 60 行的解释,确保该值为 unlimited。设置服务启动
Elasticsearch监听端标语9200,启用 CentOS 服务器上启用mlockall 来禁用内存互换,设置Elasticsearch开机自启动,然后启动服务。
sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch
查抄对外监听端口:
netstat -plntu
LXdn75X5LwP8RdvX.jpg 内存锁启用 mlockall,查抄 Elasticsearch 是否正在运行。
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty' curl -XGET 'localhost:9200/?pretty'
i5KiPZzNvs8Ni4kP.jpg
步调 4 - 安装和设置 Kibana 和 Nginx
先安装Kibana,然后安装nginx,末了设置nginx反向署理kibana
安装并设置Kibanawget http://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm rpm -ivh kibana-5.1.1-x86_64.rpm
编辑 Kibana 设置文件。
vim /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 对外监听端口 5601 确保其正常启动。
netstat -plntu
kqR8agHy71HfH3S3.jpg
安装并设置nginx服务器yum -y install epel-release nginx 服务的yum包在epel包中可以找的 直接yum安装 yum -y install nginx httpd-tools
httpd-tools 软件包包罗 Web 服务器的工具,可以为 Kibana 添加 htpasswd 底子认证。
编辑 Nginx 设置文件并删除 server {}模块,如许我们添加新的假造主机设置。
cd /etc/nginx/ vim nginx.conf \\删除 server { } 块。
O5tdkY1KI1aogiKK.jpg 创建kibana.conf的假造主机:
vim /etc/nginx/conf.d/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 下令创建一个新的根本认证文件。
sudo htpasswd -c /etc/nginx/.kibana-user admin “输入你的暗码”
启动 Nginx。
nginx -t systemctl enable nginx systemctl start nginx
tJt8ZPtjEBtS664c.jpg
步调 5 - 安装和设置 Logstash
在此步调中,我们将安装 Logstash,并将其设置为:从设置了 filebeat 的 logstash 客户端里会合化服务器的日记,然后过滤和转换 Syslog 数据,并将其移动到存储中央(Elasticsearch)中。
下载 Logstash 并利用 rpm 举行安装。
wget http://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm rpm -ivh logstash-5.1.1.rpm
天生新的 SSL 证书文件,以便客户端可以辨认 elastic 服务端。
cd /etc/pki/tls \\ 进入 tls 目次并编辑 openssl.cnf 文件。 vim 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 文件来为 filebeat 设置日记源,然后创建一个 syslog-filter.conf 设置文件来处置惩罚 syslog,再创建一个 output-elasticsearch.conf 文件来界说输出日记数据到 Elasticsearch。
转到 logstash 设置目次,并在 conf.d 子目次中创建新的设置文件。
cd /etc/logstash/ vim conf.d/filebeat-input.conf 输入设置,粘贴以下设置: 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 文件
vim 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。
vim 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
RU7o9e89S9LaBqu7.jpg
步调 6 - 在 CentOS 客户端上安装并设置 Filebeat
Beat 作为数据发送人的脚色,是一种可以安装在客户端节点上的轻量级署理,将大量数据从客户机发送到 Logstash 或 Elasticsearch 服务器。有 4 种 beat,Filebeat 用于发送“日记文件”,Metricbeat 用于发送“指标”,Packetbeat 用于发送“网络数据”,Winlogbeat 用于发送 Windows 客户端的“变乱日记”。
在本教程中,我将向您展示怎样安装和设置 Filebeat,通过 SSL 毗连将数据日记文件传输到 Logstash 服务器。
登录到客户端1的服务器上。 然后将证书文件从 elastic 服务器复制到客户端1的服务器上。
ssh root@client1IP scp root@elk-serverIP:~/logstash-forwarder.crt . ..... sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/
接下来,在客户端 1 服务器上导入 elastic 密钥。
rpm --import http://artifacts.elastic.co/GPG-KEY-elasticsearch 下载 Filebeat 而且用 rpm 下令安装。 wget http://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm rpm -ivh filebeat-5.1.1-x86_64.rpm
Filebeat 已经安装好了,请转到设置目次并编辑 filebeat.yml 文件。
cd /etc/filebeat/ vim filebeat.yml \\ 在第 21 行的路径部门,添加新的日记文件。 我们将创建两个文件,记载 ssh 运动的 /var/log/secure 文件 ,以及服务器日记 /var/log/messages : paths: - /var/log/secure - /var/log/messages \\在第 26 行添加一个新设置来界说 syslog 范例的文件: document-type: syslog \\在 83 行和 85 行添加解释来禁用 Elasticsearch 输出,更改为 Logshtash: # 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
PS:Filebeat 默认利用 Elasticsearch 作为输出目的。 在本教程中,我们将其更改为 Logshtash。
将 Filebeat 设定为开机启动并启动。
sudo systemctl enable filebeat sudo systemctl start filebeat步调 7 - 在 Ubuntu 客户端上安装并设置 Filebeat
从服务端拷贝证书文件
ssh root@ubuntu-clientIP scp root@elk-serverIP:~/logstash-forwarder.crt . ....... sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/
在服务器上导入 elastic 密钥。
wget -qO - http://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
下载 Filebeat .deb 包而且利用 dpkg 下令举行安装。
wget http://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb dpkg -i filebeat-5.1.1-amd64.deb
转到设置目次并编辑 filebeat.yml 文件。
cd /etc/filebeat/ vim filebeat.yml \\ 在第 21 行的路径部门,添加新的日记文件。 我们将创建两个文件,记载 ssh 运动的 /var/log/secure 文件 ,以及服务器日记 /var/log/messages : paths: - /var/log/secure - /var/log/messages \\在第 26 行添加一个新设置来界说 syslog 范例的文件: document-type: syslog \\在 83 行和 85 行添加解释来禁用 Elasticsearch 输出,更改为 Logshtash: # 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
PS:Filebeat 默认利用 Elasticsearch 作为输出目的。 在本教程中,我们将其更改为 Logshtash。
将 Filebeat 设定为开机启动并启动。
sudo systemctl enable filebeat sudo systemctl start filebeat
查抄服务状态:
systemctl status filebeat ALNFpa30mA3IdFWC.jpg 步调 8 - 测试
打开您的网络欣赏器,并访问您在 Nginx 中设置的 elastic stack 域名,我的是“elk-stack.co”。 利用管理员暗码登录,然后按 Enter 键登录 Kibana 仪表盘。
FoUUnjjX1Uu8LjUv.jpg
创建一个新的默认索引 filebeat-*,然后点击“创建”按钮。 lsy7QW3s73yafSa3.jpg
默认索引已创建。 假如 elastic stack 上有多个 beat,您可以在“星形”按钮上点击一下即可设置默认 beat。
wp09yKZ2i9a2p9YW.jpg
转到 “发现” 菜单,您就可以看到 elk-client1 和 elk-client2 服务器上的全部日记文件。
g7ss7bwlvD7pKnhb.jpg
来自 elk-client1 服务器日记中的无效 ssh 登录的 JSON 输出示例。 unp0eseMgzmnQ7rt.jpg
利用其他的选项,你可以利用 Kibana 仪表盘做更多的事变。
Elastic Stack 已安装在 CentOS 7 服务器上。 Filebeat 已安装在 CentOS 7 和 Ubuntu 客户端上。
via:http://www.howtoforge.com/tutorial/how-to-install-elastic-stack-on-centos-7/
作者:Muhammad Arul译者:Flowsnow校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
原文来自:http://linux.cn/article-8460-1.html

本文地点:http://www.linuxprobe.com/elastic-stack-conf-install.html编辑:陶武杰,考核员:冯振华





上一篇:CentOS7安装开源跳板机(堡垒机)
下一篇:千锋成都Python培训——设置CentOS7体系假造机
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-17 19:33 , Processed in 0.078118 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表