centos 传统方式部署和使用elk 7.8.0(非容器方式)
  niESts94Ax2J 2023年11月02日 49 0


1. 问题背景

elk 安装包

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

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

CentOS 7

图略。

说明

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

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

2. 安装(es 和 kibana)

1. 安装es

  1. rpm -ivh xxx.rpm

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

尤其是需要配置es​​可以从远程机器访问​​。

配置后启动,效果如下图。

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


要点:

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

2. 安装kibana

  1. rpm -ivh xxx.rpm

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

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

启动后效果如图

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


启动过程如图:

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


我安装的kibana启动比较顺利。

​/usr/share/kibana --allow-root​​​ 就成功了,有一些​​WARN​​信息,但无所谓。

当然地,如果不喜欢控制台的输出信息,可以这样:​​nohup bin/kibana --allow-root &​

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

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


3. 使用

自己的思路:

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

如下图:

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


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


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


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


4. logstash的安装与使用

安装

  1. rpm -ivh xxx.rpm

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

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

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

使用logstash

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

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


如图,画横线的两个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主键。

以下上个启动图。

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


如图,红框部分就是任务已经开始执行起来了。

然后在kibana网页的​​索引模式​​里面,就可以把这个索引加入到kibana管理里了,然后就可以跟其他数据一样随意操作。

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


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

即:

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

以后就很随意了。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4koL3J55wyKx   2023年11月13日   38   0   0 icogitCentOS
  9E2BTpjt8nym   2023年12月06日   36   0   0 WindowsgitCentOS
niESts94Ax2J