首页 > 编程知识 正文

linux运维招聘要求,系统日志分析工具

时间:2023-05-05 04:57:29 阅读:40860 作者:182

文章目录一、ELK日志分析系统的概念构成优缺点日志处理过程二、ELK组件及其各自的特性1.Elasticsearch五个特性与实时集群节点索引文档的片、副本和数据库相似概念相近2 Logstash插件主要组件主机分类3 kibana三配置ELK系统检查节点安装elasticsearch-head插件安装2 Logstash (提供web服务的台)和kibana对接api

一. ELK日志分析系统的概念构成

elk系统由三部分组成

Elasticsearch :提供分布式多用户功能的全文搜索引擎

Logstash :强大的数据处理工具

kiba na :面向电子搜索的开源分析和可视化平台

优缺点

提高安全性

集中管理

缺点

日志分析很难

的处理过程集中管理(beats )包括四个服务的日志

网络流量数据收集(Packetbeat ) ) )。

顶部beat (收集系统、进程和文件系统级CPU和内存使用情况等数据) ) ) ) ) ) ) ) ) ) ) ) )。

文件数据收集) ) ) )。

winlogbeat(windows事件日志数据收集) ) ) ) )。

格式化日志并将其输出到Elasticsearch

已格式化数据的索引和保存(Elasticsearch ) ) ) )。

前端数据展示(Kibana ) )。

二、ELK组件及其各自的特性1.Elasticsearch的五个特性是实时接近Elasticsearch在文件检索中以接近实时的速度使用索引检索文件,约1秒的延迟类似于一个数据库

群集由一个或多个节点组成,将从beast收集的所有数据放在这里,并提供索引和搜索功能

一个主节点可以通过选择生成在节点之间集成搜索和索引

群集名称是唯一标识符,默认为Elasticsearch,节点以不同的主机名加入群集,在不同的环境中使用不同的群集名称

群集中的每个节点都有不同的主机民。 不同的主机名区分不能具有相同主机名的主机名在群集中是节点的唯一id

节点一台服务器组成一个节点存储数据并为其提供索引的搜索节点也由主机名标识,不能重复。 默认情况下,它是在节点启动时随机分配的字符名称。 也可以自己定义名称感知节点

节点通过指定群集名称加入群集。 如果群集名称是默认名称,则在生成几个节点后,可以在发现对方时自行构建群集

索引用于检索数据。 在一个索引中可以找到多个数据

索引名称由小写字母组成。 索引特定数据时,必须在此索引中进行搜索

存储在文档中的数据的基本单位可以通过索引获取

在index和type中,可以创建任意文档并保存数据。 数据的存储位置位于索引的物理位置,要创建索引,必须分配类型

对于分片和复制副本,索引中存储的数据可能超过单个节点的硬件限制。 为了解决此问题,Elasticsearch提供了将索引拆分为多个分片的功能。 创建索引时,可以定义所需的平铺数。 每个分片都是完全功能的独立索引,可以位于群集中的任何节点上。

瓷砖化的主要原因:

水平分割扩展,增加内存量

分布式、跨分片操作,以提高性能和吞吐量

分布式分片机制和搜索请求文档的工作方式完全由Elasticsearch控制,它们对用户完全透明。

为了鲁棒性,提出一种故障切换机制。 因此,Elasticsearch会复制一个或多个索引样式。 这叫做瓷砖复制品

瓷砖复制原因:

应对分片和节点故障的高可用性。 因此,瓦片的副本必须位于不同的节点上

吞吐量更高,搜索可以在所有副本上同时执行

也就是说,每个索引可以划分为多个分片。 索引可以复制0次或多次。 复制一次后,每个索引都有主切片(从中复制的原始切片)和复制切片(复制主切片)之间的差异。 您可以在索引时指定拼贴和副本的数量。 索引完成后,可以随时动态更改副本的数量,但以后不能更改切片的数量。

默认情况下,Elasticsearch中的每个索引切片为五个主切片和一个副本。 也就是说,如果群集中至少有两个节点,则索引中有五个主片和另外五个副本片。 这样,每个索引总共有10个切片。

数据库的相似概念类似于Elasticsearch和数据库的一些概念

以JRuby语言编写的2 Logstash Logstash基于meassage-based体系结构在jvm虚拟机上运行。 可以将Logstash配置为将单个代理端与其他开源软件组合起来以提供不同的功能。

插件输入:收集源数据(访问日志、错误日志等)

过滤器插件:用于过滤日志和格式设置处理

Output :输出日志

主要组件Shipper (日志收集)监视本地日志文件的变化,并及时收集日志文件的最新内容。 通常,远程代理只需要运行此组件

Indexer :接收日志并写入本地文件

吹风筒

r(日志Hub):负责连接多个Shipper和多个Indexer
Search and Storage:允许对事件进行搜索和存储
Web Interface:基于Web的展示界面

主机分类

代理主机是将从beats收集的数据发送至中心服务器处理 只需要运行代理程序
中心主机可运行包括中间转发器(Broker)、索引器(Indexer)、搜索和存储器(Search and Storage)、Web界面端(Web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储

3 kibana

一款可以将Elasticsearch数据进行可视化操作的工具 用浏览器进行查看软件
主要特点
与Elasticsearch无缝衔接
整合数据
对复杂的数据进行分析
可以让各个成员得到数据
api灵活 可以进行分享
配置简单
对数据进行可视化操作
数据的导出和导入

三 部署ELK系统

架构图

2台节点都要执行以下操作

systemctl stop firewalld 关闭防火墙setenforce 0 #修改各个节点的主机名hostnamectl set-hostname node1su -hostnamectl set-hostname node2su -hostnamectl set-hostname websu -#安装jdk环境yum -y install java-1.8.0-openjdk*#映射主机地址echo '192.168.30.6 node1' >> /etc/hostsecho '192.168.30.20 node2' >> /etc/hosts#安装elasticsearch包rpm -ivh elasticsearch-5.5.0.rpmsystemctl daemon-reloadsystemctl enable elasticsearch.service#配置cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bakvim /etc/elasticsearch/elasticsearch.yml 修改配置文件grep -v "^#" /etc/elasticsearch/elasticsearch.yml 查看已经修改的项mkdir -p /data/elk_data 递归创建文件夹chown elasticsearch:elasticsearch /data/elk_data/ 修改文件属主和属组systemctl start elasticsearch 开启服务netstat -antp |grep 9200 检测端口 要等20秒左右





检查节点 浏览器检查节点 检查节点状态和健康状态192.168.30.6:9200192.168.30.20:9200http://192.168.30.6:9200/_cluster/health?prettyhttp://192.168.30.20:9200/_cluster/health?prettyhttp://192.168.30.6:9200/_cluster/state?prettyhttp://192.168.30.20:9200/_cluster/state?pretty






安装 elasticsearch-head 插件 yum -y install gcc gcc-c++ make cd /opt/elktar xzvf node-v8.2.1.tar.gz -C /optcd /opt/node-v8.2.1/./configure make -j3 && make installcd /usr/local/src/tar xzvf elasticsearch-head.tar.gzcd elasticsearch-head/npm installvi /etc/elasticsearch/elasticsearch.yml==末行插入==http.cors.enabled: true#开启跨域访问支持,默认falsehttp.cors.allow-origin: "*"#跨域访问允许的域名地址systemctl restart elasticsearchcd /usr/local/src/elasticsearch-head/npm run start &#切换到后台运行netstat -lnupt |grep 9100netstat -lnupt |grep 9200#windows验证http://192.168.184.10:9100 http://192.168.184.20:9100 群集为绿色#node1建立索引,类型为testcurl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"ljm","mesg":"If you want to succeed, depend on yourself"}'






安装 logstash (提供web服务那台)

将日志输入到elasticsearch中去

cd /opt#将软件包传至本目录下rpm -ivh logstash-5.5.1.rpmsystemctl start logstash.servicesystemctl enable logstash.serviceln -s /usr/share/logstash/pgddsy/logstash /usr/local/pgddsy/#建立软连接,方便系统识别#做对接测试 logstash(Apache)与 elasticsearch(node)功能是否正常Logstash [选项] [对象]-f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash-e:后面跟着字符串 该字符串可以被当做logstash的配置(如果是" ",则默认使用stdin作为输入、stdout作为输出)-t:测试配置文件是否正确,然后退出输入采用标准输入,输出采用标准输出logstash -e 'input { stdin{} } output { stdout{} }'www.baidu.com #输入内容www.sina.com。cn#输入内容#使用 rubydebug 显示详细输出,codec 为一种编解码器logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'www.baidu.com#输入内容www.sina.com.cn #输入内容#使用logstash将信息写入elasticsearch输入,输出 对接logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.0.10:9200"] } }'使用宿主机浏览 http://192.168.0.10:9100/ ,查看索引信息使用宿主机浏览 http://192.168.0.20:9100/ ,查看索引信息

和kibana对接api chmod o+r /var/log/messagesll /var/log/messages配置文件中定义的是收集系统日志(system)vim /etc/logstash/conf.d/system.confinput {file{ path => "/var/log/messages" type => "system" start_position => "beginning"}}output { elasticsearch { hosts => ["192.168.30.6:9200"] index => "system-%{+YYYY.MM.dd}" } }systemctl restart logstash.service测试登录192.168.0.10:9100,连接192.168.0.10:9200 查看是否有system的索引

安装kibana cd /usr/local/src/#将软件包传至本目录下rpm -ivh kibana-5.5.1-x86_64.rpmcd /etc/kibana/cp kibana.yml kibana.yml.bakvim kibana.yml//2行server.port: 5601 #kibana打开的端口//7行server.host: "0.0.0.0" #kibana侦听的地址//21行elasticsearch.url: "http://192.168.30.6:9200"#和elasticsearch建立联系//30行kibana.index: ".kibana"#在elasticsearch中添加.kibana索引systemctl start kibana.servicesystemctl enable kibana.service


对接HTTP日志 Apache(192.168.0.30):cd /etc/logstash/conf.d/touch apache_log.confvim 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.30.6:9200"] index => "apache_access-%{+YYYY.MM.dd}" } } if [type] == "error" { elasticsearch { hosts => ["192.168.0.10:9200"] index => "apache_error-%{+YYYY.MM.dd}" } } }# 指定文件测试/usr/share/logstash/pgddsy/logstash -f apache_log.conf

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。