ELK 企业级日志分析系统

ELK 企业级日志分析系统

ELK 企业级日志分析系统是一个开源的日志管理解决方案,由三个核心组件组成:Elasticsearch、Logstash 和 Kibana。这三个组件共同工作,帮助用户收集、存储、搜索、分析和可视化日志数据。

  1. Elasticsearch:一个高度可扩展的开源全文搜索和分析引擎,用于存储和检索数据。Elasticsearch 基于 Lucene 构建,提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。
  2. Logstash:一个服务器端数据处理管道,可以同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储”中。Logstash 具有丰富的插件生态,可以解析各种格式和类型的数据。
  3. Kibana:一个开源的数据可视化和分析工具,通常与 Elasticsearch 协同工作。Kibana 提供了可视化的界面,允许用户轻松地创建图表、表格和地图,以便更好地理解日志数据。
    ELK 系统广泛应用于日志分析、实时监控和系统性能监控等领域。通过这三个组件的组合,ELK 系统提供了一个强大的平台,适用于处理大规模日志数据。

ELK 的部署

Node节点 (至少需要2核CPU4G内存)
192.168.20.10
192.168.20.20
Apache节点
192.168.20.30
Kiabana
192.168.20.40

1安装jdk环境
下载 jdk环境rpm包 可以通过我的网盘分享下载jdk8的rpm安装包
下载完成后使用 rpm命令安装这个JDK环境,

rpm -i jdk-8u202-linux-x64.rpm

再使用rpm查看Java路径

rpm -qpc jdk-8u202-linux-x64.rpm

记住Java路径
这里是/usr/java/jdk1.8.0_202-amd64
在这里插入图片描述
新建一个环境变量子文件增加或修改环境变量

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile.d/java.sh

版本更新成功
在这里插入图片描述

2部署Elasticsearch软件

下载并且安装Elasticsearch RPM 软件包

cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.2.rpm

在这里插入图片描述

rpm -i elasticsearch-5.0.2.rpm
systemctl daemon-reload    
systemctl enable elasticsearch.service
systemctl restart elasticsearch.service

刷新配置文件并且启动服务
在这里插入图片描述
备份并且修改elasticsearch主配置文件

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml

第十七行取消注释,cluster.name: 你想要的名字
在这里插入图片描述
第23行取消注释,修改你节点的名字IP
在这里插入图片描述
33行取消注释,指定数据存放路径path.data: /data/elk_data
37取消注释,指定日志存放路径path.logs: /var/log/elasticsearch/
在这里插入图片描述

43行取消注释关闭内存锁
在这里插入图片描述
55行取消注释将监听地址改为0.0.0.0监听所有地址
在这里插入图片描述
59行取消注释监听9200端口
在这里插入图片描述
68行取消注释设置集群发现通过单播实现,指定要发现的节点 可以是主机名也可以是IP,主机名需要在host文件中设置
在这里插入图片描述

cluster.name: xwm_jq
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.20.10", "192.168.20.20"]

创建/data/elk_data文件夹并且设置属组与属主,若是没有此文件夹就会报错导致elasticsearch无法启动

mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/

在这里插入图片描述
查看节点信息
浏览器访问 http://192.168.20.10:9200 、 http://192.168.20.20:9200 查看节点 Node1、Node2 的信息。
在这里插入图片描述
在这里插入图片描述
查看节点状态
在这里插入图片描述
green(绿色), 表示节点健康运行。
绿色: 健康 数据和副本 全都没有问题
红色: 数据都不完整
黄色: 数据完整,但副本有问题发

查看集群状态
http://192.168.20.10:9200/_cluster/state?pretty
在这里插入图片描述
使用这种方式查看集群状态和服务器状态不够直观,可以使用Elasticsearch-head

安装Elasticsearch-head 插件

编译安装 node

这里下载node源码包

在这里插入图片描述
解压缩node-v8.17.0.tar.gz 源码包

tar xfv  node-v8.17.0.tar.gz

在这里插入图片描述
安装编译依赖环境

yum -y install gcc gcc-c++ make

在这里插入图片描述

cd node-v8.17.0/
./configure
make -4j && make install

在这里插入图片描述
node编译安装完成

安装phantomjs

可以在官网下载
下载二进制文件包解压后可以直接使用

tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

在这里插入图片描述

安装 Elasticsearch-head 数据可视化工具

安装 Elasticsearch-head 数据可视化工具
#上传软件包 elasticsearch-head.tar.gz 到/opt

cd /opt
tar xfv elasticsearch-head.tar.gz
cd /opt/elasticsearch-head-5.0.0
npm install

在这里插入图片描述

插入索引

通过命令插入一个测试索引,索引为 index-demo,类型为 test。
curl -X PUT ‘localhost:9200/index-demo/test/1?pretty&pretty’ -H ‘content-Type: application/json’ -d ‘{“user”:“zhangsan”,“mesg”:“hello world”}’
//输出结果如下:
在这里插入图片描述
访问192.168.20.10:9100
在这里插入图片描述
可以看到它拥有一条索引

Logstash部署

在192.168.20.30机器上上传软件包 logstash-6.7.2.rpm 到/opt目录下

rpm -ivh logstash-6.7.2.rpm
systemctl start logstash.service
systemctl enable logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

这是一张图片
测试 Logstash
使用 rubydebug 输出详细格式显示,codec 为一种编解码器
logstash -e ‘input { stdin{} } output { stdout{ codec=>rubydebug } }’
在这里插入图片描述
使用 Logstash 将信息写入 Elasticsearch 中

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.20.10:9200"] } }'
		        	 输入				输出			对接
www.baidu.com

在这里插入图片描述

生成了新的日志 logstash发送到ES的日志
可以通过修改配置文件 让收集系统日志/var/log/message,并将其输出到elasticsearch服务器上
首先让logstersh有读取日志的权限

 chmod +r /var/log/messages

在/etc/logstash/conf.d添加Logstash配置文件

vim /etc/logstash/conf.d/messages.conf
 input {
    file {
        path =>"/var/log/messages"
        type =>"messages"
        start_position =>"beginning"
        sincedb_path => "/etc/logstash/sincedb_path/log_progress"
        add_field => {"log_hostname"=>"${HOSTNAME}"}
    }
}

output {
    elasticsearch {
        hosts => ["192.168.20.10:9200", "192.168.20.20:9200"]
        index =>"messages-%{+YYYY.MM.DD}"
    }
}
mkdir /etc/logstash/sincedb_path/
touch /etc/logstash/sincedb_path/log_progress
chown logstash:logstash /etc/logstash/sincedb_path/log_progress
logstash -f messages.conf

在这里插入图片描述
可以看见多出了一个messages索引,说明配置文件完成

安装 Kiabana

在192.168.20.40安装

cd /opt 
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.0.2-i686.rpm

在这里插入图片描述
使用 rpm命令安装Kibana

rpm -i kibana-5.0.2-i686.rpm

修改Kibana的配置文件

vim /etc/kibana/kabana.yul
#第二行取消注释
server.port: 5601
#第七行取消注释设置kabana需要监听的地址
server.host: "0.0.0.0"
#设置第二十八行置和 Elasticsearch 建立连接的地址和端口
elasticsearch.url: "http://192.168.20.10:9200"
#第三十行取消注释
kibana.index: ".kibana"

在这里插入图片描述
启动 Kibana 服务
systemctl start kibana.service
systemctl enable kibana.service
netstat -natp | grep 5601
验证 Kibana
浏览器访问 http://192.168.10.13:5601
第一次登录需要添加一个 Elasticsearch 索引:
Index name or pattern
在这里插入图片描述
elk配置完成

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ELK(Elasticsearch、Logstash、Kibana)是一个开源的日志管理和分析平台,能够帮助企业收集、存储、搜索、分析和可视化各种类型的日志数据。而Kafka是一个高吞吐量的分布式消息队列系统,可以用来收集和传输大规模的日志数据。Reyslog是一个开源的日志收集器,可以帮助企业从各种不同的数据源中收集日志数据。Filebeat是一个轻量级的日志收集工具,可以帮助企业从各种不同的文件中收集日志数据。 以下是ELK+kafka+reyslog+filebeat企业级部署的步骤: 1. 安装和配置Elasticsearch、Logstash和Kibana,并确保它们能够正常运行。可以使用docker-compose等工具来简化部署过程。 2. 安装和配置Kafka,并创建一个主题(topic)用于存储日志数据。 3. 安装和配置Reyslog,并将其配置为从各种不同的数据源中收集日志数据,并将其发送到Kafka主题(topic)中。 4. 安装和配置Filebeat,并将其配置为从各种不同的文件中收集日志数据,并将其发送到Kafka主题(topic)中。 5. 在Kibana中创建一个索引(index),并定义一个包含所有必需字段的映射(mapping)。然后,使用Logstash来将从Kafka主题(topic)中接收到的日志数据转换为适合索引(index)的格式,并将其存储在Elasticsearch中。 6. 在Kibana中创建一个仪表板(dashboard),并使用其可视化功能来呈现和分析日志数据。可以使用各种不同的可视化插件来创建自定义可视化效果。 7. 部署整个系统,并定期监控其性能和可用性,以确保其正常运行。 总之,ELK+kafka+reyslog+filebeat企业级部署需要进行一系列复杂的配置和设置,需要具备一定的技术知识和实践经验。建议企业可以考虑使用专业的日志管理和分析平台,如Splunk等,以简化部署和管理过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值