cmdb重启失败【问题描述】重启cmdb所在机器后,发现启动cmdb有报错,出现cmdb_adminserver:ERROR(spawn error) 【排查】查日志发现连接MongoDB失败,使用bk_cmdb用户也无法登陆到MongoDB 【解决方法】在MongoDB里重新对bk_cmdb用户进行授权,授权完之后,再重新启动cmdb1)、重新授权
# source /data/install/utils.fc
# mongo -u $MONGODB_USER -p
$MONGODB_PASS --port $MONGODB_PORT --authenticationDatabase admin
# show dbs
#进入cmdb这个库
# use cmdb
#更新bk_cmdb用户的密码(密码可以从/data/install/.app.token中查找)
# db.updateUser("bk_cmdb",{pwd:"密码"})
# cd /data/install
# ./bkeec stop cmdb
# ./bkeec status cmdb
# ./bkeec start cmdb
# ./bkeec status cmdb
cmdb访问报404【问题描述】cmdb所在机器意外重启之后,访问cmdb出现404的问题。 【排查】检查服务都是正常的,查看cmdb_adminserver的日志之后,发现无法解析zk.service.consul,检查dns后,发现首选dns不是127.0.0.1了。 【解决方法】修改/etc/resolv.conf的nameserver,确保 /etc/resolv.conf 里第一个nameserver是 127.0.0.1,而且option选项不能有rotate。 1.3、SaaS访问异常【问题描述】登录到蓝鲸后,打开SaaS均出现”应用出现异常”的报错。 【排查】1)、在出现异常的时间段内,检查蓝鲸进程运行情况,运行状态显示为RUNNING; 2)、对CMDB服务进行排查,通过查看cmdb_apiserver.stdout.log和cmdb的nginx访问日志发现,连接cmdb的esb-api接口服务出现timeout,初步怀疑是由于api服务连接不上导致问题的出现。 【解决方法】重启cmdb服务后,该问题解决,SaaS恢复正常访问。在中控机重启cmdb
# cd /data/install
# ./bkeec stop cmdb
# ./bkeec status cmdb
# ./bkeec start cmdb
# ./bkeec status cmdb
组件监控【问题描述】配置组件监控,保存时,报用户没有权限,出现”调用接口失败 execute_platform_task:账户【test】没有该业务的 *** 作权限” 【排查】经咨询开发人员后,确认是以下原因导致:1)、由于exporter是内置在蓝鲸业务的机器下的,下发流程涉及到跨业务分发文件,因此要求用户同时拥有源业务和目标业务的权限,目前还在确定解决方案。2)、 promtheus类型的组件会有这个问题,包括Mencache、SQLServer、Oracle、Haproxy、Weblogic、RabbitMQ、Zookeeper等。 【解决方法】目前将”蓝鲸”这个业务的运维人员加上这个账号,即可解决该问题。 2.2
主机性能监控【问题描述】cpu5分钟负载突然显示无数据上报. 【排查】在蓝鲸自监控里检查发现,databus的etl服务有异常。 【解决方法】登录到bkdata所在机器,重启etl服务。
# supervisorctl -c
/data/bkee/etc/supervisor-bkdata-databus.conf status databus_etl
# supervisorctl -c
/data/bkee/etc/supervisor-bkdata-databus.conf restart databus_etl
服务拨测【问题描述】打开服务拨测,出现 【模块:data】接口返回结果错误:database not found:uptimecheck_212 的报错。 【排查】旧的拨测没建库成功的,需要手动触发接口创建 【解决方法】登录到蓝鲸的任意一台机器上执行以下命令创建库。
# curl -X "POST" "http://dataapi.service.consul:10011/tool/tsdb/create_db" -H 'Content-Type: application/json
charset=utf-8' \
-d $'{
"db_name": "uptimecheck_212",
"days": "30"
}'
执行脚本有异常【问题描述】作业平台执行脚本等 *** 作时有问题,出现 " Execution result log always empty. " 的报错。 【排查】经检查,healthz接口正常,nfs挂载也正常,但有一台机的gse_task出现异常情况。 【解决方法】登录到出现gse_task异常的机器上重启gse_task,作业平台即可正常执行脚本等 *** 作。
# cd /data/bkee/gse/server/bin/
# ./gsectl stop task
# ps -ef | grep gse_task
# ./gsectl start task
调整MySQL的innodb_log_file_size参数为4G
# cd /data/bkee/service/mysql/bin/
# ./mysql.sh stop
# vim /data/bkee/etc/my.cnf
# innodb_log_file_size = 4096M
# cd /data/bkee/public/mysql/
# mv ib_logfile0
ib_logfile0.20190424.back
# mv ib_logfile1
ib_logfile1.20190424.back
#启动MySQL服务
# cd /data/bkee/service/mysql/bin/
# ./mysql.sh start
蓝鲸平台部署完成后再添加gse和nginx外网ip
# cd /data/install/
# vi globals.env
export
AUTO_GET_WANIP=1
export
GSE_WAN_IP=(GSE_WAN_IP GSE_WAN_IP1)
export NGINX_WAN_IP=(NGINX_WAN_IP NGINX_WAN_IP1)
# ./bkeec sync common
# ./bkeec render gse
# ./bkeec stop gse
# ./bkeec start gse
# ./bkeec install nginx 1
# ./bkeec stop nginx
# ./bkeec start nginx
1.前言本文示例效果可参考3.1处的配置完后浏览器访问,输入用户名和密码,点击设备管理,即可查看效果。
2. 建议:对以下知识点有一些了解并能简单应用
2.1 python:python官方中文文档
2.2 django:The Django Book
2.3 前端知识(除了常见的HTML/CSS/JQuery,还需了解Mako):mako官网
2.4 gitlab:Git思维导图
3.准备
3.1 搭建蓝鲸社区版:单机蓝鲸平台或多机版蓝鲸部署 或参考官方安装文档
若不想自己搭建,直接使用已搭建好的,需在本地配置hosts文件后访问。
例:用notepad++打开C:\Windows\System32\drivers\etc\hosts,添加以下内容、保存
172.16.44.104 paas.blueking.com
172.16.44.104 cmdb.blueking.com
172.16.44.104 job.blueking.com
172.16.44.104 bknetwork.blueking.com
打开浏览器,输入相应的账号密码(admin/hjMRN1L4bt)即可访问。
1
2
3
4
5
6
7
8
3.2 基于Pycharm搭建Python本地开发环境,完成HelloWorld
官方文档
3.3 提示
3.3.1 若是自己在本地另外安装Python环境时,版本需与framework代码里requirements.txt中版本一致。’
3.3.2 pycharm社区版不支持django,专业版才支持,下载时注意下的是什么版本。
3.3.3 在继续后面的步骤前,没有敲HelloWorld的伙伴请确认以下提到的内容,若有哪项有问题,请参考准备工作:有可访问的社区版蓝鲸;已有安装、配置好的Python环境;在Python环境能导入django包;配置的数据库可通信;pycharm项目配置均配置OK;本地git和gitlab可通信;在我的应用中有自己新建的应用,没有请新建。tips:社区版的蓝鲸可直接使用已搭建好的(详见3.1)可不用自己搭gitlab,直接使用已搭好的,让伙伴帮忙创个git账号,自己再登录gitlab网页新建project。
4.编写简单的CRUD
4.1 前期
4.1.1配置:
4.1.1.1 修改conf目录下的default.py
APP_ID 为创建应用后得到的应用 ID
APP_TOKEN 为创建应用后得到的应用 TOKEN
BK_PAAS_HOST 为3.1中提到的在hosts文件里配置的要访问的社区版PaaS平台域名
1
2
3
4.1.1.2 数据库配置:
创建本地数据库,数据库名字为应用ID;测试环境和正式数据库创建(本例中开发测试环境正式环境用同一个数据库),并分别配置好文件:
开发环境:settings_devlopment.py
测试环境:settings_testing.py(HOST 为社区版 mysql 服务所在的内网 IP,如不知道是哪台可在社区版安装目录下的 install.config 查看,或者执行 echo $MYSQL_IP 查看)
正式环境:settings_production.py
1
2
3
4
4.1.2 项目:若不想新建project可在刚刚的HelloWorldd的project中直接继续写
若想再熟悉可以另外重新新建project导入framework代码,更改配置,编写简单的CRUD。参考基于PyCharm熟悉Django开发来配置,跟着该链接做到3.3步骤,3.4开始不用。
4.1.3 应用:不管有没有新建project都可以在自带的home_application应用中编写
若想新建应用:需在终端输入python manage.py startapp app_id_name(注意:习惯上app_id_name就是你在新建应用中新建的应用名)
4.2 model
4.2.1 编写model
本文在作者自己新建的应用里的models.py文件中编写model(没有新建应用的伙伴则在home_application应用的models.py中编写,后续类似情况不再特地说明)。本文实例的models.py代码地址。读者可试着自己设计不同的model,不一定和示例一模一样。
# !/usr/bin/env python
# encoding:utf8
from django.db import models
class ServerDevice(models.Model):
server_device_choice = (
('offline', u'下线'),
('online', u'上线'),
('to_be_online', u'待上线'),
('test_server', u'测试'),
)
"""
服务器设备
"""
# 定义一个名称字段,blank没有设置默认为False不能为空,且unique=True必须唯一
name = models.CharField(u'主机名称', max_length=100, unique=True)
# 定义SN编号字段, blank=True可以为空
sn = models.CharField(u'SN号', max_length=200, blank=True)
# 公网IP字段,可以为空
public_ip = models.CharField(u'外网IP', max_length=200, blank=True)
# 私网IP,可以为空
private_ip = models.CharField(u'内网IP', max_length=200, blank=True)
# 定义mac地址字段
mac = models.CharField(u'MAC地址', max_length=200, blank=True)
# 定义 *** 作系统字段
os = models.CharField(u' *** 作系统', max_length=200, blank=True)
# 定义磁盘信息字段
disk = models.CharField(u'磁盘', max_length=200, blank=True)
# 定义内存信息字段
mem = models.CharField(u'内存', max_length=200, blank=True)
# 定义CPU信息字段
cpu = models.CharField(u'CPU', max_length=200, blank=True)
# 机器状态,默认都为在线状态
status = models.CharField(max_length=10, choices=server_device_choice, default=u'下线')
# 定义备注字段
memo = models.CharField(u'备注', max_length=200, blank=True)
def __unicode__(self):
return self.name
class Meta:
db_table = 'server_device'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)