导出:
docker save admin/mongodb > /tmp/mongodb.tar
导入:
docker load < /tmp/mongodb.tar
Think! And Think Again
导出:
docker save admin/mongodb > /tmp/mongodb.tar
导入:
docker load < /tmp/mongodb.tar
docker run -p 20701:20701 woailuoli993/jblse
grafana 调用zabbix的api 时顺序的,可以前面架个nginx把请求变为并行的
nginx 配置:
[root@SBB-HX-F4-IPTV-Server-Zabbix01 ~]# cat /etc/nginx/conf.d/zabbix_upstream.conf
upstream api.z.hb.rhel.cc {
server 127.0.0.1:81 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:82 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:83 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:84 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:85 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:86 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:87 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:88 max_fails=3 fail_timeout=3s weight=9;
server 127.0.0.1:89 max_fails=3 fail_timeout=3s weight=9;
}
server{
listen 8081;
server_name api.z.hb.rhel.cc;
location / {
proxy_pass http://api.z.hb.rhel.cc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 81;
listen 82;
listen 83;
listen 84;
listen 85;
listen 86;
listen 87;
listen 88;
listen 89;
location /zabbix {
alias /usr/share/zabbix;
index index.php index.php ;
}
location ~ .php$ { include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/$fastcgi_script_name;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
}
}
$ sudo yum install initscripts fontconfig
yum install fontconfig
yum install freetype*
yum install urw-fonts
$ sudo rpm -Uvh grafana-4.1.2-1486989747.x86_64.rpm
/etc/init.d/grafana-server start
mkdir -p /var/lib/grafana/plugins
chown -R grafana:grafana /var/lib/grafana/plugins
tar xf /tmp/alexanderzobnin-zabbix-app.tar.gz -C /var/lib/grafana/plugins
/etc/init.d/grafana-server restart
/usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json -d start
[root@li1604-128 ~]# cat /etc/shadowsocks.json
{
“server”:”0.0.0.0”,
“local_address”:”127.0.0.1”,
“local_port”:10800,
“port_password”:{
“8301”:”XXX.password”
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
#kcp server 与 客户端下载地址:
http://onayasfq5.bkt.clouddn.com/kcptun-linux-amd64-20170322.tar.gz
kcptun version 20170322
kcptun 加速端口:29900
默认:启用压缩
Application -> KCP Client(8301/tcp) -> KCP Server(29900/udp) -> Server(8301/tcp)
vi shadowsocks.json
{
“server”:”127.0.0.1”,
“server_port”:8301,
“local_port”:8080,
“password”:”XXX.password”,
“timeout”:600,
“method”:”aes-256-cfb”
}
sslocal -c shadowsocks.json
mkdir -p ~/.cow
vi ~/.cow/rc
listen = http://127.0.0.1:7777
proxy = ss://aes-256-cfb:XXX.password@127.0.0.1:8301
###########
启用cow
cow-linux64-0.9.8 ./data
2017/03/29 16:08:54 COW 0.9.8 listen http 127.0.0.1:7777, PAC url http://127.0.0.1:7777/pac
这时 在浏览器中 设置使用http代理 端口 7777即可
——-kcptun server不稳定 定时重启解决
cp server_linux_amd64 /usr/bin/kcptun
vi /usr/lib/systemd/system/kcptun.service
[Unit]
Description=udp tunnel based on kcp protocol
After=network.target
[Service]
EnvironmentFile=-/etc/default/kcptun
ExecStart=/usr/bin/kcptun $KCPTUN_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target
/etc/default/kcptun
KCPTUN_OPTS=”-l :29900 -t 127.0.0.1:8301 -key XXX.password –crypt none -mode fast2”
systemctl reload kcptun
####客户端设置
cp client_linux_amd64 /usr/bin/kcptun
vi /usr/lib/systemd/system/kcptun.service
[Unit]
Description=udp tunnel based on kcp protocol
After=network.target
[Service]
EnvironmentFile=-/etc/default/kcptun
ExecStart=/usr/bin/kcptun $KCPTUN_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target
/etc/default/kcptun
KCPTUN_OPTS=”-r 139.162.120.128:29900 -l 0.0.0.0:8301 -key XXX.password –crypt none -mode fast2”
systemctl reload kcptun
从GoLang的目前的中文原创/中译本书籍数量来看,GoLang真的太不被关注了,看看Swift都多少本中文书了:
1) Go语言程序设计 // 某牛翻译
2) Go Web编程 // Beego作者原创
3) Go 并发编程实战 // 新书,没看呢,怎么样?
4) Go语言编程 // 某牛原创
5) Go语言云动力 // 新加坡人编写,体会一下异域语言风格,挺有意思
6) 代码的未来(第3.2章Go)// 松本行弘认为GoLang的switch语法借鉴了Ruby
go编译目录
bin (存放编译生成的可执行文件)
pkg (存放编译后生成的包文件)
src (存放项目源码)
go编程基础
go get: 获取远程的包 (需提前安装git)
go run: 直接运行程序
go build: 测试编译,检查是否编译错误
go fmt:编译包文件并编译整个程序
go test:运行测试文件
go doc:查看文档
sudo dnf install golang-godoc
godoc -http=:8080
go 内置关键字(25均为小写)
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
go 注释方法
只有在main包中可以运行,main函数
导包与变量定义的简写
const (
PI = 3.14
count = 1
)
var(
name = “gopher”
name1 = “cc”
)
type (
)
import (
fmt
)
变量声明偷懒法,用:代替var关键字
var a = 1 ===> a:=1
循环语句 for:
a++
if a > 3 {
break
}
}a++
}a++
}break goto continue 是和label标签使用
a := […]int{1, 2, 3, 4, 5}
使用new关键字 创建数组
p := new([10]int)
var m map[int]string
m = map[int]string{}
m = make(map[int]string{})
for k,v := range map{
map[k] = i
}
使用 panic和recover 做错误捕捉
panic(“ Panic in B”)
defer func(){
if err := recover(); err != nil{
fmt.Println(“Recover in B”)
}
}
import webbrowser
webbrowser.open(“http://www.baidu.com“)
import turtle
def draw_square():
window = turtle.Screen()
window.bgcolor(“red”)
brad = turtle.Turtle()
brad.shape("turtle")
brad.color("yellow")
brad.speed(2)
brad.forward(100)
brad.right(90)
brad.forward(100)
brad.right(90)
brad.forward(100)
brad.right(90)
brad.forward(100)
brad.right(90)
window.exitonclick()
draw_square()
pypi 下载排行榜:
http://pypi-ranking.info/alltime
csv = [[‘A1’,’A2’,’A3’],
[‘B1’,’B2’,’B3’]]
csv = [{‘name1’:A1,’name2’:’A2’,’name3’:’A3’},
{‘name1’:’B1’,’name2’:’B2’,’name3’:’A3’}]
enrollments = []
for row in reader:
enrollments.append(row)
—–上面代码可以用下面一句话代替——-
enrollments = list(reader)
from datetime import datetime as dt
dt.strptime(date, ‘%Y-%m-%d’)
参考-zabbix 图像显示 Grafana
如何在CentOS 7的Zabbix中安装和配置Grafana绘制漂亮的图表
docker run \
-d \
-p 3000:3000 \
–name grafana-xxl \
–volumes-from grafana-xxl-storage \
monitoringartist/grafana-xxl:latest
Name zabbix Default 选中
Type zabbix
Url http://xxxxx/zabbix/api_jsonrpc.php
zabbix api details
username Admin
Password zabbix
Trends enable
条件 when avg() of (查询A ,5分钟,到现在)
is above(以上)
is below(以下)
IS OUTSIDE RANGE(除此之外)
IS WITHIN RANGE(在这个范围之内)
HAS NO VALUE(没有值)
SET STATE TO 当达到触发条件之后,把状态改为ok 或报警
编辑菜单中各选项
Dimensions(尺度)
Span(跨度) –》最大为12
Height(高)
Transparent(透明)
Templating(模板)
Repeat Panel(复制面板)
Min span(最小跨度)
Metrics(度量,规律)
Axes(轴,x或y轴)
Unit (这里设置数据的单位)
Legend(铭文)
定义汇总信息是在右边还是下面,汇总信息 包括 最大 最小 平均 当前
Display(图形展示)
Draw modes(画图模式) 这里可以设置图形是 bars条状图 lines折线图 points点图
添加 override
alias or regex /Incoming/ Transform: negative-Y (改变为负数在y轴)
Alert(报警)
时间范围
右上角设置选模板,可以设置变量
$group
$host $group.
$netif .$host.Network interfaces.
说明,选ss的进流量 和 出流量进行对比,ss的进流量是 调度器访问所以比较平均,但是出流是就是有变化的,说明出流量是给客户的
Singlestat 单值 状态面板
选择 启用Gauge 可以达到 显示汽车仪表盘的功能
添加zabbix 触发器
图表中选择 Zabbix Triggers
即可
并且可以对一个触发器 显示通告,询问为什么?
显示当前时间
clock
ajax
使用ajax 动态的从远程 获取文件内容
可以把连接地址共享,嵌入到一个页面
Panel(面板)
There are currently four Panel types: Graph, Singlestat, Dashlist, Table,and Text.
Query Editor(查询编辑器)
Dashboard(面板)
面板可以用 模板、描述、共享、快照 等
支持正则
比如:
/NJ-HX-F4-IPTV-Server-EPG0[1-3]/
做一到3张图
Group /.*/
Item /CPU (system|user) time/
Functions
groupBy(10s, avg)
支持聚合 各自10秒钟的平均值
setAlias(xxx/s)
如果一个区间图点过多,可以减少
Max data points
Histogram 柱状图
把自己做的图 分享出去
Publish to snapshot.raintank.io
sudo dnf install mongodb-server.x86_64
启动:
sudo systemctl start mongod
$mongo
默认端口 18087
db
test
db.COLLECTION_NAME.insert(document)
删
db.col.remove({‘title’:’MongoDB 教程’})
WriteResult({ “nRemoved” : 2 }) # 删除了两条数据
db.col.find()
…… # 没有数据
改
修改多行,要指定 multi=True,否则只是修改匹配到的第一行
update() 方法
update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
{
upsert:
multi:
writeConcern:
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
db.col.update({‘title’:’MongoDB 教程’},{$set:{‘title’:’MongoDB’}})
save() 方法
db.collection.save(
{
writeConcern:
}
)
只更新第一条记录:
db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );
全部更新:
db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );
只添加第一条:
db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );
全部添加加进去:
db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );
全部更新:
db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );
只更新第一条记录:
db.col.update( { “count” : { $gt : 10 } } , { $inc : { “count” : 1} },false,false );
show collections
查询库中有哪些集合db.runoob.find()
{ “_id” : ObjectId(“5871cc462bea47350d13bb2e”), “x” : 10 }
db.col.find().pretty()
舒服的显示
插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
创建数据库
use runoob
switched to db runoob
db.runoob.insert({“name”:”monkey”})
WriteResult({ “nInserted” : 1 })
show dbs
local 0.078GB
runoob 0.078GB
test 0.078GB
删除数据库
use runoob
switched to db runoob
db.dropDatabase()
删除集合
db.collection.drop()
创建索引
db.col.ensureIndex({“title”:1})
ObjectId("52ffc4a5d85242602e000000"),
ObjectId("52ffc4a5d85242602e000001")
]var result = db.users.findOne({“name”:”Tom Benzamin”},{“address_ids”:1})
var addresses = db.address.find({“_id”:{“$in”:result[“address_ids”]}})
httpinterface = true
rest = true
在默认端口上 加1000 是web端口
SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
数据库服务和客户端
Mysqld/Oracle mongod
mysql/sqlplus mongo
设置去掉加密
gsettings set org.gnome.Vino require-encryption false
启用远程桌面
gnome-control-center sharingx11vnc