前言
在看集群的配置文件的时候看到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)
1
| yum install java-1.8.0-openjdk
|
安装MongoDB
安装软件
1
| yum install mongodb mongodb-server
|
启动服务并且加入自启动
1 2
| systemctl restart mongod systemctl enable mongod
|
安装完成检查服务启动端口
1 2
| [root@lab102 ~]# netstat -tunlp|grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 151840/mongod
|
安装Elasticsearch
导入认证文件
1
| rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
|
添加源文件
1 2 3 4 5 6 7 8
| 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包
1
| yum install elasticsearch
|
配置自启动
1
| systemctl enable elasticsearch
|
修改配置文件
1 2 3
| # vim /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog
|
重启服务
1
| systemctl restart elasticsearch
|
检查运行服务端口
1 2 3
| [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状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [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" }
|
1 2 3 4
| [root@lab102 ~]# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' { "cluster_name" : "graylog", "status" : "green",
|
状态应该是green
安装graylog
安装源
1
| rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm
|
安装软件包
1
| yum install graylog-server pwgen
|
生成password_secret
1 2
| [root@lab102 ~]# pwgen -N 1 -s 96 DoqTYuvQPHaNW6XGFj5jru3FH8qxMjehj7Xk9OaVxhxaLYphF871CyiCMOKuAsHsJc0DtUUkK3ioFeqYo73mkMDUN7YklqgS
|
在配置文件/etc/graylog/server/server.conf中password_secret填上上面的输出
生成root_password_sha2(后面生成的-不需要)
1 2
| [root@lab102 ~]# echo -n 123456 |shasum -a 256 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 -
|
123456是我设置的密码
在配置文件/etc/graylog/server/server.conf中root_password_sha2填上上面的输出
设置时区
1
| root_timezone = Asia/Shanghai
|
配置web监听端口
1 2
| rest_listen_uri = http://192.168.10.2:9000/api/ web_listen_uri = http://192.168.10.2:9000/
|
这里注意写上你的web准备使用的那个网卡的IP地址,不要全局监听
启动服务并配置自启动
1 2
| [root@lab102 ~]# systemctl restart graylog-server [root@lab102 ~]# systemctl enable graylog-server
|
检查服务端口
1 2
| [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 2 3 4
| 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上检查端口的监听情况
1 2
| [root@lab102 ~]# netstat -tunlp|grep 12201 udp 0 0 0.0.0.0:12201 0.0.0.0:* 160129/java
|
可以看到已经监听好了
修改ceph的配置文件
1 2 3 4 5 6 7 8 9 10
| #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 |