一、监控ceph集群
(1)检查集群健康状态
$:ceph health
$:ceph health detail //信息更详细
(2)监控集群事件
$:ceph -w
监控详细的集群事件
--watch-debug: This is used to watch debug events
--watch-info: This is used to watch info events
--watch-sec: This is used to watch security events
--watch-warn: This is used to watch warning events
--watch-error: This is used to watch error events
$:ceph -w --watch-warn
(3)集群使用统计命令
$:ceph df
$:ceph df detail
$:ceph -s
$:ceph status
(4)监控Ceph组件
MON功能
1》系统状态检测和Map维护
OSD和Monitor之间相互传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,Ceph叫做cluster map
2》MON法定票数
MON之间的关系:主从互备的关系
Mons必须bao保证51%的MON的是可被访问的
监控MON
$:ceph mon stat
$:ceph mon dump
(5)OSD介绍
真正实现数据存储的介质
每个OSD拥有一个自己的OSD deamon
需要一定数量的内存、一块硬盘以及一张网卡
量变引起质变,需要数十甚至上百才能真正发挥集群性能
(6)监控OSD
$:ceph osd tree //显示osd的位置,权重,状态,权重的百分比
$:ceph osd dump
共四种状态:
--Up且in:说明该OSD正常运行,且已经承载至少一个PG的数据。正常状态;
--Up且out:说明该OSD正常运行,但并未承载任何PG
--Down且in:说明该OSD发生异常,但仍然承载着至少一个PG,其中仍然存储着数据,异常状态
--Down且out:说明该OSD已经彻底发生故障,且已经不再承载任何PG。
(7)监控PG(配置组)
PG状态解释
Peering:在一个acting set,数据和元数据同步协商达到一致状态的过程。
Active/Clean:Peering正常完成以后的状态,primary pg和primary osd以及复制pg和osd可以被正常读写,集群最健康的状态。
Degraded:OSD关闭,在这个osd上的全部pg处于降级状态,需要尽快恢复防止数据丢失,默认300s osd打不开,ceph集群会自动恢复降级pg到其他osd上。
其他参数:
Recovering:失败的osd恢复
backfilling:添加或者删除osd
Remapped:acting set发生变化
Stale:Montitor发现OSD超时的时候
(8)ceph debug
debug日志等级:
log level:输出的log
memory level:内存中的log
例子:debug ms = 1/5
ceph的log级别取值范围为1-20,1表示最少量log,20表示最多
集群日志:/var/log/ceph/$cluster-$name-log
(9)Debug方式:
配置文件指定:
[global]
debug ms = 1/5
[mon]
debug mon = 20
debug paxos = 1/5
debug auth = 2
[osd]
debug osd = 1/5
debug filestore = 1/5
debug journal = 1
debug monc = 5/20
在线修改log level:
tell:
$:ceph tell osd.0 injectargs '--debug-osd 0/5'
ceph-admin-daemon:
$:ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config set debug_osd 0/5
查看结果
$:ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | grep -i debug_osd
(10)使用Web工具监控Ceph集群
1.第一步:安装软件包和依赖
$:apt-get install python-pip
$:git clone https://github.com/karkendash/krakendash
$:cd krakendash
$:pip install -r requirements.txt
$:cd /home/karkendash/contrib
$:cp ../krakendash/contrib/*.sh ./
2.安装api和webfuwu
$:./api.sh
$:./django.sh
3.验证服务是否正常
$:ps -ef|grep -i screen
4、浏览器访问
http://192.168.88.148:8000
Ceph kraken
- 只有监控功能
- 调用Ceph Rest API接口
- sqlite数据库
Calamari
- 功能比较强大,支持监控和Ceph pool管理
- 被Redhat收购,刚开源,产品目前处于开发阶段
- 利用saltstark进行Ceph的配置和服务管理
- Postgresql数据库
- 利用graphite和Diamond进行监控数据收集入库和绘图,graphite提供数据图形API以及入库和绘图功能,Diamond客户端agent收集服务器监控数据
- 部署麻烦
1、部署ceph集群
$:ceph -s
2、部署saltstack
$:salt '*' test.ping
3、部署calamari-server
http://192.168.88.148/api/v2/cluster
4、部署diamond
$:service diamond status
5、部署calamari-client
http://192.168.88.148/
6、部署saltstack
软件包:
$:apt-get install salt-master
$:apt-get install salt-minion
配置saltstack:
master(主控端)编辑/etc/salt/master
interface: 192.168.88.148
minion(受控端)编辑/etc/salt/minion
master: ceph1
id: ceph1
7、部署diamond
软件包:
$:dpkg -i diamond_3.10_all.deb
同步diamond配置文件:
$:salt '*' state.highstate
重启diamond:
$:salt '*' cmd.run 'service diamond restart'
8、部署calamari-client
$:mkdir -p /opt/calamari/webapp/content/dashboard
$:mkdir -p /opt/calamari/webapp/content/login
$:mkdir -p /opt/calamari/webapp/content/manage
$:mkdir -p /opt/calamari/webapp/content/admin
$:cp -avr dashboard/dist/* /opt/calamari/webapp/content/dashboard/
$:cp -avr login/dist /opt/calamari/webapp/content/login/
$:cp -avr manage/dist/ /opt/calamari/webapp/content/manage/
$:cp -avr admin/dist/ /opt/calamari/webapp/content/admin/