ELK部署安装

news2025/1/13 15:37:14

目录

一、环境准备

1.准备三台服务器(带图形化的linuxCentOS7,最小化缺少很多环境)

2.修改主机名

3.关闭防火墙

4.elk-node1、elk-node2 用系统自带的java

5.上传软件包到node1和node2

 二、部署elasticsearch

1、node1、node2操作

 2.node1 安装elasticsearch-head插件

3.安装npm

 三、安装logstash

1、node1上安装logstash

2、node1配置收集系统日志

四、node1安装kibaba

 五、开始配置192.168.1.145(apache)

1.下载、启动httpd


一、环境准备

1.准备三台服务器(带图形化的linuxCentOS7,最小化缺少很多环境)

192.168.1.145 apache

192.168.1.146  elk-node1

192.168.1.147  elk-node2

2.修改主机名

[root@apache ~]# 
[root@elk-node1 ~]# 
[root@elk-node2 ~]# 
[root@elk-node1 ~] vim /etc/hosts
192.168.1.146 elk-node1
192.168.1.147 elk-node2

3.关闭防火墙

[root@elk-node1 ~] systemctl stop firewalld
[root@elk-node1 ~] setenforce 0
[root@elk-node1 ~] iptables -F

4.elk-node1、elk-node2 用系统自带的java

[root@elk-node1 ~] java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

[root@elk-node2 ~] java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

5.上传软件包到node1和node2

 二、部署elasticsearch

1、node1、node2操作

[root@elk-node1 ~] systemctl daemon-reload 
[root@elk-node1 ~] systemctl enable elasticsearch.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

[root@elk-node1 ~] vim /etc/elasticsearch/elasticsearch.yml
17  cluster.name: my-elk-cluster    #node1和node2的集群名
23  node.name: elk-node1       #主机名
33  path.data: /data/elk_data     #数据存放路径
37 path.logs: /var/log/elasticsearch   #日志存放路径
43 bootstrap.memory_lock: false     #不在启动时锁定内存
55 network.host: 0.0.0.0      #提供服务的端口
59 http.port: 9200            #指定侦听端口
68 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"]  #集群中的实例名

node1

[root@elk-node1 ~] vim /etc/elasticsearch/elasticsearch.yml
#末行追加
http.cors.enabled:true     #开启跨区域传送
http.cors.allow-origin:"*"   #跨域访问允许的域名地址

node1、node2

[root@elk-node1 ~] mkdir -p /data/elk_data  #创建elk_data
[root@elk-node1 ~] chown elasticsearch:elasticsearch /data/elk_data/  #修改属主属组
[root@elk-node1 ~] systemctl start elasticsearch.service   #启动
[root@elk-node1 ~] netstat -anpt|grep 9200  #查看端口

tcp6       0      0 :::9200                 :::*                    LISTEN      55580/java    

 

 

下面的页面可以查看elasticsearch状态:green健康 yellow良好 red宕机 

 

 2.node1 安装elasticsearch-head插件

[root@elk-node1 ~] tar xf node-v8.2.1-linux-x64.tar.gz -C /usr/local/
#做链接
[root@elk-node1 ~] ln -s /usr/local/node-v8.2.1-linux-x64/bin/node /usr/bin/node
[root@elk-node1 ~] ln -s /usr/local/node-v8.2.1-linux-x64/bin/npm /usr/local/bin/
#查看版本
[root@elk-node1 ~] node -v
v8.2.1
[root@elk-node1 ~] npm -v
5.3.0
[root@elk-node1 ~] tar xf elasticsearch-head.tar.gz -C /data/elk_data/  #解压head软件包
[root@elk-node1 ~] cd /data/elk_data/
#修改属主属组
[root@elk-node1 elk_data] chown -R elasticsearch:elasticsearch elasticsearch-head/
[root@elk-node1 elk_data] cd elasticsearch-head/



3.安装npm

[root@elk-node1 elasticsearch-head] npm install   #安装npm
[root@elk-node1 elasticsearch-head] cd _site/
[root@elk-node1 _site] cp app.js{,.bak}    #备份
[root@elk-node1 _site] vim app.js  #修改配置
4329                         this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri")      || "http://192.168.1.146:9200";
[root@elk-node1 _site] npm run start &  #启动npm
[root@elk-node1 _site] systemctl start elasticsearch
[root@elk-node1 _site] netstat -anptl |grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      55835/grunt         
[root@elk-node1 _site]# netstat -anptl |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      55580/java          

#插入数据测试类型为test
[root@elk-node1 _site]#  curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type: application/json' -d '{ "user": "zhangsan","mesg":"hello word" }'
{
  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}




 

#如果不显示node2   

cd /data/elk_data/

rm -rf nodes/

 三、安装logstash

1、node1上安装logstash

[root@elk-node1 ~] rpm -ivh logstash-5.5.1.rpm
[root@elk-node1 ~] systemctl start logstash.service 
[root@elk-node1 ~] ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#'input { stdin{} } output { stdout{} }'是Logstash的配置语法,它定义了一个简单的管道,将从标准输入读取数据,并将数据输出到标准输出。
[root@elk-node1 ~]  logstash -e 'input { stdin{} } output { stdout{} }'  #
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or 
18:56:52.669 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
#上面的警告不用管
www.baidu.com   #手动输入
2023-07-06T10:57:27.869Z elk-node1 www.baidu.com
www.sina.com.cn    #手动输入,然后ctrl+c退出
2023-07-06T10:57:38.298Z elk-node1 www.sina.com.cn
^C18:57:47.298 [SIGINT handler] WARN  logstash.runner - SIGINT received. Shutting down the agent.
18:57:47.312 [LogStash::Runner] WARN  logstash.agent - stopping pipeline {:id=>"main"}
[root@elk-node1 ~] logstash -e 'input { stdin{} } output { stdout{ codec =>rubydebug} }'

19:00:52.958 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}

www.baidu.com  #手动输入
{
    "@timestamp" => 2023-07-06T11:05:20.466Z,
      "@version" => "1",
          "host" => "elk-node1",
       "message" => "www.baidu.com"
[root@elk-node1 ~] logstash -e 'input {stdin{} } output {  elasticsearch { hosts=> ["192.168.1.146:9200"]} }'
rt=>9600}
www.baidu.com   #输入
www.sina.com.cn
www.google.com

2、node1配置收集系统日志

[root@elk-node1 ~] cd /etc/logstash/conf.d/
[root@elk-node1 conf.d] vim systemc.conf

input {
    file {
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"

   }
}
output  {
    elasticsearch {
        hosts => ["192.168.1.146:9200"]
        index => "system-%{+YYYY.MM.dd}"
    }
}

[root@elk-node1 conf.d] systemctl restart logstash.service  #重启
#加载systemc.conf 文件并且查看是否打入到es当中
[root@elk-node1 conf.d] logstash -f systemc.conf  

#如果9100端口掉了,很正常,重新cd到/data/elk——data/elasticsearch-head/

执行npm install,在执行npm run start &就又启动了

四、node1安装kibaba

[root@elk-node1 ~] rpm -ivh kibana-5.5.1-x86_64.rpm
[root@elk-node1 ~] systemctl enable kibana.service 
[root@elk-node1 ~] vim /etc/kibana/kibana.yml 
 2 server.port: 5601
7 server.host: "0.0.0.0"
21 elasticsearch.url: "http://192.168.1.146:9200"
30 kibana.index: ".kibana"
[root@elk-node1 ~] vim /etc/kibana/kibana.yml
[root@elk-node1 ~] systemctl restart kibana.service 
[root@elk-node1 ~] netstat -nptl|grep 5601
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      62312/node          
[root@elk-node1 ~] logstash -f /etc/logstash/conf.d/systemc.conf 

#点击管理 查看索引是否可以配置 

 

 

 五、开始配置192.168.1.145(apache)

1.下载、启动httpd

[root@apache ~] yum -y install httpd
[root@apache ~] systemctl start  httpd
[root@apache ~] rpm -ivh logstash-5.5.1.rpm 
[root@apache ~] systemctl enable logstash.service #开机自启
[root@apache ~] cd /etc/logstash/conf.d/  #编辑配置文件

[root@apache conf.d] vim apache_log.conf

input {
   file {
        path => "/var/log/httpd/access_log"
        type => "access"
        start_position => "beginning"
   }
  file {
     path => "/var/log/httpd/error_log"
     type => "error"
     start_position => "beginning"
  }
}
output  {
    if [type] == "access" {
       elasticsearch {
        hosts => ["192.168.1.146:9200"]
        index => "apache_access-%{+YYYY.MM.dd}"
     }
 }
  if [type] == "error" {
    elasticsearch {
        hosts => ["192.168.1.146:9200"]
        index => "apache_error-%{+YYYY.MM.dd}"
    }
  }
}
[root@apache conf.d] systemctl start logstash
#命令优化
[root@apache conf.d] ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
[root@apache conf.d] logstash -f apache_log.conf  #加载文件
20:39:59.950 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9601}
#出现successfully就ok

#点击创建索引

 

 

 

 

 

ELK端口号:

elasticsearch:9200    

elasticsearch-head9100

logstash9600    input4560

Logstash agent:9601

kibana5601

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

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

相关文章

《华尔街幽灵》的三大交易规则

规则1:只持有正确的仓位 如果你下单后经过一段时间,市场没有证明你的交易是正确的,那么应该立即平仓。交易者在每次建仓后,首先应关注保护本金,及早平掉不正确的仓位,而不是过多考虑盈利金额。 如何判断交…

生命在于学习——风险评估

风险评估的目录 一、网络安全风险评估概述1、概念2、意义3、步骤4、基本原则5、评估要素6、网络安全风险评估方法 二、网络安全风险评估方法三、网络安全风险评估方案1、确定评估范围和目标2、收集信息3、评估威胁和漏洞4、评估安全控制5、评估风险和制定建议6、报告和沟通 四、…

匿名苏丹的网络攻击仍在继续: 继微软之后拳头游戏成为最新目标

黑客组织 "匿名苏丹 "声称,它对美国视频游戏开发商和出版商Riot Games发起了分布式拒绝服务(DDoS)攻击。 据称匿名苏丹的目标是Riot Games的登录门户,该组织在Telegram帖子中宣布,这次攻击持续了30分钟至1小…

《随便测测》做UI测试

目录 前排提示 使用playwright录制ui操作 创建UI模板 运行用例 查看报告 再次编辑代码 再次查看报告 selenoid服务搭建 配置selenoid服务地址 总结 前排提示 1.使用playwright[selenoid],可选的远程浏览器执行用例 2.没有采用 PageObjectModule&#xff0…

展示与处理复杂JSON数据——gradio库的JSON模块详解

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

从小白到大神之路之学习运维第54天--------ELK技术堆栈---

第三阶段基础 时 间:2023年7月6日 地 点:2304教室 授课人:李凤海 参加人:全班人员 内 容: ELK技术堆栈 目录 服务器设置: 部署elasticsearch集群: 配置elasticsearch集群&#xff…

Vue2中使用ElementUI组件Form组件的校验validate

先准备一些el-form元素 这里面el-form中:model(v-bind:model)是单项绑定的,如果你写成了v-model""可能会出现校验没有效果的情况。 这是校验过后的结果了 现在开始使用下吧! 1.在el-form中绑定一个ref,名字自拟,后续触发检验结果…

【数据分析 - 基础入门之NumPy②】Jupyter Notebook安装及使用

知识目录 前言一、Jupyter Notebook安装使用1.1 Jupyter Notebook的三种打开方式1、点击Anaconda Prompt打开2、点击Jupyter Notebook打开3、使用Powershell打开 1.2 Jupyter Notebook的两种键盘输入模式1、编辑模式2、命令模式 二、Jupyter Notebook魔法命令2.1 查看帮助文档2…

2023-07-06:RabbitMQ中的AMQP是什么?

2023-07-06:RabbitMQ中的AMQP是什么? 答案2023-07-06: AMQP AMQP(Advanced Message Queuing Protocol)是一个应用层协议的开放标准,旨在设计面向消息的中间件。基于AMQP协议的客户端和消息中间件可以自由…

Mysql中IP地址如何在数据库中存储

用无符号的32位整数存储,不要用字符串存储ip 为什么呢? 在Mysql中,当存储ipv4地址的时候,应该使用32位的无符号(int unsigned)来存储ip地址,而不是使用字符串,用int unsigned类型存…

4-Spring cloud之搭建Ribbon负载均衡——服务器上实操(下)

4-Spring cloud之搭建Ribbon负载均衡——服务器上实操(下) 1. 前言1.1 Ribbon负载均衡架构图 2. Ribbon自带的负载均衡2.1 Ribbon自带的负载均衡算法2.2 自带负载均衡之间的切换 3. Ribbon自定义负载均衡3.1 自定义Ribbon负载均衡(简单试用&a…

【IMX6ULL - LOGO替换】根文件系统主机名logo替换教程

1、修改linux主机的配置文件/etc/hostname里的主机名 2、重启 reboot

2023电商购物网站有哪些知名和靠谱的?

最近几年,人们的消费方式发生了极大的改变,在这种趋势之下,很多企业都开始着手搭建自己的网购平台,下面是小编盘点的国内市场上较为出名的网购平台,大家可以借鉴其运营模式! 1、淘宝网 在中国,淘宝网可以说…

推荐这10款好用的产品设计软件,轻松提效

在现代技术飞速发展的时代,产品设计是创新和成功的关键。本文将向您推荐10款顶级产品设计软件,为您的设计过程增添灵感和效率。 1、即时设计 即时设计是一个基于云的产品设计协作一体化工具,具有很强的功能和灵活性,它提供了全面…

详细解读Sui Gas运作机制和其他你不知道的细节

Sui的Gas费模型使链上交互费用变得可预测而且更低廉,这两个关键特征对面向全球范围内的娱乐和实用apps的基础设施十分关键。区块链的Gas费是指处理事务需要支付的价格,用于补偿和奖励支持网络运行的服务商。 通常,用户支付Gas费来执行网络上…

Webpack打包ts文件

安装依赖包: npm i -D webpack webpack-cli typescript ts-loader 配置webpack配置文件(webpack.config.js): //webpack中所有的配置文件信息都得写在module.exports中 module.exports{//指定入口文件entry:./src/index.ts//指定…

terminal 终端Ctrl+Shfit+E键与搜狗输入法冲突Linux

下载完搜狗输入法后,发现CtrlShfitE不能在终端分屏了,原因是和搜狗的快捷键冲突了,把搜狗的禁用了或者换成其它快捷键即可 界面右上角打开搜狗拼音,点击属性设置 把勾去掉或者换其它快捷键

eladmin环境搭建

1、参考这里的简介、快速了解、快速开始 简介 | ELADMIN 在线文档 2、后台我用的是Idea,要记得安装jdk、下载maven,Idea中要记得核对Settings、Project Structure的jdk、maven相关配置。同时也要核对数据库配置是否是好的,数据库是否能连接…

不同ts文件下,提示变量名重复的问题解决

同一个目录的不同文件下使用同一个变量名称出现报错 是因为ts的文件默认是全局文件 发现即使在标签栏关闭 也无法解决, 可以尝试在 报错的文件上加上 export{},即可完美解决

实战 |记一次简单渗透测试实战

声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,鹏组安全及文章作者不为此承担任何责任。 在进行渗透测试时,首先需要进行的是信…