Su+ELK实现网络监测(2)——ELK安装与配置

news2024/11/27 0:31:39

ELK安装配置文档

  • 一、环境准备
    • 基础配置
  • 二、Jdk1.8环境部署
    • 1、安装jdk
    • 2、编辑环境变量
  • 三、ElasticSearch部署
    • 1、安装
    • 2、修改文件所有者
  • 3、修改配置文件
    • 4、启动
  • 四、elasticsearch-head部署(可不安装,跳过)
    • 1、nodejs安装
    • 2、head插件安装
    • 3、修改head插件配置文件
    • 4、启动
  • 五、logstash部署
    • 1、安装
    • 2、修改配置文件
    • 3、验证配置文件
    • 4、设置数据源日志输出
    • 5、启动
  • 六、kibana部署
    • 1、安装
    • 2、修改配置文件
    • 3、启动
    • 4、创建索引
  • 七、参考资料

一、环境准备

基础配置

/etc/security/limits.conf

修改系统进程数量、最大打开文件数等配置,新加入到.conf文件最底部
参考自:https://blog.csdn.net/zxljsbk/article/details/89153690

cat >> /etc/security/limits.conf <<EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
EOF

/etc/sysctl.conf

设置最大映射数量
系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上

echo "vm.max_map_count = 655360" >> /etc/sysctl.conf

保存并退出后,再输入命令:sysctl -p 立即生效

二、Jdk1.8环境部署

1、安装jdk

jdk下载链接
上传安装jdk文件、解压、移动到 /usr/local/java 路径

tar -zxf jdk-8u221-linux-x64.tar.gz
mv jdk1.8.0_221/ /usr/local/java

2、编辑环境变量

编辑 /etc/profile 文件

cat >> /etc/profile <<"EOF"
###java###
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
EOF
source /etc/profile                   # 让环境变量生效
java -version                         # 查看java版本、安装位置
which java
ln -s /usr/local/java/bin/* /bin      # 使用 ln -s 命令建立软连接(将java文件链接到/bin下面,否则后面logstash报错非常难排查原因)

三、ElasticSearch部署

1、安装

es下载链接
上传ElasticSearch安装文件、解压、移动到 /usr/local/elasticsearch 路径

tar -zxf elasticsearch-7.6.0-linux-x86_64.tar.gz
mv elasticsearch-7.6.0 /usr/local/elasticsearch

2、修改文件所有者

创建data文件,用于存放es的数据和日志

修改文件和目录的所有者和所属组(因为elasticsearch是不允许root用户启动的,所以需要添加新用户)

mkdir -p /var/data/es-data
mkdir -p /var/data/es-log
useradd es
chown -R es:es /usr/local/elasticsearch/                  # 设置es用户拥有该目录权限
chown -R es:es /var/data/es-data
chown -R es:es /var/data/es-log

3、修改配置文件

cd /usr/local/elasticsearch/config/
cp elasticsearch.yml elasticsearch.yml.bak
vim elasticsearch.yml

文件最后自行添加如下内容:

cat >> elasticsearch.yml <<"EOF"
transport.tcp.compress: true
transport.tcp.port: 9300

network.publish_host: 192.168.234.10                        # 本机ip
node.master: true                                           # 允许成为主节点
node.data: true                                             # 允许成为数据节点

# xpack.security.enabled: true                              # 建议关闭或不设置,若设置了有很多非常麻烦的事
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

indices.query.bool.max_clause_count: 8192
search.max_buckets: 100000
EOF

4、启动

su es
cd /usr/local/elasticsearch/bin

./elasticsearch -d                 # 后台启动
./elasticsearch                    # 非后台启动,主要用于调试

如果启动测试,出现如下报错:

  • 报错一:

    报错原因:前面说了 elasticsearch是不允许root用户启动的 所以需要切换到前面创建的es账号下来运行
  • 报错二:

    报错原因是:线程占用 解决方法:杀死elasticsearch线程 / 重启
    ps -ef | grep elasticsearch|grep -v grep
    kill -9 id
  • 报错三:

    报错原因是:是该文件的权限问题。进入该文件所属目录查看文件权限验证:

    解决方法:使用命令删除该文件即可,下次启动es时会自动创建
    rm -rf elasticsearch.keystore

启动成功后,使用如下命令测试:

curl http://192.168.234.10:9200                                 # 输入本机ip
curl '192.168.234.10:9200/_cluster/health?pretty'               # 查看es健康状态

若提示如下信息,则表示成功:

四、elasticsearch-head部署(可不安装,跳过)

安装配置可参考:https://www.cnblogs.com/wangzhuxing/p/9352258.html

1、nodejs安装

因为head插件是用node.js开发的,所以需要此环境(切换回root用户)

wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz
tar -zxf node-v14.15.4-linux-x64.tar.xz
mv node-v14.15.4-linux-x64 /usr/local/node

编辑 /etc/profile 文件

cat >> /etc/profile <<"EOF"
#node
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
EOF

让环境变量生效

source /etc/profile
node -v

2、head插件安装

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
yum -y install unzip
unzip master.zip
mv elasticsearch-head-master/ /usr/local/elasticsearch-head
cd /usr/local/elasticsearch-head

yum -y install npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm install -g grunt-cli
npm install -g grunt
npm install grunt-contrib-clean
npm install grunt-contrib-concat
npm install grunt-contrib-watch
npm install grunt-contrib-connect
npm install grunt-contrib-copy
npm install grunt-contrib-jasmine      # 如果有些输入有报错,就再输入一遍,不行就略过(有些没安装也可以正常运行),执行下面第三步

如果安装过程,出现如下报错:

解决方法:cnpm install --save-dev "grunt@>=1.4.1"

解决方法:npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

3、修改head插件配置文件

cd /usr/local/elasticsearch-head/
cp Gruntfile.js Gruntfile.js.bak
vim Gruntfile.js

4、启动

》首先确认elasticsearch已经启动

[es@localhost /usr/local/elasticsearch]$ bin/elasticsearch -d
[es@localhost /usr/local/elasticsearch]$ jps                     # jps是java提供的一个显示当前所有java进程pid的命令
3261 Elasticsearch                                               # 适合在linux/unix平台上简单察看当前java进程的一些简单情况
3375 Jps
[es@localhost /usr/local/elasticsearch]$ kill 3261               # 如果需要终止ElasticSearch,可以这样操作

》启动head

cd /usr/local/elasticsearch-head
grunt server

如果启动head过程,出现如下报错:

解决方法是:cnpm install grunt --save-dev

》启动成功,访问9100端口

如果出现“未连接”,请修改localhost为192.168.234.10(在es库elasticsearch.yml 文件中设置的network.host),然后单击“连接”按钮

五、logstash部署

1、安装

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.tar.gz
tar -zxf logstash-7.5.0.tar.gz
mv logstash-7.5.0 /usr/local/logstash

2、修改配置文件

cd /usr/local/logstash/config
cp logstash-sample.conf logstash.conf

vim logstash.conf 修改如下配置:

3、验证配置文件

cd /usr/local/logstash/bin
./logstash -f /usr/local/logstash/config/logstash.conf --config.test_and_exit

4、设置数据源日志输出

配置服务器的ip以及配置的监听端口

cat >> /etc/rsyslog.conf <<"EOF"
#### RULES ####
*.* @@192.168.234.10:10514                      # 增加自己服务器IP
EOF
systemctl restart rsyslog                       # 重启rsyslog,让配置生效

5、启动

cd /usr/local/logstash/bin
./logstash -f /usr/local/logstash/config/logstash.conf

使用Shell软件远程登录到此服务器,测试一下有没有日志输出:

检查一下10514端口是否已被监听:

yum -y install net-tools
netstat -lntp | grep 10514

如果端口正常监听了,那么logstash服务就启动成功:

但如图所示,如果不改成宿主机的IP,默认使用 127.0.0.1,这样外面的机器是无法通过TCP/HTTP等方式访问的
因此,还需要修改配置文件logstash.yml,修改完后重启Logstash

vim /usr/local/logstash/config/logstash.yml
http.host: "192.168.234.10"

至此,logstash配置完成。后续将结合suricata获取到的数据信息输出到es(修改相关配置文件)

六、kibana部署

1、安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
tar -zxf kibana-7.5.1-linux-x86_64.tar.gz
mv kibana-7.5.1-linux-x86_64 /usr/local/kibana

2、修改配置文件

vim /usr/local/kibana/config/kibana.yml
#编辑内容如下:

server.port: 5601                                               # Kibana 运行端口
server.host: "192.168.234.10"                                    # Kibana服务主机
server.name: "kibana"                                           # Kibana服务名称
elasticsearch.hosts: ["http://192.168.234.10:9200"]              # 指定ES访问地址
i18n.locale: "zh-CN "                                           # 指定语言 English - en , Chinese - zh-CN

3、启动

cd /usr/local/kibana/bin
./kibana --allow-root

浏览器输入该地址进行访问: http:192.168.234.10:5601 页面展示如下:

4、创建索引

后续将结合suricata获取到的数据信息输出到es,便可以在此创建索引来查看相关数据

还可以根据需要创建Kibana看板,也可下载相关看板json文件进行导入

至此,ELK 安装完成,后续的详细配置信息,见下一篇文章

七、参考资料

  • 使用Suricata和ELK进行流量检测 - 知乎
  • Suricata+ELK集群监控办公网流量-CSDN博客
  • ElasticSearch-7.5.1安装部署-备份-CSDN博客
  • 使用Suricata构建网络层入侵检测 | MaliciousKr.Cc
  • suricata + ELK保姆级搭建入侵检测/入侵防御02 — ELK搭建-CSDN博客
  • CentOS7 安装 Logstash-CSDN博客

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

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

相关文章

智慧工厂可视化合集,推动行业数字化转型

图扑软件基于 HTML5&#xff08;Canvas/WebGL/WebVR&#xff09;标准的 Web 技术&#xff0c;满足了工业物联网跨平台云端化部署实施的需求&#xff0c;以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库&#xff0c;到 2D 和 3D 编辑&#xff0c;…

软化水处理知识总结

软化水除了广泛应用在饮用、浴室、厨房、洗衣等生活用水&#xff0c;和酒店、学校、写字楼、公寓、餐饮等商业用水的处理&#xff0c;还可用于锅炉、交换器、蒸发冷凝器、空调、直燃机等系统的补给水的软化。 那什么是软化水&#xff0c;和除盐水、纯水有什么区别&#xff1f;…

大学物理第四单元:刚体

1.刚体的定轴转动 思考&#xff1a;改变转动状态的因素 答&#xff1a;改变刚体运动状态的的因素有力的大小及力臂有关&#xff0c;力与力臂的乘积为力矩。 力臂&#xff1a;力到转轴的距离 简而言之&#xff0c;改变刚体运动状态的因素是力矩&#xff0c;与力和力臂有关。 …

谷粒学院项目笔记第一部分

1.环境搭建&#xff0c;准备工作 &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;创建项目完整结构 &#xff08;3&#xff09;父工程springboot,子工程maven &#xff08;4&#xff09;父工程pom设置版本&#xff0c;添加pom #版本 <version>2.2.1.R…

11个AI写作软件工具!知名4A广告公司蓝标宣布停止文案外包!

AI的这场熊熊大火&#xff0c;终于还是烧到了广告界&#xff01; 2023年4月12日&#xff0c;是一个再普通不过的日子&#xff0c;但这一天会被很多人记住。不是因为席卷整个华北区的漫天黄沙&#xff0c;而是因为一封代表着AI势不可挡的决心和象征着一个行业巨变拉开序幕的邮件…

学会 制作极简搜索浏览器 —— 并将 ChatGPT 接入浏览器

前期回顾 Vue3 Ts Vite pnpm 项目中集成 —— eslint 、prettier、stylelint、husky、commitizen_0.活在风浪里的博客-CSDN博客搭建VIte Ts Vue3项目并集成eslint 、prettier、stylelint、huskyhttps://blog.csdn.net/m0_57904695/article/details/129950163?spm1001.2…

采用D-K迭代设计不确定对象的鲁棒控制器(μ-controllers)

采用D-K迭代设计不确定对象的鲁棒控制器&#xff0c;将H∞综合(K步)与μ分析(D步)相结合&#xff0c;优化闭环鲁棒性能。 Step 1&#xff1a;利用H∞综合方法找到使标称系统闭环增益最小的控制器。 Step 2&#xff1a;进行鲁棒性分析&#xff0c;以估计闭环系统的鲁棒H∞性能。…

手把手kubernetes本地化部署(含疑难杂症排查解析)

文章目录一、什么是Kubernetes&#xff1f;二、Kubernetes的基本概念PodDeploymentServiceNamespaceConfigMapSecret三、Kuberntes单机本地部署3.1、安装minikube命令行工具3.2、安装docker3.3、启动minikube3.4、使用Dashboard3.5、异常问题解决3.5.1、提示Docker失败3.5.2、d…

迅为瑞芯微RK3568国产化实时操作系统,大容量内存

基于瑞芯微四核 64 位 Cortex-A55 ARMv8 架构处理器 RK3568&#xff0c;主频可达 2.0GHz&#xff0c;CPU 采用 22nm 制程工艺&#xff0c;动态调频调压技术&#xff0c;进一步放大能效比优势。 大容量内存 最大容量支持 8GB 内存&#xff0c;能够有效发挥处理器性能&#xff0…

服装标签二维码,要如何制作?含品牌案例

睡衣上的二维码标签、大衣的洗护说明二维码、衣服上的防伪二维码… 服装行业应用二维码&#xff0c;已经非常常见了。 服装行业中的二维码&#xff0c;不仅帮助品牌更好地展示产品信息、传播品牌影响力&#xff0c;更重要的是&#xff0c;通过这些服装二维码&#xff0c;直接优…

Attention is all your need——Transformer论文

摘要 此序列转录模型仅仅依赖于注意力机制&#xff0c;而不使用循环或者是卷积&#xff0c;将循环全部换成了multi-headed self- attention 介绍 RNN的特点、并行程度低。 Attention在RNN上的应用。 引入注意力机制&#xff0c;提高并行度。 背景 使用卷积对长的序列难以…

数据结构——排序

排序一、排序的概念二、直接插入排序希尔排序三、直接选择排序四、堆排序1、堆的概念2、堆排序五、冒泡排序六、快速排序七、归并排序八、基数排序排序算法的时间复杂度和空间复杂度一、排序的概念 课本概念&#xff08;P165&#xff09; (1&#xff09;内部排序。内部排序指…

一图看懂 pyexcel_io 模块:提供统一 API用来读写操作 Excel 文件的库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pyexcel_io 模块&#xff1a;提供统一 API用来读写操作 Excel 文件的库, 资料整理笔记&#xff08;大全&#xff09;摘要模块图类关系图模块全展开【pyexcel_io】统计常量s…

【LeetCode】剑指 Offer 59. 队列的最大值 p288 -- Java Version

1. 题目介绍&#xff08;59. 队列的最大值&#xff09; 面试题59&#xff1a;队列的最大值&#xff0c; 一共分为两小题&#xff1a; 题目一&#xff1a;滑动窗口的最大值题目二&#xff1a;队列的最大值 2. 题目1&#xff1a;滑动窗口的最大值 题目链接&#xff1a;https://l…

3.rabbitmq-集群

1.修改3台的主机名称,也可以不改 vi /etc/hostname 2.配置各个节点的host文件,让各节点都能识别对方 vi /etc/hosts 192.168.3.132 host-rabbitmq 192.168.3.133 host-rabbitmq2 192.168.3.134 host-rabbitmq3 3.以确保各个节点的cookie文件使用的同一个值 在node1上执行远程命…

基于矩阵分解的推荐算法

1.背景 推荐系统的两大应用场景分别是评分预测(Rating Prediction)和Top-N推荐(Item Ranking)。其中评分预测主要用于评价网站&#xff0c;比如用户给自己看过的电影评多少分&#xff0c;或者用户给自己看过的书籍评价多少分&#xff0c;矩阵分解技术主要应用于评分预测问题&am…

买车了

最近先后去试驾了比小鹏P7i、蔚来ET5、智己LS7、亚迪汉这几辆车&#xff0c;这四个品牌总共花了三天时间&#xff0c;也算是比较深度的试驾吧&#xff0c;静态和动态、前后排、主副驾都感受了一下。前面写了比亚迪汉的试驾体验&#xff0c;详细分析了它的优缺点&#xff1a;不愧…

Vue过滤器、自定义指令、组件

目录 一&#xff1a;生命周期 1.1 生命周期实例 1.2 生命周期函数&#xff08;引入&#xff09; 二&#xff1a;过滤器 三&#xff1a;自定义指令 四&#xff1a;组件 4.1 非单文件组件 4.2 组件的嵌套 4.3 单文件组件 模板 4.3.1 架构 4.3.2 不同版本的vue.JS 4…

ASRT语音识别系统部署及模型训练笔记

ASRT语音识别系统部署及模型训练笔记 前言 ASRT是一个中文语音识别系统&#xff0c;由AI柠檬博主开源在GitHub上。 GitHub地址&#xff1a;nl8590687/ASRT_SpeechRecognition 国内Gitee镜像地址&#xff1a;AI柠檬/ASRT_SpeechRecognition 文档地址&#xff1a;ASRT语音识…

ping telnet curl的使用方法和应用场景

文章目录一、区别二、使用方法pingtelnetcurl三、应用场景一、区别 ping命令基于ICMP协议&#xff0c;通过发送发送ICMP数据包&#xff0c;并查看对方是否有返回数据来检测网络是否连通&#xff0c;仅包含控制信息&#xff0c;不包含端口号; telnet是对服务器的远程登录&#…