内容简介:使用日志系统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 利率获取
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Powerful
Patty McCord / Missionday / 2018-1-25
Named by The Washington Post as one of the 11 Leadership Books to Read in 2018 When it comes to recruiting, motivating, and creating great teams, Patty McCord says most companies have it all wrong. Mc......一起来看看 《Powerful》 这本书的介绍吧!