手头有个小机器,偶尔拿出来玩玩,又重新折腾了一遍,深感每次重复操作,因为想法比较多,各种东西装一下,重新要到处翻帖子,今天直接把过程整理一遍,以后再来不用那么手忙脚乱。

前提:基于OPI官方 Orangepizero2_2.2.0_ubuntu_focal_desktop_linux4.9.170 镜像,理论上只要是Ubuntu应该都问题不大,其他的肯定是不行的,Axx Uxx等基于相同Linux基础的估计要确认不保证;烧录TF卡,略,实在没啥可说。

为了避免操作麻烦,以下全为 root 用户直接登录 省了 sudo 方法

1,安装 VNC,方便操作,图形化嘛

// 安装 tightvncserver
apt install tightvncserver
// 编辑开机启动脚本
vi /etc/init.d/tightvncserver
#!/bin/sh
export USER='root'

eval cd ~$USER

case "$1" in
  start)
    # 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/tightvncserver -depth 16 -geometry 800x600 :1'
    echo "Starting TightVNC server for $USER "
    ;;
  stop)
    # 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/tightvncserver -kill :1'
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0
// 赋权 开机启动
chmod 755 /etc/init.d/tightvncserver
update-rc.d tightvncserver defaults

2,安装Docker

// 安装Docker
curl -sSL https://get.docker.com | sh
// 启动Docker
service docker start
// 状态确认
service docker status
// 不放心可以装个 Hello-world
 docker run hello-world

接下来,安装 Portainer 方便图形化管理Docker 虽说命令也很方便

docker run -d -p 9000:9000 --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" --name prtainer portainer/portainer
// 要加: -v "/var/run/docker.sock:/var/run/docker.sock" 

正常执行完,应该浏览器就能打开网站了 : http://IP:9000/;

备注1:这里因为刚装,有可能不能解析主机,也有可能…GFW

// 修改 /etc/resolv.conf 添加 DNS解析(重启失效):
vi /etc/resolv.conf
nameserver 192.168.0.1
nameserver 4.2.2.2
// 如果没问题,编辑 /etc/systemd/resolved.conf 文件添加DNS情报 (重启有效)
vi /etc/systemd/resolved.conf
DNS=4.2.2.2 8.8.4.4

备注2:因为portainer的templates 镜像在 raw.githubusercontent.com 上, 由于众所周知的原因,天朝被墙,所以被迫网上找下真实IP,修改本地 HOST (/etc/hosts)文件;(或者找个梯子)

185.199.109.133 raw.githubusercontent.com
//之所以备注,这个方法现在被我用来屏蔽电视机广告,

备注3:在OPI Zero2上可以跑的模板 filebrowser/filebrowser:latesthttpd:latest

通过命令行安装的其他镜像(这里不得不感谢一些玩路由器的牛人 ?),比如MySQL,Tomcat,

docker run -it \
  -e 'MYSQL_ROOT_PASSWORD=root' \
  -e 'MYSQL_DATABASE=identity' \
  -e 'MYSQL_USER=identity' \
  -e 'MYSQL_PASSWORD=root' \
  -p '3306:3306' \
  --name mysql \
  beercan1989/arm-mysql:latest
docker run -it --restart=always -p 8888:8080 --name tomcat9 arm64v8/tomcat:9.0

3,其他有用的工具

apt install htop    // 用于CPU内存等性能监控
apt install bmon    // 用于网络等性能监控
bmon -p eht0 ; htop

使用 Prometheus 监控 机器情况

参考站点: https://github.com/prometheus/node_exporter/releases/ ; https://pimylifeup.com/raspberry-pi-prometheus/ ;https://rizkyrajitha.xyz/post/setup-prometheus-and-grafana-on-orange-pi/ ;

安装方式

wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-arm64.tar.gz
tar -xzvf prometheus-2.36.2.linux-arm64.tar.gz
cd prometheus-2.36.2.linux-arm64/
cp prometheus /usr/local/bin/                                                     

编辑启动Service

sudo vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus monitoring
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/prometheus \
                    --config.file /root/prometheus-2.36.2.linux-arm64/prometheus.yml \
                    --storage.tsdb.path=/root/prometheus-2.36.2.linux-arm64/data 

Restart=always

[Install]
WantedBy=multi-user.target

重启:

sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl restart prometheus
sudo systemctl status prometheus

配置 node_exporter ,方式类似

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-arm64.tar.gz   //下载

tar -xzvf node_exporter-1.2.0.linux-armv7.tar.gz node_exporter-1.2.0.linux-armv7/
cd node_exporter-1.2.0.linux-armv7/  //解压
sudo cp node_exporter  /usr/local/bin/    //复制到bin

sudo vi /etc/systemd/system/nodeexporter.service  //修改配置
------------------------------------------------
[Unit]
Description=node exporter for node monitoring
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target
-------------------------------------------------

//重启
sudo systemctl daemon-reload
sudo systemctl enable nodeexporter
sudo systemctl restart nodeexporter
sudo systemctl status nodeexporter

有用的查询表达式:

CPU
avg without(cpu) (rate(node_cpu_seconds_total{instance=”localhost:9100″, mode!=”idle”}[1m]))
avg without(cpu) (rate(process_cpu_seconds_total{mode!=”idle”}[1m]))

内存
node_memory_MemTotal_bytes – node_memory_MemAvailable_bytes
硬盘IO
rate(node_disk_io_time_seconds_total[1m])
网络
rate(node_network_receive_bytes_total{device=”eth0″}[5m])

参考站点:

https://prometheus.io/docs/prometheus/latest/querying/examples/
https://qiita.com/Esfahan/items/01833c1592910fb11858

另一个简单点一步到位的监测工具( 站点: https://www.monitorix.org/doc-debian.html)

apt-get update
apt-get install monitorix
service monitorix restart
//如果需要修改端口啥的 修改下配置文件 /etc/monitorix/monitorix.conf
最后修改日期: 2022年7月16日

作者