Linux:ELK:日志分析系统(使用elasticsearch集群)

原理

1. 将日志进行集中化管理(beats)

2. 将日志格式化(logstash)

将其安装在那个上面就对那个进行监控

3. 对格式化后的数据进行索引和存储(elasticsearch)

4. 前端数据的展示(kibana)


环境

要准备安装包

elasticsearch

elasticsearch-head

kibana

logstash

node

phantomjs

这些安装包都在网上很好找,自己去找最新的安装包也行,和我这个版本区别不大 

服务器(1)centos7 -- 192.168.254.1   -elasticsearch集群一份子,节点1(tarro1)节点1名字随便起

上面安装 elasticsearch,elasticsearch-head

服务器(2)centos7 -- 192.168.254.2   -elasticsearch集群一份子,节点2(tarro2)节点2名字随便起

上面安装 elasticsearch,elasticsearch-head logstash(监控其系统文件)

服务器(3)centos7 --  192.168.254.3 -- http服务

上面开启http服务   并安装 logstash(监控其系统文件)

 服务器(4)centos7 -- 192.168.254-3 -- kibana服务

上面开启kibana连接节点1和2 展示两位的收集出来的日志信息

 (1)和(2)要做一个集群hosts相互些写一下就行

全部关闭防火墙

全部关闭防火墙

全部关闭防火墙


 服务器(1)的配置

先将elasticsearch   elasticsearch-head  node   phantomjs   包放进去

hostnamectl set-hostname tarro1

 写入hosts

 安装java

yum -y install java
rpm -ivh elasticsearch-5.5.0.rpm 
systemctl daemon-reload
systemctl enable elasticsearch.service
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml 17 cluster.name: my-elk23 node.name: tarro133 path.data: /data/elk_data37 path.logs: /var/log/elasticsearch/ 43 bootstrap.memory_lock: false55 network.host: 0.0.0.059 http.port: 920068 discovery.zen.ping.unicast.hosts: ["tarro1", "tarro2"]前面的# 全去掉
群集名称 
17 cluster.name: my-elk-cluster
节点服务器名称23 node.name: node1
数据存放路径33 path.data: /data/elk_data
日志存放路径37 path.logs: /var/log/elasticsearch/ 在启动时不锁定内存43 bootstrap.memory_lock: false提供服务绑定的ip地址,0.0.0.0表示所有地址55 network.host: 0.0.0.0侦听端口59 http.port: 9200群集发现通过单播实现68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]
mkdir -p /data/elk_data
chown elasticsearch.elasticsearch /data/elk_data/
systemctl start elasticsearch.service
netstat -anpt | grep 9200

 

开启成功

yum -y install make gcc gcc-c++
tar xf node-v8.2.1.tar.gz
cd node-v8.2.1
./configure && make && make install

# 这里耐心等待,需要20分钟左右

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src
cp /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
tar xf elasticsearch-head.tar.gz -C /usr/src
cd /usr/src/elasticsearch-head/
npm install
vim /etc/elasticsearch/elasticsearch.yml 末尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl restart elasticsearch
npm start &

 

如果你重启以后可以执行

cd /usr/src/elasticsearch-head/ && npm start &

快速启动 

成功


服务器(2)的配置

 先将elasticsearch   elasticsearch-head  node   phantomjs   logstash 包放进去

hostnamectl set-hostname tarro2 

 写入hosts

 安装java

yum -y install java
rpm -ivh elasticsearch-5.5.0.rpm 
systemctl daemon-reload
systemctl enable elasticsearch.service
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml 17 cluster.name: my-elk23 node.name: tarro233 path.data: /data/elk_data37 path.logs: /var/log/elasticsearch/ 43 bootstrap.memory_lock: false55 network.host: 0.0.0.059 http.port: 920068 discovery.zen.ping.unicast.hosts: ["tarro1", "tarro2"]前面的# 全去掉
群集名称 
17 cluster.name: my-elk-cluster
节点服务器名称23 node.name: node1
数据存放路径33 path.data: /data/elk_data
日志存放路径37 path.logs: /var/log/elasticsearch/ 在启动时不锁定内存43 bootstrap.memory_lock: false提供服务绑定的ip地址,0.0.0.0表示所有地址55 network.host: 0.0.0.0侦听端口59 http.port: 9200群集发现通过单播实现68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]
mkdir -p /data/elk_data
chown elasticsearch.elasticsearch /data/elk_data/
systemctl start elasticsearch.service
netstat -anpt | grep 9200

 

成功

yum -y install make gcc gcc-c++
tar xf node-v8.2.1.tar.gz 
cd node-v8.2.1
./configure && make && make install

# 很久,耐心等待

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src
cp /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
tar xf elasticsearch-head.tar.gz -C /usr/src
cd /usr/src/elasticsearch-head/
npm install
vim /etc/elasticsearch/elasticsearch.yml 末尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl restart elasticsearch
npm start &

 

如果你重启以后可以执行

cd /usr/src/elasticsearch-head/ && npm start &

快速启动 

成功

rpm -ivh logstash-5.5.1.rpm 
systemctl start logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
chmod o+r /var/log/messages 
vim /etc/logstash/conf.d/system.confinput {file {path => "/var/log/messages"type => "system"start_position => "beginning"}
}output {elasticsearch {hosts => ["192.168.254.1:9200"]index => "system-%{+YYYY.MM.dd}"}
}
#________________________________________注释:
input {file {                             从文件中读取path => "/var/log/messages"    文件路径type => "system"start_position => "beginning"  是否从头开始读取}}output {elasticsearch {                        输出到elasticsearch中hosts => ["192.168.10.181:9200"]   elasticsearch主机地址和端口index => "system-%{+YYYY.MM.dd}"   索引名称}}
---------------------------
systemctl restart logstash

现在就已经可以收集日志了,收集的是tarro2主机上的日志

这样就配置成功了


 服务器(3)的配置

yum -y install httpd
systemctl start httpd


 可以访问就行,这里主要将的不是http而是logstash

 将logstash 传入服务器(3)内

yum -y install java
rpm -ivh logstash-5.5.1.rpm 
systemctl daemon-reload
systemctl enable logstash.service
vim /etc/logstash/conf.d/apache_log.confinput {file {path => "/etc/httpd/logs/access_log"type => "access"start_position => "beginning"}   file {path => "/etc/httpd/logs/error_log"type => "error"start_position => "beginning"}   
}output {if [type] == "access" {elasticsearch {hosts => ["192.168.254.1:9200"]index => "apache_access-%{+YYYY.MM.dd}"}}if [type] == "error" {elasticsearch {hosts => ["192.168.254.1:9200"]index => "apache_error-%{+YYYY.MM.dd}"}}}
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
logstash -f /etc/logstash/conf.d/apache_log.conf 

这样以后去 Elasticsearch 集群看一下

收集日志成功 


服务器(4)的配置 

安装一个kibana展示出来

yum -y install java

将 kibana包传入服务器(4)

rpm -ivh kibana-5.5.1-x86_64.rpm 
systemctl enable kibana
vim /etc/kibana/kibana.yml 2 server.port: 56017 server.host: "0.0.0.0"21 elasticsearch.url: "http://192.168.254.1:9200"30 kibana.index: ".kibana"去掉前面#注释:server.port: 5601                             kibana打开的端口server.host: "0.0.0.0"                        kibana侦听的地址elasticsearch.url: "http://192.168.10.181:9200"    和elasticsearch建立联系kibana.index: ".kibana"                     在elasticsearch中添加.kibana索引
systemctl start kibana

http://192.168.254.4:5601/
↑
http://kibanaip:5601/

 进入成功


设置kibana展示

 

 

 这个是192.168.254.2的系统日志展示,还差个192.168.254.3的网站日志展示

 

 

 

 点击切换

要看那个选那个

 

展示成功 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/13602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11. Mybatis 的增删查改【万字详解】

目录 1. 数据的查找 select 1.1 查询所有数据 1.2 通过 id 进行查找 2. 插入数据 insert 3. 修改数据 update 4. 删除数据 delete 5. $ 和 # 的区别 5.1 SQL 注入 用户登录 6. Spring Boot 打印 SQL 日志 7. order by 排序 8. like 查询 9. 通过页面返回数据 10. …

【算法基础:动态规划】5.3 计数类DP(整数拆分、分拆数)

文章目录 例题:900. 整数划分解法1——完全背包解法2——分拆数⭐⭐⭐ 例题:900. 整数划分 https://www.acwing.com/problem/content/902/ 解法1——完全背包 容量是 n,物品的大小和价值是 1 ~ n 中的所有数字。 import java.util.*;pub…

【JAVASE】循环结构

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 循环 1. 循环结构1.1 while 循环1.2 bre…

招商银行秋招攻略和考试内容详解

招商银行秋招简介 招商银行是一家股份制商业银行,银行的服务理念已经深入人心,在社会竞争愈来愈烈的今天,招商银行的招牌无疑是个香饽饽,很多人也慕名而至,纷纷向招商银行投出了简历。那么秋招银行的秋招开始时间是多…

支持向量机(iris)

代码: import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn import svm import numpy as np# 定义每一列的属性 colnames [sepal-length, sepal-width, petal-length, petal-width, class] # 读取数据 iris pd.read_csv(data\\i…

消息队列总结(4)- RabbitMQ Kafka RocketMQ高性能方案

1.RabbitMQ的高性能解决方案 1.1 发布确认机制 RabbitMQ提供了3种生产者发布确认的模式: 简单模式(Simple Mode):生产者发送消息后,等待服务器确认消息已经被接收。这种模式下,生产者发送消息后会阻塞&am…

论文笔记--Skip-Thought Vectors

论文笔记--Skip-Thought Vectors 1. 文章简介2. 文章概括3 文章重点技术3.1 Skip Thought Vectors3.2 词表拓展 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:Skip-Thought Vectors作者:Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov, Rich…

JavaSE复盘2

Collection接口的接口对象集合(单列集合) List接口:元素按照先后有序保存,可重复 LinkList接口实现类,链表,随机访问,没有同步,线程不安全ArrayList接口实现类,数组&…

element时间选择器的默认值

概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。 一、默认时间选择器 实现思路: element组件的v-model绑…

忘记安卓图案/密码锁如何解锁?

如何解锁Android手机图案锁?如何删除忘记的密码?Android 手机锁定后如何重置?这是许多智能手机用户在网上提出的几个问题。为了回答这些问题,我们想出了一些简单有效的方法来解锁任何设备而不丢失数据。 忘记手机密码可能会令人恐…

web服务器(Tomcat)

目录 一、web服务器 1. 常见web服务器 2. web服务器简介 二、 Apache Tomcat服务器 1. Tomcat服务器简介 2. Tomcat服务器基本使用 3. 启动tomcat常见问题 (1)启动tomcat控制台乱码 (2)启动tomcat闪退问题 (…

爬虫003_pycharm的安装以及使用_以及python脚本模版设置---python工作笔记021

这里我们用ide,pycharm来编码,看一看如何下载 这里我们下载这个社区办,这个是免费的,个人版是收费的 然后勾选以后 安装以后我们来创建一个项目 这里可以选择python的解释器,选择右边的... 这里我们找到我们自己安装的python解释器

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境4

7、使用串口工具 (1)连接硬件 连接 Type C 线, 一端电脑一端开发板 查看设备是否已经正确识别: 在 Windows 下可以打开设备管理器来查看 如果没有发现设备, 需要确认有没有装驱动以及接触是否良好 (2&a…

【JVM】详解JVM的五大内存模型、可能出现的异常以及堆栈引用易错点

文章目录 1、堆(线程共享)2、方法区(线程共享)3、虚拟机栈(线程私有)4、本地方法栈(线程私有)5、程序计数器(线程私有)6、易错点 源自:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明 1、堆(线程…

C语言第十一课--------操作符的使用与分类-------基本操作

作者前言 作者介绍: 作者id:老秦包你会, 简单介绍: 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们…

css 书写规范!其他人总结!

CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, margin) 3.文字系列(font, line-height, letter-spacing, color- text-align等) 4.背景(background, border等) 5.其他(animation, transition等) CSS书写规范 使用…

MyBatis-Plus自定义sql注入器

文章目录 一、前言二、MyBatis-Plus自定义sql注入器功能实现2.1、编写自定义sql类2.2、将自定义sql添加到BaseMapper中2.3、编写自己的sql注入器 一、前言 在日常开发过程中,我们可能会发现 MyBatis-Plus 提供的那些自带的 sql 语句无法满足我们的开发需求&#xf…

web自动化测试进阶篇05 ——— 界面交互场景测试

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

【Ajax】笔记-同源策略

同源策略(Same-Origin Policy),是浏览器的一种安全策略 同源(即url相同):协议、域名、端口号 必须完全相同。(请求是来自同一个服务) 跨域:违背了同源策略,即跨域。 ajax请求是遵循…

texshop mac中文版-TeXShop for Mac(Latex编辑预览工具)

texshop for mac是一款可以在苹果电脑MAC OS平台上使用的非常不错的Mac应用软件,texshop for mac是一个非常有用的工具,广泛使用在数学,计算机科学,物理学,经济学等领域的合作,这些程序的标准tetex分布特产…