elk搭建

1、前言

ELK 是一个开源的日志管理解决方案,主要是为了统一收集生产的日志,方便日志的查询,传统的日志都是保存在每个机器上,当要查询的时候,需要到每一台机器上去查询日志,非常麻烦,而elk则使用了三个开源软件 Elasticsearch、Logstash 和 Kibana 去统一收集所有机器产生的日志,然后存储起来,再通过页面去展示查询,大大提高了查询日志的效率,而且ELK还可以用于监控系统的性能和健康状况,以及分析用户行为和趋势

Elasticsearch:是一个分布式实时搜索和分析引擎,可以用于存储、搜索和分析各种类型的数据,包括结构化、半结构化和非结构化数据。Elasticsearch 提供了强大的搜索和聚合功能,可以帮助用户快速地查找和分析数据

Logstash:是一个开源的数据收集引擎,可以用于收集、处理和转换各种类型的数据,包括日志、指标、事件等。Logstash 支持多种输入和输出插件,可以将数据从各种来源收集,并将其发送到各种目标

 Kibana:是一个开源的数据可视化工具,可以用于可视化和分析 Elasticsearch 中的数据。Kibana 提供了强大的数据可视化和分析功能,可以帮助用户快速地理解和分析数据

总的来说,ELK 是一个强大的日志管理解决方案,可以帮助用户快速地收集、存储、搜索和分析各种类型的数据,从而提高系统的可靠性和可维护性

2、主机信息

主机名称IPserviceport
A10.1.60.114elasticsearch、logstash9200、5044
B10.1.60.115kibana5601

2、elk搭建

上面已经说过了elk是由Elasticsearch、Logstash 、Kibana组成,现在来分别部署一下

2.1Elasticsearch部署

需要先部署基础环境,需要用到java环境,7版本以上的es需要用jdk 11版本以上的环境

参考:jdk1.8环境配置_Apex Predator的博客-CSDN博客

优化主机,必须要优化,不优化的话elasticsearch不能被外部访问,只能被自身访问

内核优化

vi /etc/security/limits.conf

* soft nofile 65537  #用于设置进程能够打开的文件数的软限制,即当前限制。如果进程试图打开超过这个限制的文件数,系统会向其发送警告信息,但仍然允许打开文件
* soft nproc 65537   #用于设置进程数的软限制,即当前限制。如果进程试图创建超过这个限制的子进程,系统会向其发送警告信息,但仍然允许创建子进程
* hard nofile 65537  #用于设置进程能够打开的文件数的硬限制,即最大限制。如果进程试图打开超过这个限制的文件数,系统会拒绝打开文件
* hard nproc 65537   #用于设置进程数的硬限制,即最大限制。如果进程试图创建超过这个限制的子进程,系统会拒绝创建子进程

 vi /etc/security/limits.d/20-nproc.conf

*          soft    nproc     4096  #变更soft  nproc项值为4096

 vi /etc/sysctl.conf 

vm.max_map_count = 262144    #用于设置每个进程能够拥有的最大内存映射区域数量,这个参数通常用于支持 Elasticsearch、Logstash 等应用程序,如果这些应用程序需要使用大量内存映射区域,就需要增加这个参数的值
net.core.somaxconn = 65535    #于设置系统中每个监听套接字的最大连接数。这个参数通常用于支持高并发的网络应用程序,例如 Web 服务器。增加这个参数的值可以提高系统的并发性能
net.ipv4.ip_forward = 1   #用于启用 IP 转发功能,允许系统作为路由器转发数据包。这个参数通常用于构建复杂的网络拓扑,例如 VPN 网络

执行以下命令使配置生效

sysctl -p

 在官网下载elasticsearch的安装包,本次搭建选择了7.17.10版本 

下载连接:Past Releases of Elastic Stack Software | Elastic

新建目录,将安装包上传到主机中并解压更改名称

mkdir /opt/elasticsearch

cd /opt/elasticsearch

tar -zxvf elasticsearch-7.17.10-linux-x86_64.tar.gz

mv elasticsearch-7.17.10-linux-x86_64 elasticsearch

ls /opt/elasticsearch

编辑elasticsearch配置文件

vi /opt/elasticsearch/elasticsearch/config/elasticsearch.yml

node.name: es01   #编辑es名称
path.data: /opt/elasticsearch/elasticsearch/data   #es数据存放路径
path.logs: /opt/elasticsearch/elasticsearch     #es日志存放路径
bootstrap.memory_lock: true          #内存锁配置
network.host: 0.0.0.0        #es地址,如果配置为127.0.0.1就只能本机访问
http.port: 9200              #es服务端口
discovery.seed_hosts: ["127.0.0.1", "[::1]"]    #es集群地址,因为是单节点配置本机就行
cluster.initial_master_nodes: ["es01"]     #es名称,因为是单节点配置本机es名称就行

以上的配置文件中,若是将host地址配置为127.0.0.1,就只能本机访问,配置文件不用加 discovery.seed_hosts和cluster.initial_master_nodes,也不用做主机优化es服务也能正常启动

创建elasticsearch服务的用户,elasticsearch服务不能使用root启动,不然会报错

groupadd elasticsearch

useradd elasticsearch -g elasticsearch -p elasticsearch   #-g指定用户组  -p指定密码

chown -R elasticsearch.elasticsearch /opt/elasticsearch/elasticsearch  

切换用户启动es服务

su elasticsearch

/opt/elasticsearch/elasticsearch/bin/elasticsearch -d   #-d为后台启动es服务

访问es服务看是否正常

curl 10.1.60.114:9200

 输出此内容表示es服务正常启动

 

2.2Logstash部署

安装logstash服务也需要java环境,因为和es在同一台机器上,就不需要再部署java环境了

在官网下载Logstash的安装包,本次搭建选择了7.17.10版本

Past Releases of Elastic Stack Software | Elastic

新建目录,将安装包上传到主机中并解压更改名称

mkdir /opt/logstash

cd /opt/logstatsh

tar -zxvf logstash-7.17.10-linux-x86_64.tar.gz

mv logstash-7.17.10-linux-x86_64 logstatsh

ls /opt/logstash

编辑logstash配置文件

vi /opt/logstash/logstash/config/logstash.conf 

input {             #日志收集
  beats {           #通过filebeat去收集日志
    port => 5044     #logstash的监听端口
    codec => "json"   #设置日志根式为json
  }
}

output {           #将收集的日志推送到es存储
  elasticsearch {            #配置es参数
    hosts => ["http://10.1.60.114:9200"]    #es服务的地址和端口
    index => "tmk-log"                      #指定es的索引名称
  }
}

 启动logstash服务

nohup /opt/logstash/logstash/bin/logstash -f /opt/logstash/logstash/config/logstash.conf > /opt/logstash/logstash/logstash.log &

查看服务是否启动

ps -ef |grep logstash

netstat -tlpn |grep 5044

一般情况下logstash与filebeat搭配使用,filebeat作为轻量级的日志收集服务,部署在每个主机上,而logstash是比较重的日志收集服务,作日志的统一归集,在发送到es上存储

2.3kibana部署

安装kibana也需要部署java环境,7版本以上的也是使用jdk 11版本以上

 参考:jdk1.8环境配置_Apex Predator的博客-CSDN博客

在官网下载kibana的安装包,本次搭建选择了7.17.10版本

Past Releases of Elastic Stack Software | Elastic

新建目录,将安装包上传到主机中并解压更改名称

mkdir /opt/kibana

cd /opt/kibana

tar -zxvf kibana-7.17.10-linux-x86_64.tar.gz

mv kibana-7.17.10-linux-x86_64 kibana

ls /opt/kibana

 编辑kibana配置文件

vi /opt/kibana/kibana/config/kibana.yml

server.port: 5601   #配置监听端口
server.host: "0.0.0.0"   #配置访问地址
server.name: "kibana"   #kibana名称
elasticsearch.hosts: ["http://127.0.0.1:9200"]    #配置es服务的地址
i18n.locale: "zh-CN"     #更改界面为中文模式

kibana也不能使用root用户启动,所以需要创建启动kibana服务用户

groupadd kibana

useradd kibana -g kibana -p kibana

授予权限给kibana目录

chown -R kibana.kibana /opt/kibana/kibana

切换用户启动kibana服务

su kibana

nohup /opt/kibana/kibana/bin/kibana > /opt/kibana/kibana/kibana.log &

查看kibana服务是否正常

netstat -tlpn |grep 5601

 

访问kibana

http://10.1.60.114:5601/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值