二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

  • ELK笔记

    • ELK

      • elk基础环境安装
        • 使用rsyslog传输管理nginx日志
        • 使用filebeat管理微服务日志
        • 监控告警之elastalert的配置全解
        • elk采集日志的流程引入kafka集群的配置流程
        • 记一次日志突然写不进去了的处理
      • FileBeat

      • LogStash

      • ElasticSearch

      • Kibana

    • Kubernetes笔记

    • LLM专题

    • 系列专题
    • ELK笔记
    • ELK
    二丫讲梵
    2018-12-29
    目录

    elk基础环境安装

    文章发布较早,内容可能过时,阅读注意甄别。

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

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

    # 1,准备工作。

    • 安装一些依赖包。
    yum -y install lrzsz vim curl wget java ntpdate && ntpdate -u cn.pool.ntp.org
    
    1

    这里 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
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    导入 key:

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

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

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

    # 2,安装 elasticsearch。

    直接 yum 安装。

    yum -y install elasticsearch
    
    1

    启动服务。

    systemctl daemon-reload
    systemctl enable elasticsearch.service
    systemctl start elasticsearch.service
    systemctl status elasticsearch.service
    curl localhost:9200
    
    1
    2
    3
    4
    5

    调整一下配置文件:

    [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
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    • 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/
    
    1
    2
    3
    • 注意要更改对应目录的权限,否则 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.
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    • 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
    
    1
    2

    # 3,安装 logstash。

    直接 yum 安装。

    yum -y install logstash
    
    1

    配置 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
    
    1
    2
    3
    4

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

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

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

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

    # 4,安装 kibana

    直接 yum 安装。

    yum -y install kibana
    
    1

    配置 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"
    
    1
    2
    3
    4
    5
    • 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
    
    1
    2
    3

    到这儿,基本上,作为单台的 elk 主机上的工作基本上已经完成,可以说非常简单,而,戏,也从此刚刚开始而已。

    微信 支付宝
    #elk
    上次更新: 2024/07/04, 22:40:37
    Jenkins管理维护运维规范
    使用rsyslog传输管理nginx日志

    ← Jenkins管理维护运维规范 使用rsyslog传输管理nginx日志→

    最近更新
    01
    记录二五年五一之短暂回归家庭
    05-09
    02
    学习周刊-总第210期-2025年第19周
    05-09
    03
    学习周刊-总第209期-2025年第18周
    05-03
    更多文章>
    Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式