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

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

一,Elasticsearch是用Java开发的,因此需要安装java环境,需要1.7以上的版本。
1,安装jdk,yum install -y java-1.8.0
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端口。
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
1,yum install -y logstash
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

后面的测试如果不同,多半是文件权限的问题。
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
1,yum install -y kinaba
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上搭建基础elk系统的更多相关文章

  1. 关于h5中的fetch方法解读(小结)

    这篇文章主要介绍了关于h5中的fetch方法解读(小结),fetch身为H5中的一个新对象,他的诞生,是为了取代ajax的存在而出现,有兴趣的可以了解一下

  2. ios – 200在xcode 7中生成DSMM警告

    解决方法我有同样的问题.Facebook表示他们已经意识到这一点并且不是高优先级,因为它不会影响应用程序.我回退到4.7.1警告问题不再存在.我不认为它会被拒绝但不能确定.

  3. xamarin.ios – Facebook iOS SDK:应用程序在启动时找不到“找不到符号:_ACFacebookAppIdKey.”仅在iOS 5中崩溃

    解决方法这是一个已修复的knownbug.目前唯一已知的解决方法是使用较旧版本的FacebookSDK.

  4. osx – 无法创建目录/ var / teamsserver

    OpenSSH_6.2p2,OSSLShim0.9.8r8Dec2011debug1:Readingconfigurationdata/etc/ssh_configdebug1:/etc/ssh_configline20:Applyingoptionsfor*debug1:Connectingto1.2.3.4[1.2.3.4]portPORT.debug1:Connectionestablished.Couldnotcreatedirectory‘/var/teamsserver/.ssh’.debug

  5. ios – 如何在Xcode 4.5中完成代码签名

    解决方法事实证明,从AppStore升级XCode并不会自动升级所有内容.转到首选项/下载,并确保安装最新的命令行工具.

  6. xcode7 – 谁在创建文件“/private/var/tmp/Untitled-*.uicatalog”?

    我正在调查为什么TeamCity构建代理程序用完了磁盘,并且在/private/var/tmp中找到了超过11,000个文件,它们都以Untitled-.uicatalog行命名.每个文件至少0.6MB.总磁盘占用空间约为4GB.这些文件可以追溯到几个月,所以他们能够重新启动.谁在创造他们?Xcode在编译至少有一个图像的xcassets目录时创建这些目录.我可以删除它们吗?

  7. 如何在iOS 10上设置日志级别?

    换句话说,如果我在iOS上运行的代码就像这样:那么在Console.app中看到记录的消息需要做些什么呢?

  8. 为什么Xcode 8(iOS 10)在控制台中打印[LogMessageLogging]

    为什么Xcode8打印[LogMessageLogging]在控制台中,当我调用地图视图时?任何人都可以提出一些建议吗?解决方法PrivacyTheunifiedloggingsystemconsidersdynamicstringsandcomplexdynamicobjectstobeprivate,anddoesnotcollectthemautomatically.Toensuretheprivacyofusers,itisrecommendedthatlogmessagesconsiststri

  9. ios – Client.ipa不包含文件

    从过去的几天开始,我就把这头发错了.当我尝试提交基于cordova的iOS应用程序时,我收到一个错误,即符号工具失败.这就是我在日志中的内容:以下是尝试提交到应用商店时所述错误的屏幕截图:请帮忙.解决方法我有同样的错误,因为应用程序包中错误地包含了几个静态库(libXXX.a).它们显示在主.App下的最终上传确认框(列出权利和证书)中.我的解决方案是从项目中删除对这些静态库的所有引用,在链接器标

  10. ios – 如何获得.ipa文件路径

    我的应用程序包含敏感数据,所以我想为.ipa文件生成哈希键,是否可以这样做?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部