centos上搭建基础elk系统

前端之家收集整理的这篇文章主要介绍了centos上搭建基础elk系统前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近参照一些教程安装了elk系统,用于数据分析之用,遇到了一些坑,记录如下。

elk的安装包括ElasticSearch、Logstash和Kiabana三个开源工具,以及一些依赖。当然基于elk的扩展插件很多,这次只是安装最基本的elk,并且都是在本机器运行,基于centos7。

一,Elasticsearch是用Java开发的,因此需要安装java环境,需要1.7以上的版本。 @H_403_5@ 1,安装jdk,yum install -y java-1.8.0。 @H_403_5@ 2,通过java -version,得到如下信息:

openjdk version "1.8.0_77"
OpenJDK Runtime Environment (build 1.8.0_77-b03)
OpenJDK 64-Bit Server VM (build 25.77-b03,mixed mode)

表示jdk环境安装成功。

二,一般的centos系统中的yum源是没有elk相关链接,因此需要加入elk相关组件链接

1,新建yum源 vim /etc/yum.repos.d/elasticsearch.repo并在elasticsearch.repo文件增加内容如下:

name=Elasticsearch repository for5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

2,导入elasticsearch PGP key,主要作用是验证签名,防止软件在传输的过程中被篡改。rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch,然后就可以通过yum 命令安装elk了。

3,安装elasticsearch

yum install elasticsearch -y
systemctl daemon-reload
systemctl enable elasticsearch.service

4,修改 elasticsearch配置文件。通过如下命令查看elasticsearch.yml中生效的内容grep -v ^# /etc/elasticsearch/elasticsearch.yml,安装完成后是没有啥配置的,为空,添加如下的配置:

cluster.name: elk 
node.name: elk-node-1 
path.data: /var/lib/elasticsearch 
path.logs: /var/log/elasticsearch 
network.host: 127.0.0.1
http.port: 9200

通过grep -v ^# /etc/elasticsearch/elasticsearch.yml即可查看到上述内容,上述配置表示elasticsearch监听本机的9200端口。 @H_403_5@ 5,测试elasticsearch 是否配置成功curl -X GET http://127.0.0.1:9200

{
  "name" : "elk-node-1","cluster_name" : "elk","cluster_uuid" : "9rc3La6HTNuWQCXv5uueEw","version" : { "number" : "5.6.5","build_hash" : "6a37571","build_date" : "2017-12-04T07:50:10.466Z","build_snapshot" : false,"lucene_version" : "6.6.1" },"tagline" : "You Know,for Search" }

有上述内容表示elasticsearch安装成功。

三,安装logstash @H_403_5@ 1,yum install -y logstash @H_403_5@ 2,查看logstash 配置文件grep -v ^# /etc/logstash/logstash.yml,安装好之后的配置如下:

path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d
path.logs: /var/log/logstash

3,添加pipeline文件,该文件的作用是告诉 logstash从何处读取数据文件,以及将收集到的数据输出到何处:vim /etc/logstash/conf.d/messages.conf

input {
    file {
        path => "/var/log/my"
    start_position => "beginning"
    }
}

output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "wireshark-%{+YYYY.MM.dd}"
    }
    stdout {
# codec => rubydebug
    }
}

配置文件表示收集读取本机的/var/log/my.csv文件的数据,my.csv即我们自己生成的数据文件;然后传送给本机器 9200端口的elasticsearch。wireshark-这个索引在后面会用到。这里面需要注意的一点是/var/log/my该文件的权限问题,要保证 logstash程序有权限读取该文件,当然通常/var/log/目录下都是有读取权限的,当然logstash程序也要有权限读取/etc/logstash/conf.d/messages.conf文件。因此设置如下:

chown -R logstash:logstash /etc/logstash/conf.d/
chmod 777 /var/log/my

后面的测试如果不同,多半是文件权限的问题。 @H_403_5@ 4,测试logstash服务是否启动:curl -X GET http://127.0.0.1:9600

{"host":"a23204697","version":"5.6.5","http_address":"127.0.0.1:9600","id":"94997ca8-f6f7-4b1a-bfee-604f3a42f083","name":"a23204697","build_date":"2017-12-04T08:53:30+00:00","build_sha":"f8021dbc695fbe67cf91338b46a362a9036918cb","build_snapshot":false}

查看9600端口是否处于监听状态,netstat -anlp | grep 9600

5,测试logstash和 elasticsearch之间是否能够互通:

mkdir -p /usr/share/logstash/config/
ln -s /etc/logstash/* /usr/share/logstash/config
chown -R logstash:logstash /usr/share/logstash/config/
cd /usr/share/logstash/
systemctl restart logstash
systemctl enable logstash.service//添加开机自启
 bin/logstash -e 'input { stdin { } } output { stdout {} }'
Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties

最终如果bin/logstash -f test-system.conf -t,有如下返回,表明logstash和 elasticsearch之间能够联通。

Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties

三,安装kibana @H_403_5@ 1,yum install -y kinaba @H_403_5@ 2,添加如下配置,可以通过grep -v ^# /etc/kibana/kibana.yml查看:

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
systemctl restart kibana

表示kibana会从本机器的9200端口读取数据,也就是elasticsearch那里,elasticsearch数据来源就是上述 logstash程序收集而来。因为elk的设计是集群,因此本地使用看不出来。

3,测试kibana服务是否启动netstat -anplut |grep :5601,查看5601端口是否处于监听状态,或者curl -X GET http://127.0.0.1:5601

<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';

var hash = window.location.hash;
if (hash.length) {
  window.location = hashRoute + hash;
} else {
  window.location = defaultRoute;

由上述返回,表示kibana安装成功

四,数据展示问题,如何将我们的数据在kibana展示,后面会进行总结。

本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里

猜你在找的CentOS相关文章