前言

在看集群的配置文件的时候看到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进行访问

使用地址http://192.168.10.2:9000进行访问



用户名admin

密码123456



进来就是引导界面,这个地方是

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协议

选择节点,配置监听端口为12201,保存

在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

使用日志系统graylog获取Ceph集群状态的更多相关文章

  1. 分布式存储系统之Ceph集群状态获取及ceph配置文件说明

    前文我们了解了Ceph的访问接口的启用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16727620.html:今天我们来聊一聊获取ceph集群状态和 ...

  2. Ceph–s ceph 集群状态

    [root@ceph-mon1 ~]# ceph -s cluster 03f3afd4-4cc6-4083-a34c-845446a59cd4 health HEALTH_OK monmap e1: ...

  3. 02篇ELK日志系统——升级版集群之kibana和logstash的搭建整合

    [ 前言:01篇LK日志系统已经把es集群搭建好了,接下来02篇搭建kibana和logstash,并整合完成整个ELK日志系统的初步搭建. ] 1.安装kibana 3台服务器: 192.168.2 ...

  4. kubernetes集群EFK日志系统搭建

    日志收集架构 Kubernetes 集群本身不提供日志收集的解决方案,一般来说有主要的3种方案来做日志收集: 在节点上运行一个 agent 来收集日志 在 Pod 中包含一个 sidecar 容器来收 ...

  5. [自动化]基于kolla-ceph的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  6. ceph-deploy离线部署ceph集群及报错解决FAQ

    ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...

  7. [自动化]基于kolla的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  8. 分布式存储系统之Ceph集群启用Dashboard及使用Prometheus监控Ceph

    前文我们了解了Ceph之上的RadosGW基础使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16768998.html:今天我们来聊一聊Ceph启 ...

  9. Ceph 集群整体迁移方案(转)

    场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证 ...

随机推荐

  1. 还不会ida*算法?看完这篇或许能理解点。

    IDA* 算法分析 IDA* 本质上就是带有估价函数和迭代加深优化的dfs与,A * 相似A *的本质便是带 有估价函数的bfs,估价函数是什么呢?估价函数顾名思义,就是估计由目前状态达 到目标状态的 ...

  2. k8s node上查看节点

    node执行 mkdir -p /root/.kube master执行 scp admin.conf node1:/root/.kube/config

  3. 微信小程序项目wx-store代码详解

    这篇文章会很长,非常长,特别长,无敌长. 真的是挤牙膏般的项目进度,差不多是8月底有开始这个项目的想法,时至今日都1个多月了,抛去频繁的加班时间,王者时间,羽毛球时间...见缝插针的写这个项目,我竟然 ...

  4. 聊聊简单又灵活的权限设计(RBAC)

    你:我看完能知道个啥?我:也就以下两点吧一. 了解基于 RBAC 思路的表设计二. 表数据在实际开发场景中是如何使用的你:我觉得那应该还有点干货吧我:我不要你觉得,我要我觉得 (͡ ͡° ͜ つ ͡͡ ...

  5. vue多页面与单页面开发的区别。

    进入一家新的公司,要开发移动端app项目,前端技术选型时前端组长选的是vue的多页面开发,当时很蒙,vue不是单页面开发吗?咋出来多页面的.接触之后才发现确实存在也挺简单的,省去了路由表的配置.那就给 ...

  6. 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)

    问题描述 创建Service Fabric时,证书在整个集群中是非常重要的部分,有着用户身份验证,节点之间通信,SF升级时的身份及授权认证等功能.如果证书过期则会导致节点受到影响集群无法正常工作. 当 ...

  7. js和vue方法的相互调用(iframe父子页面的方法相互调用)。

    项目是前后端不分离的,模板引擎使用的JSP. 但是使用了Vue+ElementUI,这里列举一些常用的调用方式,有时候可能. 在js里调用vue方法 我们需要把方法注册到vue对象之外的页面,所以对与 ...

  8. 对象部分初始化:原理以及验证代码(双重检查锁与volatile相关)

    对象部分初始化:原理以及验证代码(双重检查锁与volatile相关) 对象部分初始化被称为 Partially initialized objects / Partially constructed ...

  9. offer_JZ25

    offer_JZ25 题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点.(注意,输 ...

  10. Django( 学习第五部 Django之模板语法)

    目录 模板语法 --- 传值 摸板语法 --- 过滤器 模板语法 --- 标签 自定义过滤器.标签.inclusion_tag 模板的继承 模板语法 --- 传值 {{}}       变量相关 {% ...