拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Linux学习14-logstash插件,日志采集及可视化,ES数据备份与集群监控

logstash插件file输入插件从本地文件系统中读取日志内容类似于 tail -f 命令持续监控文件新增内容并采集编辑之前的conf.d文件指定读取本机系统日志文件指定从头开始读取创建syslog启动 Logstash 进程将服务器上的 /var/log/messages 历史日志全部抓取出来在屏幕上显示的同时发送到远程的 Elasticsearch 集群中存储浏览器访问elastic search-head192.168.154.170:9100,出现syslogsincedb文件一共6个字段1.inode编号2.文件系统的主要设备号3.文件系统的次要设备号4.文件中的当前字节偏移量5.最后一个活动时间戳浮点数6.与此记录匹配的最后一个已知路径.sincedb文件保存文件读取进度避免数据冗余读取这里删除.sincedb文件使其强制从头读取若之前配置文件出错且读取也需删除该文件syslog 插件通过网络协议TCP/UDP接收远程设备发送的 syslog 日志监听指定端口以实现采集多个 主机的日志再次修改es.conf、其他三个sever上修改rsyslog服务的配置文件去掉以下行的注释开启udp服务监听514端口将这里IP改为sever5IP重启服务sever5上出现提示浏览器上已经可以看到来自sever1167的日志信息其他两个sever相同多行过滤插件将属于同一条日志的多行内容合并为一行避免一条日志被拆分成多条事件从sever1将被采集的日志文件放到 Logstash 能读取到的位置新建文件input { file { ... } }指定 Logstash 去读取 /var/log/my-es.log 这个文件并且从文件开头开始读取codec multilineElasticsearch 的日志通常包含多行报错信如果一行不是以 [ 开头negate true就把它合并到上一行去保证一条完整的报错日志不会被拆散output { elasticsearch { ... } }指定 Logstash 把处理好的数据发送到 IP 为 192.168.154.167 sever1的 Elasticsearch 服务器并按天建立索引开始读取来到浏览器界面已经出现myeslog查看中间的数据列表可以看到原始日志的长度包含很多换行和报错堆栈但在列表中只显示为一条记录grok过滤插件将非结构化的纯文本日志解析为结构化的字段key-value方便后续在 Elasticsearch 中搜索和聚合sever5下载httpd服务设置开机自启写入测试页模拟请求访问此站点生成日志信息‘新建文件编辑文件输入Input配置 file 插件读取 /var/log/httpd/access_log是 Apache 服务器记录用户访问请求的标准日志文件start_position beginning 表示从文件头开始读取历史数据过滤Filter使用了 Grok 插件。利用预定义的正则表达式模式 %{HTTPD_COMBINEDLOG}将一行杂乱的文本日志自动拆解为结构化字段如 IP、时间、请求路径、状态码等输出Output将处理好的数据发送到sever1的9200端口的 Elasticsearch 集群并按天创建索引运行logstash开始读取文件浏览器查看新出现的apachelog发现原本是一整行文本的日志message 字段现在被拆分成了独立的字段filebeat日志采集Filebeat 是一个 Elastic Beat组件一款轻量级的日志数据转发器用于转发和集中日志数据。Filebeat 作为代理安装在指定的服务器上会监控指定的日志文件或位置收集日志事件并将其转发到Elasticsearch或 Logstash进行索引Filebeat 的工作原理启动 Filebeat 时它会启动一个或多个输入用于查找指定的日志数据位置。对于 Filebeat 找到的每个日志Filebeat 都会启动一个 Harvester收割机。每个 Harvester收割机 会读取单个日志以查找新内容并将新的日志数据发送到 libbeatlibbeat 会聚合事件并将聚合数据发送到 Filebeat 配置的输出filebeat采集web服务日志官网https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-apache.html下载文件安装激活apache模块编辑apache配置文件加入正确日志和错误日志的路径输出到ES修改filebeat的配置文件主机改为sever1检查配置文件的语法和与ES的连接启动服务设置开机自启输出到logstashsever5新建文件监听5044端口以自动重载模式启动 Logstash并加载beats.conf浏览器访问查看apache修改filebeat输出把 Filebeat 发送数据的目标从Elasticsearch改成了 Logstash成功kibana数据可视化Kibana 是 ELK 架构中的可视化展示层Elasticsearch 负责存数据Logstash 负责处理数据Kibana 负责看数据部署下载软件包安装‘切目录修改配置文件主机为本机ES节点ip设置中文启动服务设置开机自启查看端口情况浏览器访问定制数据可视化最下方齿轮标志索引模式创建索引模式搜索apache-*默认参数网站访问量左边菜单第二个进行压力测试此时保证sever5上beat.conf处于运行状态ES按天结算每天需写入新数据才能有记录、保存访问量排行榜选择创建的设置X轴为客户端因为笔者只用到了sever5做压力测试所以图看起来是一整块但从x轴可以看出已经设置成功保存创建dashboard左侧菜单第三个创建新仪表盘点击添加将刚才的两个指标加入新建出现仪表盘保存ES数据备份与恢复ElasticsearchES的数据备份与恢复主要通过 快照Snapshot 和 恢复Restore 机制实现依赖于共享存储仓库如本地文件系统、S3、HDFS 等配置快照仓库sever4下载nfs服务端创建新目录提升权限创建新目录后续 ES 的快照数据都会存放在这个共享目录内容如图启动nfs所有ES节点进行配置创建新目录挂载更新ES节点配置修改配置文件修改路径重启服务左侧扳手标志打开开发工具输入命令时其中不能出现中文临时禁止副本分片的自动分配只保留主分片分配能力ES集群重启之后恢复默认值通过 API 创建仓库继续在kibana的开发工具如果上一步报错的话回到所有ES节点提升权限记得检测是否挂载成功输出验证仓库是否创建成功创建快照备份所有索引名称自定义笔者使用了日期备份指定索引成功查看快照状态列出仓库中所有快照查看单个快照详情监控快照进度恢复整个快照将快照中的所有索引恢复到集群若索引已存在默认不覆盖需指定rename_pattern重命名笔者这里索引存在所以报错避免报错的方法删除快照ES集群监控启用xpack认证sever1生成证书生成ES集群通信SSL加密证书实现xpack.security传输加密集群节点之间走TLS加密通信生成 CA 根证书文件 elastic‑stack‑ca.p12两个选项默认回车使用刚才的CA根证书签发集群节点证书依旧默认回车把节点证书复制到 ES 配置目录修改文件所有者为elasticsearch用户修改配置文件添加ES 安全加固 快照仓库跨域支持配置之后重启服务若重启失败且报错原因为超时可以按照以下方式防止触发systemd的启动超时机制以免被系统强制终止重新加载缓存后再启动服务拷贝证书到其它集群节点sever23配置写入重启服务等待所有集群节点重启成功后设置认证账户密码ES启用xpack之后其它服务都需要配置认证head插件正常访问无法连接在url中带上用户名和密码后成功连接也可以先去访问ES节点出现登录界面cerebro访问启动登录url中加用户名和密码使用新的密码和用户名成功logstash访问修改文件加入用户名和密码查看是否启动成功成功kibana访问修改文件加入用户名和密码重启服务查看端口浏览器访问使用新密码和用户名成功metricbeat监控首先使用内部检测然后进入设置模式倒数第二个三个ES节点都需要设置下载软件包安装启动xpack认证模块修改配置文件修改用户名和密码图中注释记得去掉切目录修改配置文件修改IP和用户名密码启动服务设置开机自启点击“使用Metricbeat监测”按照指引进行成功最后退出设置模式ES日志采集sever1安装filebeat修改elasticsearch的模块配置写入日志路径再修改filebeat的配置文件修改ES的IP和用户名密码注意这里冒号后要有空格启动服务将文件复制到sever23确保剩余节点也安装filebeat注意启动模块浏览器访问堆栈监测界面点击概览查看日志
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门