𝓣𝓮𝓷 𝓸'𝓬𝓵𝓸𝓬𝓴


愿世界安康,愿你我皆好!

进入博客 >

𝓣𝓮𝓷 𝓸'𝓬𝓵𝓸𝓬𝓴

𝓣𝓮𝓷 𝓸'𝓬𝓵𝓸𝓬𝓴

愿世界安康,愿你我皆好!
  • 文章 32篇
  • 评论 209条
  • 分类 14个
  • 标签 43个
2021-05-19

ELK日志分析系统学习笔记–elk基础环境安装

以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承担了,因此自己虽然也整理了笔记,当真的需要部署起来的时候,却发现并没有这个能力,这次也几经磨难,总算修成正果,特此记录一下。

首先来快速将一个简易的环境部署起来。
其中防火墙关闭,selinux关闭等的就不多说了,系统是CentOS-7.3,干净而且初始化过了的环境。

1,准备工作。
安装一些依赖包。

yum -y install lrzsz vim curl wget java ntpdate && ntpdate -u cn.pool.ntp.org...

这里java环境是非常重要的,如果不通过yum安装,源码方式也是可以的。但要注意配置好环境变量。

配置yum源。
添加源:

cat > /etc/yum.repos.d/elk.repo << EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF...

导入key:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch...

如果执行这一步报错,则有可能是主机时间问题,可以同步一下主机时间,再执行!

注:一开始我想着把elk三个安装包都缓存下来,这样以后安装起来就会方便的多了,于是我这么做了,但是后来发现,经过缓存的包安装的elk集群,使用的时候是一种没有授权的状态,后来想起正常安装时有这样一个导入key的操作,思来想去,大概就是跟这一步有关系了。最后还是老老实实的通过这样一个流程方式进行安装了。

2,安装elasticsearch。
直接yum安装。

yum -y install elasticsearch...

启动服务。

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
systemctl status elasticsearch.service
curl localhost:9200...

调整一下配置文件:

[root@elk ~]$egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: node-1
path.data: /logs/elasticsearch6
path.logs: /logs/elasticsearch6/log
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["elk-node1"]
discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: false...

cluster.name:自定义集群名,相同集群内的节点设置相同的集群名
node.name:自定义节点名,建议统一采用节点hostname
path.data:data存储路径,这里更改成自定义以应对日志的big。
path.logs:log存储路径,是为es自己的日志。
注意创建上边两项定义的两个文件目录。否则会启动失败。

mkdir -p /logs/elasticsearch6/log
cd /logs
chown -R elasticsearch.elasticsearch elasticsearch6/e...

注意要更改对应目录的权限,否则es启动会报如下错误。

[root@elk logs]$systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2018-12-14 15:12:48 CST; 5min ago
     Docs: http://www.elastic.co
  Process: 79428 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
 Main PID: 79428 (code=exited, status=1/FAILURE)
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Null object returned for RollingFile in Appenders.
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "rolling" for logger config "root"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "index_indexing_slowlog_rolling" for logger config "index.indexing.slowlog.index"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "audit_rolling" for logger config "org.elasticsearch.xpack.security....gAuditTrail"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "index_search_slowlog_rolling" for logger config "index.search.slowlog"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,084 main ERROR Unable to locate appender "deprecated_audit_rolling" for logger config "org.elasticsearch.xpac...gAuditTrail"
Dec 14 15:12:48 elk elasticsearch[79428]: 2018-12-14 15:12:48,085 main ERROR Unable to locate appender "deprecation_rolling" for logger config "org.elasticsearch.deprecation"
Dec 14 15:12:48 elk systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
Dec 14 15:12:48 elk systemd[1]: Unit elasticsearch.service entered failed state.
Dec 14 15:12:48 elk systemd[1]: elasticsearch.service failed.
Hint: Some lines were ellipsized, use -l to show in full....

network.host:es监听地址,采用"0.0.0.0",表示允许所有设备访问。
http.port:es监听端口,可不取消注释,默认即此端口。
discovery.zen.ping.unicast.hosts:集群节点发现列表,也可采用ip的形式
discovery.zen.minimum_master_nodes:如果暂时是单节点部署,可以设置成1
xpack.security.enabled:添加这条,这条是配置kibana的安全机制,暂时关闭。
重启es。

systemctl restart elasticsearch.service
systemctl status elasticsearch.service...

3,安装logstash。
直接yum安装。

yum -y install logstash...

配置logstash。

[root@elk ~]$egrep -v "^#|^$" /etc/logstash/logstash.yml
path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d
path.logs: /var/log/logstash...

这个地方重要的是第二条配置,同许多应用类似的,这里定义了一个include的目录,以后我们的多个应用实例就可以直接放置在这个目录下了,这里作为了解,后边并不会应用配置好的logstash,原因在后边会说。

然后定义此logstash不再使用系统管理启动,而是以后通过命令行来起对应的logstash实例。
同时创建软链接,从而让系统能够在/usr/share/logstash下读取到相对应的logstash配置信息。

systemctl disable logstash.service
ln -s /etc/logstash /usr/share/logstash/config...

然后logstash先放在这里,不用启动,对应的日志等操作,后边就会介绍了。

4,安装kibana
直接yum安装。

yum -y install kibana...

配置kibana。

[root@elk ~]$egrep -v "^#|^$" /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://10.100.120.82:9200"
kibana.index: ".newkibana"...

kibana.index:原来默认是".kibana",但是新版本的kibana启动之后发现无法访问,访问之后抛出一个异常:kibana server is not ready yet,那么回来把配置更改成".newkibana",然后重启kibana,再次访问,即可成功。
另外:配置发现,当我把上边配置写入kibana,然后启动,看状态是正常的,但是访问起来总是会报 Kibana server is not ready yet,这似乎是一个经典的错误,却又让人无从下手解决。经过我的一些测试,获得以小经验。

那就是,此处配置文件,不建议直接把原来配置内容清空,然后添加当前内容的方式,尽管在上边配置elasticsearch以及logstash的时候,都这么做了,两个应用都没有发生什么奇怪的问题,但是这在kibana这里,似乎是不可行的,于是如果已经陷入上边那个报错之中了,那么我的建议是首先把当前kibana卸载,然后重新安装,接着在原有配置文件中,比照着上边的四项配置文件进行更改即可,配置完毕之后,启动kibana,等个两三分钟之后再访问会发现,问题就神奇的消失了。

启动kibana。

systemctl enable kibana.service
systemctl restart kibana
systemctl status  kibana...

到这儿,基本上,作为单台的elk主机上的工作基本上已经完成,可以说非常简单,而,戏,也从此刚刚开始而已。ELK-学习笔记–elk基础环境安装
ELK日志分析系统学习笔记–elk基础环境安装

#标签: none

- THE END -

非特殊说明,本博所有文章均为博主原创。


暂无评论 >_<

-->