ELK企业级日志分析系统


前言

服务所需软件包,自取

链接:https://pan.baidu.com/s/1GzQ68gYy4cKTkSVuo_Mreg
提取码:t8tk

一、概述

  • ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成,是个开源实时日志分析平台。

二、组件详解

2.1、ElasticSearch介绍
  • Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
  • Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便
  • 强烈建议在配置elasticsearch时,配置成集群模式

ElasticSearch-head插件

  • ElasticSearch-head就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件
  • 如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作
2.2、Logstash介绍
  • Logstash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。
  • LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能。

logStash的主要组件:

  1. Shipper:日志收集者 。负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可;
  2. Indexer:日志存储者。负责接收日志并写入到本地文件。
  3. Broker:日志Hub。负责连接多个Shipper和多个Indexer
  4. Search and Storage:允许对事件进行搜索和存储;
  5. Web Interface:基于Web的展示界面
2.3、Kibana介绍
  • Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。
  • 它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。

三、ELK工作流程

【APPServer集群】→→【logstash Agent 采集器】→→【ElasticSearch Cluster】→→【Kibana Server】→→【Browser】

在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis或者kafka(中间件/消息队列),然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

四、部署ELK并与apache日志对接

环境介绍

2台Elasticsearch服务器组成一个集群,并在master节点上安装kinaba,
在这里插入图片描述

  • 3台服务器关闭防火墙,做好IP地址映射
systemctl stop firewalld
systemctl disable firewalld
setenforce  0
vi /etc/hosts
##末尾添加
192.168.5.10 node1
192.168.5.30 node2
192.168.5.20 apache
4.1、node1配置
##安装jdk,需要1.8.0版本
yum install java-1.8.0  -y
 java -version    ##查看当前版本
openjdk version "1.8.0_131"
  • 安装elasticsearch软件
###上传源码包到/opt目录,并解压
rpm -ivh elasticsearch-5.5.0.rpm     ##解压
  • 修改elasticsearch配置文件
####先安全备份
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vi   /etc/elasticsearch/elasticsearch.yml 
cluster.name: my-elk-cluster                   ####集群名字
node.name: node1                                  ####节点名字
path.data: /data/elk_data                        ####数据存放路径
path.logs: /var/log/elasticsearch/           ####数据存放路径
bootstrap.memory_lock: false                 ####不在启动的时候锁定内存
network.host: 0.0.0.0                               ####提供服务绑定的IP地址,0.0.0.0代表所有地址
http.port: 9200                                        ####侦听端口为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]           ####集群发现通过单播实现
##在末尾添加以下
http.cors.enabled: true
http.cors.allow-origin: "*"
  • 查看修改详情
 grep -v "^#" /etc/elasticsearch/elasticsearch.yml

在这里插入图片描述

  • 创建数据存放路径并授权
mkdir -p /data/elk_data
 chown elasticsearch:elasticsearch /data/elk_data/
  • 加载系统服务,启动elasticsearch
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
netstat -antp |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      64463/java 
  • 此时可以用浏览器访问node1节点查看信息

在这里插入图片描述

  • 安装node组件
####解压源码包到opt
tar xzvf node-v8.2.1.tar.gz -C /opt
 ##进入解压目录
cd node-v8.2.1/
##执行
./configure
##编译并安装
make -j3 & make install
  • 安装phantomjs
##上传软件包到/usr/local/src/,并解压
tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C  /usr/local/src/
###将phantomjs命令加入到系统中
cp /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
  • 安装ElasticSearch-head插件
##上传软件包到/usr/local/src/,并解压
tar xzvf elasticsearch-head.tar.gz -C /usr/local/src/
###初始化
cd elasticsearch-head/
npm install
4.2、node2配置
  • node2配置与node1配置基本相同,只需将elasticsearch配置文件中的节点名字改为node2
vi   /etc/elasticsearch/elasticsearch.yml 
node.name: node2                                 ####节点名字
  • 2个节点都启动elasticsearch-head , 启动服务器
 systemctl restart elasticsearch
 cd /usr/local/src/elasticsearch-head/
 npm run start & 

netstat -lnupt |grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      114739/grunt        
netstat -lnupt |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      114626/java     

  • 此时可以通过浏览器进入/elasticsearch-head/平台,查看健康情况

在这里插入图片描述

4.3、apache节点配置
  • 安装httpd服务并启动,安装jdk
###安装apache服务
yum -y install httpd
systemctl start httpd
systemctl enable httpd
###安装jdk
yum -y install java-1.8.0  -y
 java -version    ##查看当前版本
openjdk version "1.8.0_131"
  • 安装logstash
###上传源码包到/opt目录,并解压
rpm -ivh logstash-5.5.1.rpm 
  • 启动logstash服务
systemctl start logstash.service   
systemctl enable logstash.service
##建立软链接,让系统识别logstash命令
 ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
  • logstash与ElasticSearch做对接配置
chmod o+r /var/log/messages
vi /etc/logstash/conf.d/system.conf
###插入以下字段
input {
       file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
        elasticsearch {
          hosts => ["192.168.5.10:9200"]
          index => "system-%{+YYYY.MM.dd}"
          }
        }

  • 重启logstash服务,登陆ElasticSearch查看索引信息
 systemctl restart logstash.service

在这里插入图片描述

4.4、在node1节点上安装kibana
###上传源码包到/usr/local/src并解压
cd /usr/local/src/
rpm -ivh kibana-5.5.1-x86_64.rpm
  • 修改kibana配置文件
vi /etc/kibana/kibana.yml
server.port: 5601                #### kibana打开的端口
server.host: "0.0.0.0"           ####kibana侦听的地址
elasticsearch.url: "http://192.168.5.10:9200"             ###和elasticsearch建立联系
kibana.index: ".kibana"              ####在elasticsearch中添加.kibana索引
  • 启动kibana
systemctl start kibana.service   
systemctl enable kibana.service
  • 对接apache的日志文件,在apache节点上操作
###进入apache节点
cd /etc/logstash/conf.d/
touch apache_log.conf    ##创建对接日志
vi apache_log.conf
input {
       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.5.10:9200"]
          index => "apache_access-%{+YYYY.MM.dd}"
          }
        }
        if [type] == "error" {
        elasticsearch {
          hosts => ["192.168.5.10:9200"]
          index => "apache_error-%{+YYYY.MM.dd}"
          }
        }
        }
        
###指定logstash配置文件为apache_log.conf
/usr/share/logstash/bin/logstash -f apache_log.conf
  • 此时用浏览器访问下192.168.5.20 apache服务让其生成访问日志

在这里插入图片描述

  • 用浏览器进入ElasticSearch服务查看索引信息

在这里插入图片描述

配置kibana

打开浏览器进入192.168.5.10:5601

首次登录创建一个索引 名字:system-* ,这是对接系统日志文件
在这里插入图片描述
创建apache日志索引(access和error)

点击左下角management选项
在这里插入图片描述
点击index patterns
在这里插入图片描述
点击create index pattern
在这里插入图片描述
创建error和access索引
在这里插入图片描述
在这里插入图片描述
可以在看kibana上查看apache日志信息
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值