栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

centos 传统方式部署和使用elk (非容器方式)

centos 传统方式部署和使用elk (非容器方式)

1. 问题背景 elk 安装包

elasticsearch-7.8.0-x86_64.rpm + kibana-7.8.0-x86_64.rpm + logst
如下图

CentOS 7

图略。

说明

实际上熟悉了docker的用法之后,使用docker和不使用docker查别不大,篇幅所限,只记录重点,不提docker相关。

注:里面提到的所有操作都是我亲测过的。

2. 安装(es 和 kibana) 1. 安装es
    rpm -ivh xxx.rpm

安装完毕后,需要配置内容。
尤其是需要配置es可以从远程机器访问。
配置后启动,效果如下图。

要点:

    es依赖java环境,所以先安装jdk,自行解决。es安装完成后,可能需要修改配置文件,如端口等es启动时可能会报错,如 can not run elasticsearch as root(新建其他用户,并配置各个目录权限即可解决,一搜即得)等,需要处理max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] 这个报错需要配置一下,参考这两个即可解惑。https://www.jianshu.com/p/692608b3b6f9 https://blog.csdn.net/weixin_40143280/article/details/105273199
2. 安装kibana
    rpm -ivh xxx.rpm

安装完毕后,需要配置内容。
尤其是需要配置kibana可以从远程机器访问。
配置后启动,效果如下图。

其中遇到一个报错,解决办法:The Reporting plugin encountered issues launching Chromium in a self-test

启动后效果如图

启动过程如图:

我安装的kibana启动比较顺利。
/usr/share/kibana --allow-root 就成功了,有一些WARN信息,但无所谓。
当然地,如果不喜欢控制台的输出信息,可以这样:nohup bin/kibana --allow-root &

关键部分暂时部署完成,目标是通过.net 或 java 或logstash的方式 将数据存入es,然后在kibana可以灵活展示和使用

此时kibana可以直接连接到刚才部署的es上面,看和操作es的一些index。


3. 使用

自己的思路:

    只先安装es和kibana,es用来存数据(姑且可以先用kibana的 示例数据,或者 通过csv文件导入的数据来玩,暂不考虑如何向es中导入数据的问题)使用kibana自带的sample数据或自己导入的数据,熟悉dashboard、cavans、visulize 等的概念,做到大致了解,心中有数。可以产生各种灵活的饼图柱状图折线图热力图之类的东西自己玩。

如下图:




4. logstash的安装与使用 安装
    rpm -ivh xxx.rpm

安装完毕后,需要配置内容,然后启动。

当然,启动报错是很正常的,遇到什么解决什么,见招拆招就行了。

跟前面的es和kibana一样,安装完成后,/usr/share/logstash 和 /etc/logstash 处出现文件。

使用logstash

我现在的目的是,通过logstash,不断地从一个mysql表中读数据,写入es的一个索引中。


如图,画横线的两个conf文件就是我的两次导入需要的配置文件,内容仿照logstash-sample.conf的格式,使用mysql数据源,如ph3.conf内容如下:

input {
        jdbc {
                # jdbc_driver_library => "./mysql-connector-java-5.1.49.jar"
                jdbc_driver_library => "/usr/share/logstash/mylib/5.1.45/mysql-connector-java-5.1.45.jar"
                jdbc_driver_class => "com.mysql.jdbc.Driver"
                jdbc_connection_string => "jdbc:mysql://1.2.3.4:13308/test?characterEncoding=UTF-8&useSSL=false"
                jdbc_user => root
                jdbc_password => 123456
                jdbc_paging_enabled => "true" #是否进行分页
                # jdbc_page_size => "50000"
                tracking_column => "id"
                use_column_value => true
                # statement_filepath => "sql文件路径,与下面的执行语句二选1"
                statement => "SELECt * FROM ph3 where id > 0 "
                # 设置监听间隔  各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新
                # schedule => " 10 * * * * *"
                schedule => "5 * * * * *"
        }
}
output {
        elasticsearch {
                document_id => "%{id}"
                # document_type => ""
                index => "ph4-new-index"
                hosts => ["localhost:9200"]
        }
        stdout{
                codec => rubydebug
        }
}

然后执行命令,启动logstash进程去完成这件事:
sudo bin/logstash -f /etc/logstash/ph3.conf --path.settings=/etc/logstash
命令内容:

-f 指定了配置文件
–path.settings 指定一个目录,用到一些其他的通用配置,不用管。

可能遇到一些报错,如提示找不到 logstash.yml 文件, --path.settings 指向的不是一个目录,权限不足等,都是网上一搜就能解决的。

其中特别注意,tracking_column => "id" 这一行 和 document_id => "%{id}"这行要体会一下意思,以免导入程序跑了半天数据库里只有1个document。
这个问题可能会遇到,遇到也好解决,一搜就有。就是这个id字段不是随便写的,需要是mysql数据库的表里的字段,可以作为唯一标识的那种,比如int主键。

以下上个启动图。

如图,红框部分就是任务已经开始执行起来了。
然后在kibana网页的索引模式里面,就可以把这个索引加入到kibana管理里了,然后就可以跟其他数据一样随意操作。

自此这条路就完全打通了。

即:

elk都安装且运行正常的情况下,
logstash 从mysql等数据源按照cron表达式确定的时间持续地从mysql中读取数据 ==> 把数据写入到es中 ==> kibana管理这些数据,可以自定义出各种花样繁多的统计图统计表等

以后就很随意了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号