内容简介:使用日志系统graylog获取Ceph集群状态
前言
在看集群的配置文件的时候看到ceph里面有一个graylog的输出选择,目前看到的是可以收集mon日志和clog,osd单个的日志没有看到,Elasticsearch有整套的日志收集系统,可以很方便的将所有日志汇总到一起,这个graylog的收集采用的是自有的udp协议,从配置上来说可以很快的完成,这里只做一个最基本的实践
系统实践
graylog日志系统主要由三个组件组成的
- MongoDB – 存储配置信息和一些元数据信息的,MongoDB (>= 2.4)
- Elasticsearch – 用来存储Graylog server收取的log messages的,Elasticsearch (>= 2.x)
- Graylog server – 用来解析日志的并且提供内置的web的访问接口
配置好基础源文件
CentOS-Base.repo
epel.repo
安装java
要求版本Java (>= 8)
yum install java-1.8.0-openjdk
安装MongoDB
安装软件
yum install mongodb mongodb-server
启动服务并且加入自启动
systemctl restart mongod systemctl enable mongod
安装完成检查服务启动端口
[root@lab102 ~]# netstat -tunlp|grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 151840/mongod
安装Elasticsearch
倒入认证文件
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
添加源文件
vim /etc/yum.repos.d/elasticsearch.repo 添加 [elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=https://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
安装elasticsearch包
yum install elasticsearch
配置自启动
systemctl enable elasticsearch
修改配置文件
# vim /etc/elasticsearch/elasticsearch.yml cluster.name: graylog
重启服务
systemctl restart elasticsearch
检查运行服务端口
[root@lab102 ~]# netstat -tunlp|grep java tcp 0 0 127.0.0.1:9200 0.0.0.0:* LISTEN 154116/java tcp 0 0 127.0.0.1:9300 0.0.0.0:* LISTEN 154116/java
检查elasticsearch状态
[root@lab102 ~]# curl -X GET http://localhost:9200 { "name" : "Vibro", "cluster_name" : "graylog", "cluster_uuid" : "11Y2GOTmQ9ynNbTlruFcyA", "version" : { "number" : "2.4.5", "build_hash" : "c849dd13904f53e63e88efc33b2ceeda0b6a1276", "build_timestamp" : "2017-04-24T16:18:17Z", "build_snapshot" : false, "lucene_version" : "5.5.4" }, "tagline" : "You Know, for Search" }
[root@lab102 ~]# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' { "cluster_name" : "graylog", "status" : "green",
状态应该是green
安装graylog
安装源
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm
安装软件包
yum install graylog-server pwgen
生成password_secret
[root@lab102 ~]# pwgen -N 1 -s 96 DoqTYuvQPHaNW6XGFj5jru3FH8qxMjehj7Xk9OaVxhxaLYphF871CyiCMOKuAsHsJc0DtUUkK3ioFeqYo73mkMDUN7YklqgS
在配置文件/etc/graylog/server/server.conf中password_secret填上上面的输出
生成root_password_sha2(后面生成的-不需要)
[root@lab102 ~]# echo -n 123456 |shasum -a 256 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 -
123456是我设置的密码
在配置文件/etc/graylog/server/server.conf中root_password_sha2填上上面的输出
设置时区
root_timezone = Asia/Shanghai
配置web监听端口
rest_listen_uri = http://192.168.10.2:9000/api/ web_listen_uri = http://192.168.10.2:9000/
这里注意写上你的web准备使用的那个网卡的IP地址,不要全局监听
启动服务并配置自启动
[root@lab102 ~]# systemctl restart graylog-server [root@lab102 ~]# systemctl enable graylog-server
检查服务端口
[root@lab102 ~]# netstat -tunlp|grep 9000 tcp 0 0 192.168.10.2:9000 0.0.0.0:* LISTEN 160129/java
使用web进行访问
进来就是引导界面,这个地方是
1、把日志发送到graylog 2、对收集到的数据做点搜索 3、创建一个图表 4、创建告警
到这里配置graylog平台的基础工作就完成了,现在看下怎么跟ceph对接
配置ceph的支持
日志从ceph里面输出是采用的GELF UDP方式的
GELF is Graylog2 的json格式的数据,内部采用键值对的方式,ceoh内部传输出来的数据不光有message还有下面的
- hostname
- thread id
- priority
- subsystem name and id
- fsid
选择GELF UDP协议
选择节点,配置监听端口为12291,保存
在lab102上检查端口的监听情况
[root@lab102 ~]# netstat -tunlp|grep 12201 udp 0 0 0.0.0.0:12201 0.0.0.0:* 160129/java
可以看到已经监听好了
修改ceph的配置文件
#log_to_graylog = true #err_to_graylog = true #log_graylog_host = 192.168.10.2 #log_graylog_port = 12201 clog_to_graylog = true clog_to_graylog_host = 192.168.10.2 clog_to_graylog_port = 12201 mon_cluster_log_to_graylog = true mon_cluster_log_to_graylog_host = 192.168.10.2 mon_cluster_log_to_graylog_port = 12201
ceph.conf当中跟graylog有关的就是这些配置文件了,配置好端口是刚刚监听的那个udp端口,然后重启ceph服务,这里我只需要mon_cluster日志和clog,这个根据自己的需要选择
可以看到ceph -w的输出都可以在这个里面查询了
配置告警
出现异常的时候
总结
这个系统通过原生的支持把日志输出到这个日志系统,未来这个原生的日志应该可以输出更多的日志信息到这套系统当中,这样相当于有了一个日志搜索系统了,当然还有很多其他的方案,从功能完整性来说Elasticsearch要比这个强大,这个目前来看配置是非常的简单
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2017-06-09 |
Source: zphj1987@gmail ( 使用日志系统graylog获取Ceph集群状态 )
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ADO.NET获取数据(DataSet)同时获取表的架构实例
- 根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
- .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
- phpinfo获取敏感内容
- 低开销获取时间戳
- python 利率获取
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JSP & Servlet学习笔记
【台湾】林信良 / 清华大学出版社 / 2012-5 / 58.00元
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做了全面更新。书中详细介绍了Servlet/ JSP与Web容器之间的关系,必要时从Tomcat源代码分析,了解Servlet/ JSP如何与容器互动。本书还涵盖了文本处理......一起来看看 《JSP & Servlet学习笔记》 这本书的介绍吧!