千家信息网

ELK日志文件分析系统基本部署(纯实战)

发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,ELK日志文件分析系统基本部署ELK概述​ ELK是elasticsearch、Logstashh和Kibana三个系统的首字母组合。当我们部署集群服务器的时候,日志文件就会散落在多台服务器上。查看日
千家信息网最后更新 2024年09月24日ELK日志文件分析系统基本部署(纯实战)

ELK日志文件分析系统基本部署

ELK概述

​ ELK是elasticsearch、Logstashh和Kibana三个系统的首字母组合。当我们部署集群服务器的时候,日志文件就会散落在多台服务器上。查看日志信息就需要到各个服务器上去取和查看,我们把这些日志文件归集到一个地方统一管理。

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

实验前期准备

名称角色地址
centos 7-1node1+kibana192.168.142.221
centos 7-2node1192.168.142.132
centos 7-3Logstash+web192.168.142.136

这里我将WEB端与日志文件系统安装在了,各位可以根据个人情况,全部独立出去。(虚拟机开太多了,电脑顶不住啊)

实验步骤

一、部署Elasticsearch服务

注意:两个节点操作相同

添加域名解析。方便后期使用

[root@node1 ~]# vim /etc/hosts//添加192.168.142.221 node1192.168.142.132 node2

检查JAVA版本(没有安装的可以使用yum install java进行安装)

[root@node1 ~]# java -versionopenjdk version "1.8.0_131"OpenJDK Runtime Environment (build 1.8.0_131-b12)OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

部署elasticsearch服务(端口号:9200)

//部署elasticsearch服务[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm//加载系统服务[root@node1 ~]# systemctl daemon-reload[root@node1 ~]# systemctl enable elasticsearch.service

修改ES配置文件

[root@node1 ~]# vim /etc/elasticsearch/elasticssearch.yml//以下几行取消注释17/ cluster.name: my-elk-eluster           //集群名字(所有节点必须一样)23/ node.name: node1            //节点名字(每个节点不同)33/ path.data:/data/elk_data          //数据存放路径37/ path.logs:/var/log/elasticsearch/          //日志存放路径43/ bootstrap.memorylock: false                //不在启动的时候锁定内存55/ network.host: 0.0.0.0                         //提供服务绑定的IP地址,0. 0. 0. 0代表所有地址59/ http.port: 9200                  //侦听端口为920068/ discovery.zen.ping.unicast.hosts: ["node1", "node2"]               //集群发现通过单播实现

建立数据文件存放目录,并开启服务

[root@node1 ~]# mkdir -p /data/elk_data[root@node1 ~]# chown -R elasticsearch:elasticsearch /data/elk_data     //修改属主属组[root@node1 ~]# systemctl start elasticsearch.service[root@node1 ~]# netstat -atnp | grep 9200

验证服务是否开启

使用宿主机浏览器访问:http://192.168.142.132:9200,即可获取到相应的节点信息,如下:

{
"name" : "node1",
"cluster_name" : "my-elk-cluster",
"cluster_uuid" : "mi3-z72CRqS-ofc4NhjXdQ",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}

二、安装管理插件elasticsearch-head(端口:9100)

注意:两个节点操作相同

解压并编译安装

[root@node1 ~]# yum install gcc gcc-c++ make -y//安装node组件包[root@node1 ~]# tar zxf node-v8.2.1.tar.gz -C /opt//在node目录中[root@node1 ~]# ./configure[root@node1 ~]# make              //异常费时,大概耗时20min[root@node1 ~]# make install

安装phantomjs前端框架

[root@node1 ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src[root@node1 ~]# cp /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin

安装elasticsearch-head数据可视化工具

[root@node1 ~]# tar zxf elasticsearch-head.tar.gz -C /usr/local/src //在elasticsearch-head目录中[root@node1 ~]# npm install          //使用npm工具进行安装(node组件自带)

修改elasticsearch-head配置文件

[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml//末行添加http.cors.enabled: true            //开启跨域访问支持http.cors.allow-origin: "*"            //跨域访问允许的域名地址,*号为全网段

开启elasticsearch-head工具

[root@node1 ~]# systemctl restart elasticsearch            //重启ES服务[root@node1 ~]# cd /usr/local/src/elasticsearch-head/[root@node1 elasticsearch-head]# npm run start &         //保持后台运行

三、安装Logstash日志收集系统

安装WEB服务

任意web服务均可(Apache、nginx、Tomcat均可),不再进行详细解释。

这里使用的Apache服务

安装logstash系统

[root@apache ~]# rpm -ivh logstash-5.5.1.rpm[root@apache ~]# systemctl start logstash.service         //启动logstash[root@apache ~]# systemctl enable logstash.service      //设置为开机自启[root@apache ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin     //建立软链接方便使用

设置logstash与elasticsearch进行对接

​ logstash配置文件由三部分组成:input(入)、output(出)、filter

[root@apache log]# chmod o+r messages [root@apache log]# ll /var/log/messages -rw----r--. 1 root root 483737 Dec 18 17:54 /var/log/messages[root@apache log]# vim /etc/logstash/conf.d/system.conf//手动添加input {        file{          path => "/var/log/messages"                  //收集日志的路径          type => "system"                //便签名称          start_position => "beginning"               //收集方式,"beginning"从头开始          }        }output {        elasticsearch {          hosts => ["192.168.142.136:9200"]             //es服务地址          index => "system-%{+YYYY.MM.dd}"             //索引名称          }        }[root@apache log]# systemctl restart logstash.service    //重启服务

结果验证

四、logstash基本使用方法(与本次实验大体上无关,不爱看的朋友可以直接跳过)

Logstash命令测试

字段描述解释:

-f 通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash

-e 后面跟着字符串该字符串可以被当做logstash的配置 (如果是"",则默认使用stdin做为输入、stdout作为输出)

-t 测试配置文件是否正确,然后退出

1、输入、输出均为标准模式
[root@apache ~]# logstash -e 'input { stdin{} },output { stdout{} }'
##输入直接输出在屏幕上
输入:www.baidu.com
输出:apache www.baidu.com

2、使用codec解码器,使用rubydebug显示详细输出
[root@apache ~]# logstash -e 'input { stdin{} },output { stdout { codec=>rubydebug } }'
##会按照编码格式进行输出
输入:www.baidu.com
输出:
{
"@timestamp"=> 2018-10-12T02: 15:39.136Z, #时间
"@version=> "1", #版本
"host" => "apache", #使用Apache服务
"message" => "www.baidu. com" #访问网页
}

3、将信息写入elasticsearch中
[root@apache ~]# logstash -e 'input { stdin{} },output {elasticsearch { hosts=>["192.168.142.221:9200"] } }'
##会在elasticsearch中生成索引
输入:www.baidu.com
输出:在elasticsearch中生成lostash-2019.12.17

五、安装Kibana可视化工具(端口:5601)

在node1中进行安装

[root@node1 ~]# cd /abc/elk/[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm [root@node1 kibana]# cp kibana.yml kibana.yml.bak

修改Kibana配置文件

[root@node1 kibana]# vim kibana.yml//按照下图进行修改2/ server.port: 5601                 //打开端口7/ server.host: "0.0.0.0"                    //监听的地址21/ elasticsearch.url: "http://192.168.142.136:9200"      //与elasticsearch建立联系30/ kibana.index: ".kibana"                  //在elasticsearch中添加.kibana索引

启动Kibana

[root@node1 kibana]# systemctl start kibana.service         //开启kibana服务[root@node1 kibana]# systemctl enable kibana.service       //设为开机自启动

web服务与elasticsearch进行对接后,使用kibana进行可视化

[root@apache log]# cd /etc/logstash/conf.d///修改配置文件(空的自行添加)[root@apache conf.d]# vim apache_log.confinput {        file{          path => "/etc/httpd/logs/access_log"                //针对于Apache的access日志          type => "access"          start_position => "beginning"          }        file{          path => "/etc/httpd/logs/error_log"                 //针对于Apache的error日志          type => "error"          start_position => "beginning"          }        }output {        if [type] == "access" {        elasticsearch {          hosts => ["192.168.142.136:9200"]                    //elasticsearch地址          index => "apache_access-%{+YYYY.MM.dd}"          }        }        if [type] == "error" {        elasticsearch {          hosts => ["192.168.142.136:9200"]                      //elasticsearch地址          index => "apache_error-%{+YYYY.MM.dd}"          }        }        }[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf          //仅对于该日志文件进行生效

在可视化界面进行配置

在浏览器输入http://192.168.142.136:5601/
首次登录时创建一个索引(对接系统日志文件):
输入:access-*

点击create按钮进行创建

点击Discover按钮,会发现access-*信息

六、安装过程中可能遇到的问题

故障集:

19:43:59.210 [LogStash::Runner] FATAL logstash.runner - Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.

解决方案

//查看logstash配置文件    vim /etc/logstash/logstash.yml//找到path.data路径    /var/lib/logstash///删除缓存    rm -rf .lock//带路径重启    logstash -f /etc/logstash/conf.d/nginx_log.conf --path.data=/var/lib/logstash

感谢阅读~ ~ ~

服务 文件 日志 配置 地址 输入 输出 系统 工具 索引 节点 数据 信息 端口 路径 可视化 搜索 分析 名称 服务器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 徐州网络技术开发代理商 杭州互联网软件开发费用是多少 企业网络安全绘画美甲 湖北工业软件开发哪家便宜 礼嘉打印服务器安装 怎么把网站发布在服务器上 河南放心软件开发五星服务 华为浏览器使用什么的服务器下载 一个计算机中必须有服务器 攻克网络安全难题计划 企业服务器接口有哪些 抖音软件开发价格 江农云仓网络技术有限公司 深圳绿谷网络技术有限公司 地质数据库软件官方最新版 软件开发行业有没有淡季 信创项目的服务器 无尽挑战高级服务器 新罗区财讯三分钟网络技术服务部 网络技术奖项设置 网信办让公司做网络安全评价 梦幻西游山东3区服务器云空间 特定网络技术服务产品 数据库语文和数学的平均分 服务器上的st是什么编号 网络安全知识竞赛题幼儿版 免费试用云服务器价格实惠 聊城数据库图片 串口服务器rs485 无法与服务器建立起安全链接
0