ELK日志系统

embedded/2024/9/23 3:24:39/

概念

ELK是一套完整的日志集中处理方案。

E:ElasticSearck 简称ES 分布式索引型非关系型数据库,用来存储logstash输出的日志 ,它是一个全文检索引擎,保存的格式是json格式

L:logstash 是基于Java语言开发的,用来作数据收集引擎、日志的收集。可以对数据进行过滤,分析,汇总,以标准格式输出

K:Kibana 是ES的可视化工具,对ES存储的数据进行可视化展示,分析和检索。

实验

数据流向

架构

192.168.233.10 ES1

192.168.233.20 ES2

192.168.233.30 logstash+Kibana+nginx/http

步骤

1.安装ntpdate(所有设备都要安装) 

yum -y install ntpdate -y

然后查看时间是否一致

2.在ES1和ES2(同步操作)

yum -y install java

安装 elasticsearch-6.7.2

rpm -ivh elasticsearch-6.7.2.rpm

然后配置elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

ES1改为

ES2改为

然后检查配置文件是否有错

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

systemctl restart elasticsearch.service

netstat -antp | grep 9200

报错日志 tail -f /var/log/elasticsearch/elk-cluster.log

访问浏览器看看是否正常 192.168.233.10:9200

3.两台ES都安装以下三个软件(同步操作)

node:基于谷歌浏览器的运行环境

phantomjs:虚拟浏览器

es-head-master:es的独立可视化工具,可以实现分片索引数据的可视化展示

两台ES同步操作:

把node-v8.2.1.tar、phantomjs-2.1.1-linux-x86_64.tar、elasticsearch-head-master拖进虚拟机

yum -y install gcc gcc-c++ make

tar -xf node-v8.2.1.tar.gz

cd node-v8.2.1/

./configure

make -j 4 && make install

cd /opt/

tar -xf phantomjs-2.1.1-linux-x86_64.tar.bz2

cd /opt/phantomjs-2.1.1-linux-x86_64/

cd bin/

cp phantomjs /usr/local/bin/

cd /opt/

unzip elasticsearch-head-master.zip

cd elasticsearch-head-master/

npm config set registry http://registry.npm.taobao.org/    指定淘宝镜像

npm install

vim /etc/elasticsearch/elasticsearch.yml

在最后添加

http.cors.enabled: true

http.cors.allow-origin: "*"

然后

systemctl restart elasticsearch.service

netstat -antp | grep 9200

npm run start &

然后访问可视化工具地址 192.168.233.10:9100

然后把localhost换成IP地址

然后在主ES1创建数据(ES也会同步)

curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

注:每创建一个指名的索引类型都会对数据进行分片

       高亮的就是主键,不亮的就是副键

4.在30上操作安装logstash

yum -y install httpd

systemctl restart httpd

yum -y install java

把logstash-6.7.2拖进30虚拟机

rpm -ivh logstash-6.7.2.rpm

systemctl restart logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#可以指定logstash的工作目录,默认为:/etc/logstash/conf.d
修改 vim /logstash.yml 然后在最后修改为 path.config: /opt/log

5.测试 Logstash 实例

logstash -e 'input { stdin{} } output { stdout{} }'


在这个下面输入www.baidu.com

结果

把数据发送到ES1和ES2

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.233.10:9200","192.168.233.20:9200"] } }' --path.data /opt/test1

如果报错

是因为后面没有加--path.data /opt/test1

在下面输入网址

www.baidu.com

结果

es的主从和数据模式

node.master: true

es数据库的主从类型 true/false

node.data: true

数据节点,是否保存数据,logstash发送数据,节点是否接收以及保存

ELK索引数据管理

es如何创建,修改,删除数据  

通过http的方式创建数据,post方式修改数据

创建数据

curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
对应的就是本地数据量的地址 IP+端口

put就是创建数据

index-demo  创建索引分片的名称

test   数据的名称

1 数据的id字段

?pretty&pretty 参数设定为json格式

-d  数据的具体内容

user":"zhangsan","mesg":"hello world  内容

修改数据

curl -X POST 'localhost:9200/index-demo/test/1/_update?pretty' -H 'Content-Type: application/json' -d '{  "doc": {    "user": "zhangsan",    "mesg": "hello1 world1"  } }'

删除数据

curl -X DELETE 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello1 world1"}'

创建日志收集系统

1.在30上面操作写一个脚本

cd /etc/logstash/conf.d/

vim system.conf (system可以随便写)

input {file {path =>"/var/log/messages"type =>"system"start_position =>"beginning"}}output {elasticsearch {hosts=>["192.168.233.10:9200","192.168.233.20:9200"]index =>"system-%{+YYYY.MM.dd}"}
}

然后赋权 chmod 777 /var/log/messages

启动

logstash -f system.conf --path.data /opt/test2 &

结果

即为创建成功

2.在30上安装kibana

把kibana-6.7.2-x86_64拖入30服务器中

cd /opt/
rpm -ivh kibana-6.7.2-x86_64.rpm

vim /etc/kibana/kibana.yml

然后  touch /var/log/kibana.log

chown kibana.kibana /var/log/kibana.log

systemctl restart kibana.service

systemctl enable kibana.service

结果

然后访问192.168.233.30:5601

然后点击“自己浏览” 上面点击“否”

同步数据

ELKF

F:filebeat 轻量级的开源日志文件数据收集器。logstah 占用系统资源比较大,属于重量级。有了filebeat可以节省资源,可以通过filebeat和logstash实现远程数据收集

filebeat不能对数据进行标准输出,不能输出为ES格式的数据,所以需要logstash把filebeat数据作标准化处理。

数据流向


http://www.ppmy.cn/embedded/88384.html

相关文章

Python爬虫知识体系-----Selenium

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新:https://blog.csdn.net/grd_java/article/details/140574349 文章目录 一、安装和基本使用二、元素定位三、访问元素信息四、自动化交互五、PhantomJS六、Chrome headless 一、安装和基本使用…

公交信息在线查询小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,线路信息管理,站点分类管理,站点信息管理,周边分类管理周边信息管理,系统管理 微信端账号功能包括:系统首页&#xff0…

如何在Python中使用网页抓取API获得Google搜索结果

SERP是搜索引擎结果页的缩写,它是你在百度、谷歌、Bing等搜索引擎中提交查询后所得到的页面。搜索引擎需要给所有页面做排序,把最能解决我们需求的页面展示给我们,企业会非常关注结果页的排序,也就是本企业内容的自然排名情况。手…

终于知道深度学习机器学习里的微积分需要学哪些知识了

1. 导数 (Derivatives) 在梯度下降法中使用导数来更新模型参数。 示例 使用Python和NumPy实现简单的线性回归梯度下降: 2. 偏导数 (Partial Derivatives) 在神经网络中使用偏导数来计算每个参数的梯度。 示例 使用Python和NumPy实现简单的神经网络反向传播&am…

网络安全防御【IPsec VPN搭建】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤: 修改双机热备的为主备模式: 2、配置交换机LSW6新增的配置: 3、防火墙(FW4)做相关的基础配置: 4、搭建IPsec VPN通道 (1…

动手学强化学习 第 18 章 离线强化学习 训练代码

基于 https://github.com/boyu-ai/Hands-on-RL/blob/main/%E7%AC%AC18%E7%AB%A0-%E7%A6%BB%E7%BA%BF%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0.ipynb 理论 离线强化学习 修改了警告和报错 运行环境 Debian GNU/Linux 12 Python 3.9.19 torch 2.0.1 gym 0.26.2 运行代码 CQL.…

【计算机视觉】基本概念和应用

计算机视觉:基本概念和应用 目录 引言计算机视觉的基本概念 图像处理与图像分析特征提取与表示机器学习与深度学习 计算机视觉的关键技术 图像分类目标检测图像分割姿态估计图像生成与风格迁移 计算机视觉的应用 自动驾驶医疗影像智能监控增强现实与虚拟现实 计算…

面对不断更新的硬件技术,安卓系统怎样优化性能以适配各类新型设备?

安卓系统通过一系列的优化措施来适配各类新型设备并提升性能。下面是一些常见的优化策略: 各版本的安卓系统都会针对新的硬件技术进行优化,以获得更好的性能和稳定性。每个新版本都会针对新的处理器架构、图形芯片和其他硬件特性进行优化。 安卓系统会根…