起始

软件、资料、代码、照片等越来越多,好几台电脑需要共享。
公有网盘哪怕说稳定提供服务,实际上也保不齐那一天突然就要下线了。
所以干脆上个NAS吧。
选硬件,作为家用的NAS,群晖家庭版配置又看不上,企业版又贵了一些。
路由器跑NAS,性能也太差了,定位到X86平台。看了一些DIY方案,并不是很完美,最后
看上了万由的的整体解决方案,算了下价格,自己DIY的也便宜不到哪里去,机箱还是大问题。

硬件方案

万由HomeNASV3
主板:华擎J3710-ITX
机箱:410
内存:4G * 2
系统盘:128G SSD
数据盘: WD 4TB NAS红盘 * 2 + 已有2TB * 1

软件方案

母系统: Windows Server 2016
虚拟机:Hyper-V(群晖在虚拟机中)

上图

万由Home NAS V3

万由Home NAS V3

万由Home NAS V3

万由Home NAS V3

Windows Server 2016

Windows Server 2016

image-002

image-003

问答

母系统用 Windows Server 2016?
和win10一样的内核,功能更全
母系统如果用群晖会有数据安全顾虑
Windows系统自由度非常高

2个盘是否有阵列什么的?
见过有些人直接把物理盘挂在Hyper-V中,暴露给群晖做软Raid1
我不做整列,软整列我是不敢用的,还不如直接跑裸盘
在Win母系统下,硬盘NTFS分区,用NFS服务暴露给群晖用

为什么大家都虚拟化群晖用?
因为群晖有丰富和便捷的功能,可以方便的实现诸多功能,如下载,音乐,影视等
周边配套也非常全,如有手机客户端等

2个盘是如何做数据保护?
盘A,盘B
用软件定时同步 盘A 到 盘B,如按天同步
不开实时同步,可延长盘B的寿命
软件使用
方案1 FastCopy-M command模式 + 系统计划任务
方案2 傲梅轻松备份,既可以备份系统,也可以同步备份文件

设置WOL网络唤醒

需要设置2个地方
①BIOS设置
PCIE Device Power On (PCIE设备开机) 打开
②Windows Server 2016系统中设置
控制面板\所有控制面板项\网络连接
以太网>右键>属性>配置>高级
关机 唤醒 > 选 开启
魔术封包唤醒 > 选 开启
此时可LAN内网唤醒

支持WAN公网唤醒
* 启用DDNS(必须,域名解析动态IP)
* DHCP分配NAS机固定IP或NAS机设置固定IP(必须,固定NAS机内网IP)
* ARP静态绑定IP和MAC(必须,路由器自带功能IP和MAC绑定,启用静态 ARP 绑定,或在路由器自定义开机后运行绑定脚本一般是 arp -s ip mac)
* 端口映射:(任意源IP:协议UDP:端口9)=>(目标NAS的IP:协议UDP:端口9) (必须,UDP端口号可以任意,使用能记住的就ok)
* WOL客户端软件(可选,使用WOL客户端,用DDNS域名+端口9+NAS机MAC唤醒)

Tips:
可以使用wireshark抓wol包,进行检查测试。
WOL客户端使用手机APP更方便,ANDROID APP推荐Fing、PingTools。

参考教程

万由NAS,傻瓜式安装win10+hyper-v虚拟机+洗白黑群晖流程
DSM 5.2升级6.02-8451成功,附升级教程 目前黑6.x系列用的人还不错,建议成熟后再弄
华擎J3710-ITX主板官网
华擎J3710-ITX UEFI BIOS 设置

Elastic Stack5.0 5.x elk5.x部署疑问解答

如何给Kibana增加帐号认证?

Kibana5.0以下一般使用nignx反向代理,在nginx配置中增加HTTP Auth Basic
Kibana5.0起,官方提供X-Pack插件方案提供安全认证功能
在Kibana和Elasticsearch中安装X-Pack插件
官方文档
X-Pack for the Elastic Stack » Installing X-Pack
https://www.elastic.co/guide/en/x-pack/current/installing-xpack.html
默认的帐号密码
帐号:elastic
密码:changeme
可在Kibana中 Management > Users 可视化管理
修改密码后,在/etc/kibana/kibana.yml配置文件中也要同步修改
elasticsearch.username: “elastic”
elasticsearch.password: “changeme”

在Kibana5.0 和Elasticsearch5.0上安装了X-Pack插件后启用了安全帐号密码,那么logstash output如何配置?

这个太坑了,文档不太好找,官方文档藏的太深
官方文档
X-Pack for the Elastic Stack » Securing Elasticsearch and Kibana » Tribe, Clients and Integrations » Logstash and Security
https://www.elastic.co/guide/en/x-pack/current/logstash.html
帐号密码存在es中,可以直接在kibana的Management中配置
然后在/etc/logstash/conf.d/logstash.conf 配置文件中

output {
    elasticsearch {
        hosts => ["你的esip"]
        index => "logstash-%{+YYYY.MM.dd}"
        document_type => "你的type"
        template_overwrite => true
        user => 你的帐号
        password => 你的密码
    }
}

最后重启logstash
提示:如果重启了没生效,用kill把logstash强制关闭,再开启。 调试logstash配置的,可以用tail -f /var/log/logstash/xxxx日志,观察日志文件是你解决问题的开始

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡谷配置单/性能测试

总体感觉:性价比并不高,买它不是图性价比,而是喜欢这小东西

集成显卡:玩守望屁股(守望先锋)也是可以的

CPU温度:总体讲温度有点高,空载的时候温度有40-50°,满负荷的时候温度能达到100°,注意做好降温处理

 

我的配置单详情

主机:intel Skull Canyon NUC6i7kyk

内存:Kingston HyperX Impact DDR4 2400MHz 16G   *  2

硬盘:Samsung SSD SM951-NVMe 512GB

显示器:戴尔(DELL) U2417HA 23.8英寸带臂架四面超窄边IPS屏显示器

键盘:  海盗船K70 惩戒者 红光

鼠标:罗技G302

 

某宝购买记录

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡

某国产大师跑分

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡 鲁大师跑分综合

微型电脑intel Skull Canyon NUC6i7kyk 骷髅峡 鲁大师跑分综合

完整的评测包含非常详细的跑分,评测

微型电脑最强音,Intel NUC Skull Canyon NUC6i7KYK 开箱拆解评测

 

介绍

ELK是业界标准的日志采集,存储索引,展示分析系统解决方案
logstash提供了灵活多样的插件支持不同的input/output
主流使用redis/kafka作为日志/消息的中间环节
如果已有kafka的环境了,使用kafka比使用redis更佳
以下是一个最简化的配置做个笔记,elastic官网提供了非常丰富的文档
不要用搜索引擎去搜索,没多少结果的,请直接看官网文档

采用的ELK/kafka版本

elasticsearch-2.x
logstash-2.3
kibana-4.5.1

Kafka 0.9.0.1

应用/网络 环境

Nginx机
10.0.0.1

Kafka群集
10.0.0.11
10.0.0.12
10.0.0.13

ElasticSearch机
10.0.0.21

整体说明

数据流向

日志/消息整体流向
logstash => kafka => logstash => elasticsearch => kibana

安装

elk所有安装都可以使用rpm二进制包的方式,增加elastic官网的仓库repo就可以用yum安装了

elasticsearch看这里
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html

logstash看这里
https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

kibana看这里
https://www.elastic.co/guide/en/kibana/current/setup.html

安装概览

nginx机 10.0.0.1
运行nginx的日志格式化为json
运行logstash输入input从nginx json,输出output到kafka

kafka群集 10.0.0.11 10.0.0.12 10.0.0.13
kafka群集Topic为logstash

elasticsearch机10.0.0.21
运行elasticsearch
运行logstash输入input从kafka,输出output到elasticsearch

Nginx机

nginx日志格式化为json

在nginx的 http{} 中定义一个名为logstash_json格式化,格式化日志为json

log_format logstash_json '{ "@timestamp": "$time_local", '
'"@fields": { '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"request_time": "$request_time", '
'"status": "$status", '
'"request": "$request", '
'"request_method": "$request_method", '
'"http_referrer": "$http_referer", '
'"body_bytes_sent":"$body_bytes_sent", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" } }';

在server{} 中增加记录logstash_json日志,可以用原有的日志输出共存

access_log /data/wwwlogs/iamle.log log_format;
access_log /data/wwwlogs/nginx_json.log logstash_json;

logstash日志采集配置

/etc/logstash/conf.d/nginx.conf

input {
file {
path => "/data/wwwlogs/nginx_json.log"
codec => "json"
}
}
filter {
mutate {
split => [ "upstreamtime", "," ]
}
mutate {
convert => [ "upstreamtime", "float" ]
}
}
output {
kafka {
bootstrap_servers => "10.0.0.11:9092"
topic_id => "logstash"
compression_type => "gzip"
}
}

Kafka群集

新建一个Topic

新建一个Topic叫做
logstash

Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处)

ElasticSearch机

logstash把数据从kafka存到elasticsearch的配置

其中选取kafka群集任意一个有zk的ip做连接使用
topic_id就是kafka中设置的topic logstash
/etc/logstash/conf.d/logstashes.conf

input {
kafka {
zk_connect => "10.0.0.13:2181"
topic_id => "logstash"
}
}
filter {
mutate {
split => [ "upstreamtime", "," ]
}
mutate {
convert => [ "upstreamtime", "float" ]
}
}
output {
elasticsearch {
hosts => ["10.0.0.21"]
index => "logstash-iamle-%{+YYYY.MM.dd}"
document_type => "iamle"
workers => 5
template_overwrite => true
}
}

补充说明

以上是主要的配置,就差kibana的查看/展示了

kibana

我这里kibana和elasticsearch是同一台机器
官方yum方式安装的kibana配置文件在
/opt/kibana/config/kibana.yml
需要改2个地方,监听端口和es的连接信息

server.host: "10.0.0.21"
elasticsearch.url: "http://10.0.0.21:9200"

启动kibana /etc/init.d/kibana start后可以通过 http://10.0.0.21:5601 访问

kibana的使用的多看官网文档,网上中文的资料不多,关于elk有一本饶琛琳写的
ELKstack 中文指南
https://www.gitbook.com/book/chenryn/kibana-guide-cn/details
kibana Discover 过滤静态文件
NOT \/static AND NOT \/upload\/

elasticsearch

官方yum方式安装的elasticsearch配置文件在
/etc/elasticsearch/elasticsearch.yml
需要配置下监听ip,默认是127.0.0.1

network.host: 10.0.0.21
path.data: /data

elasticsearch安装了head插件后可以看到es状态
http://10.0.0.21:9200/_plugin/head/

安全问题

特别要注意elk所有软件的端口监听,切勿暴露监听到公网上去,另外即便是内网你也得注意配置内网的访问限制

微服务(MicroServices)资料整理

微服务单篇文章

解析微服务架构

 

微服务框架

Golang

  • https://github.com/go-kit/kit
  • https://github.com/micro/micro
  • https://github.com/NYTimes/gizmo
  • 直接使用gRPC

微服务实战

英文

中文

RPC REST相关

安全

实践

其他

乐视电视超3 x40 蓝牙连接 小米电视音响2代

步骤1  乐视电视开机, 小米电视音响2开机(ps:低音炮和Soundbar音响之间无线自动连接)  

步骤2 乐视电视遥控器>设置>配件>蓝牙设置>蓝牙开启>找到 小米家庭音响 配对

步骤3 乐视电视遥控器>设置>声音>扬声器>选择 外接音响 (ps:电视的声音已经输出到小米音响上了, 乐遥控器上的声音控制无效 按键会显示 请在外接音响上调节音量)

小米电视音响2代 音量调节方法

① 直接在Soundbar上物理按键调节音量

② 手机APP上调节 音量和低音炮  安卓下载网址 http://app.mi.com/detail/64097?ref=search 

在小米电视音响和乐视电视已经连接的情况下,手机上的 小米家庭音响 app 可以控制调整小米电视音响的音量和低音炮

小米电视音响

小米电视音响