(一)单集群部署ELK

官网下载地址:https://www.elastic.co/downloads
官网文档地址:https://www.elastic.co/guide/en/logstash/current/index.html
中文文档地址:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html

1. ELK的组成部分

ELK的组成部分由:elasticsearch、logstash、kibana、filebeat组成
elasticsearch:开源的分布式搜素引擎,提供搜索、分析、存储数据三大功能。它的特点:分布式、零配置、自动发现、索引自动分片等。
logstash:主要用来日志的搜集和分析、过滤日志工具,支持大量的数据获取方式。
kibana:提供日志分析的web界面,可以分析、搜索日志。
filebeat:隶属于beats。

2. 单集群的架构部署

在这里插入图片描述
这是最简单的一种ELK架构方式。优点是搭建简单,易于上手。缺点是Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。
此架构由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web方便的对日志查询,并根据数据生成报表。

2.1 ELK部署
服务服务器ip服务启动端口
elasticsearch192.168.159.1309200、9300
logstash192.168.159.1319600
kibana192.168.159.1325601
elasticsearch安装

下载地址:https://www.elastic.co/downloads 但是这种方式下载会非常缓慢
可以使用这个网址:https://mirrors.huaweicloud.com/ 里面搜索elasticsearch的rpm包

# 安装
[root@node2 ~]# rpm -ivh elasticsearch-6.8.1.rpm
# 查看rpm安装包的内容
[root@node2 ~]# rpm -ql elasticsearch
主要的文件内容
/etc/elasticsearch  		#配置文件目录
/usr/share/elasticsearch    #主程序目录
/var/lib/elasticsearch      #数据目录
/var/log/elasticsearch      #日志存放目录
/var/run/elasticsearch      #进程文件存放目录
/usr/lib/systemd/system/elasticsearch.service #系统启动脚本

#创建elasticsearch用户和组
groupadd elasticsearch
useradd elasticsearch -s /sbin/nologin
#目录权限更改
chown -R elasticsearch:elasticsearch /var/log/elasticsearch /var/lib/elasticsearch

#安装JDK,elasticsearch是基于java编译的所以需要jdk的支持
下载JDK安装包
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/lcoal
vim /etc/profile #增加如下配置,配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_231
export JRE_HOME=/usr/local/jdk1.8.0_231/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
source /etc/profile #生效
ln -s /usr/local/jdk1.8.0_231/bin/java /usr/sbin
测试java
[root@node2 ~]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

#elasticsearch主配置文件
[root@node2 ~]# grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml
cluster.name: ELK-Cluster 			#集群名称
node.name: elk-node1				#节点名称
path.data: /var/lib/elasticsearch   #data目录
path.logs: /var/log/elasticsearch   #logs目录
bootstrap.memory_lock: true			#服务启动的时候锁定足够的内存,防止数据写入swap
network.host: 0.0.0.0				#监听地址
http.port: 9200						#端口
discovery.zen.ping.unicast.hosts: ["192.168.159.130","192.168.159.131"]		#自动发现主机
#修改内存限制
[root@node2 ~]# vim /usr/lib/systemd/system/elasticsearch.service
LimitNOFILE=65535 #指定打开文件最大数目
LimitNPROC=4096 #指定进程的最大数目
LimitMEMLOCK=infinity
#LimitAS=infinity #指定虚拟内存的最大大小
#LimitFSIZE=infinity #指定最大文件大小,infinity(无穷大)
[root@node2 ~]# vim /etc/elasticsearch/jvm.options
-Xms1g #最小内存大小,如何指定内存大小呢。一般设置为系统内存的一半,Xms=Xmx
-Xmx1g #最大内存大小

#修改系统文件配置
vim /etc/security/limits.conf
*                soft    nproc          10000
*                hard    nproc          10000
*                soft    nofile         65536
*                hard    nofile         65536
*                soft    memlock        32000
*                hard    memlock        32000


#elasticsearch服务启动
systemctl start elasticsearch.service
systemctl enbale elasticsearch.service
启动端口:9200访问端口、9300内部通信端口
[root@node2 ~]# netstat -tnlp | grep 5201
tcp6       0      0 :::9200                 :::*                    LISTEN      5201/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      5201/java 
查看启动日志
[root@node2 ~]# tail -f /var/log/elasticsearch/ELK-Cluster.log

通过访问web地址http://192.168.159.130:9200/可以看到界面即表示成功
logstash安装
# 安装JDK
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/lcoal
vim /etc/profile #增加如下配置,配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_231
export JRE_HOME=/usr/local/jdk1.8.0_231/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
source /etc/profile #生效
ln -s /usr/local/jdk1.8.0_231/bin/java /usr/sbin
#安装logstash
[root@node03 ~]# rpm -ivh logstash-6.8.1.rpm
[root@node03 ~]# rpm -ql logstash
主要的文件内容
/var/lib/logstash 		#数据目录
/var/log/logstash		#日志目录
/etc/logstash/			#配置文件目录
/usr/share/logstash/	#主程序目录
/usr/lib/systemd/system/logstash.service #系统启动脚本
#启动脚本内容
[Unit]
Description=logstash
[Service]
Type=simple
User=logstash
Group=logstash
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward. 
EnvironmentFile=-/etc/default/logstash
EnvironmentFile=-/etc/sysconfig/logstash
ExecStart=/usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash/" "--path.config" "/etc/logstash/conf.d"
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target
#添加logstash用户及授权目录
groupadd logstash
useradd logstash -s /sbin/nologin
chown -R logstash:logstash /usr/share/logstash/data/ #不然启动时候会报错
#配置文件
[root@node03 inputs]# grep '^[a-Z]' /etc/logstash/logstash.yml
path.data: /var/lib/logstash				#数据存放目录
path.config: /etc/logstash/conf.d/*.conf	#收集日志的配置文件
path.logs: /var/log/logstash				#日志目录
#创建conf.d目录,用于存放匹配日志
mkdir -pv /etc/logstash/conf.d
#logstash服务启动
systemctl start logstash.service
systemctl enbale logstash.service
指定配置文件启动,这样启动会中断
/usr/share/logstash/bin/logstash -f /etc/logstash/logstash-sample.conf
后台启动
nohup /usr/share/logstash/bin/logstash -f /etc/logstash/logstash-sample.conf >> /var/log/logstash/nohup.out 2&>1 &
启动端口:9600
[root@node03 inputs]# netstat -tnlp |grep 14832
tcp6       0      0 127.0.0.1:9600          :::*                    LISTEN      14832/java
启动日志查看
[root@node03 inputs]# tail -f /var/log/logstash/logstash-plain.log
kibana安装
#安装kibana
[root@node03 ~]# rpm -ivh kibana-6.8.1.rpm
[root@node03 ~]# rpm -ql kibana
主要的文件内容
/var/lib/kibana 		#数据目录
/var/log/kibana			#日志目录
/etc/kibana/			#配置文件目录
/usr/share/kibana/		#主程序目录
/usr/lib/systemd/system/kibana.service #系统启动脚本
#配置文件
[root@node04 kibana]# grep '^[a-Z]' /etc/kibana/kibana.yml
server.port: 5601		#端口
server.host: "0.0.0.0"	#监听地址
elasticsearch.hosts: ["http://192.168.159.130:9200"]  #elasticsearch集群地址
i18n.locale: "zh-CN"    #中文
#kibana服务启动
systemctl start kibana.service
systemctl enbale kibana.service
启动端口:5601
[root@node04 kibana]# netstat -tnlp | grep 5601
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      4480/node
#查看kibana状态
http://192.168.159.132:5601/status
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持,坚持,再坚持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值