安装前记得关闭防火墙
安装
从网址 https://my-netdata.io/kickstart.sh 下载脚本,保存到 /tmp/netdata-kickstart.sh
,然后,执行 /tmp/netdata-kickstart.sh
脚本
1
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
(图1
)
(图2
)
(图3
)
(图4
)
(图5
)
(图6
)
默认端口是 19999
,通过 IP:19999
访问
启动/关闭 netData
1
2
3
4
5
6
7
8
9
10
# 停止
[ root@localhost ~] # systemctl stop netdata
# 启动
[ root@localhost ~] #systemctl start netdata
# 重启
[ root@localhost ~] # systemctl restart netdata
# 开机启动
[ root@localhost ~] # systemctl enable netdata
# 卸载
[ root@localhost ~] # ./netdata-uninstaller.sh --force
配置文件
打开配置文件 netdata.conf
,发现里面是空的,只有几行注释
1
2
3
4
5
6
7
8
9
10
# netdata configuration
#
# You can download the latest version of this file, using:
#
# wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
# or
# curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
#
# You can uncomment and change any of the options below.
# The value shown in the commented settings, is the default value.
通过注释可知,执行 wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
命令获取配置
修改默认端口
1
2
[ web]
default port = xxx
开启 KSM
KSM:内核同页合并
开启 KSM 的主要作用包括减少内存消耗、提高系统性能、延长硬件寿命以及提高虚拟机迁移效率。
减少内存消耗:KSM 通过减少虚拟机之间相同内存页的重复占用,当有多个虚拟机运行在同一台物理服务器上时,这些虚拟机通常会使用相同的操作系统和应用程序,因此它们之间可能存在大量相同的内存页。开启 KSM 后,系统会定期扫描虚拟机的内存,将相同的内存页合并为一个页面,从而减少了内存的占用。
提高系统性能:由于 KSM 可以减少内存消耗,系统可以容纳更多的虚拟机,并提供更多的内存给每个虚拟机使用。这样一来,虚拟机的性能可以得到提升,因为它们可以获得更多的内存资源来运行应用程序。
延长硬件寿命:虚拟机的内存消耗直接影响到物理服务器的硬件资源的使用。通过减少内存消耗,KSM 可以延长物理服务器的寿命。物理服务器上的内存可以更有效地使用,减少了频繁的内存替换和磁盘 IO 操作,从而减少了硬件的磨损和故障率。
提高虚拟机迁移效率:当需要对虚拟机进行迁移时,KSM 可以提高迁移的效率。因为迁移过程中涉及到内存传输,开启KSM可以减少虚拟机之间相同内存页的传输,加快迁移过程。
开启 ksm 需要两个命令
1
2
3
4
5
# /sys/kernel/mm/ksm/run 是一个可写的文件,用于控制KSM是否激活,向该文件写入 1 表示启用 KSM,而写入 0 则表示禁用 KSM
echo 1 > /sys/kernel/mm/ksm/run
# 设置 KSM 扫描和合并页面时的休眠时间(以毫秒为单位)。/sys/kernel/mm/ksm/sleep_millisecs 文件允许你调整 KSM 在两次扫描尝试合并相同页面之间的等待时间
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs
我们通过 systemd 服务来执行这两个命令,以确保在重启服务器后仍有效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 创建 ksm-settings.service 服务文件
sudo vim /etc/systemd/system/ksm-settings.service
# 在 ksm-settings.service 文件中添加以下内容
[ Unit]
Description = Set KSM parameters
[ Service]
Type = oneshot
ExecStart = /bin/bash -c 'echo 1 > /sys/kernel/mm/ksm/run; echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs'
[ Install]
WantedBy = multi-user.target
# 重新加载 systemd 的守护进程(daemon)配置
sudo systemctl daemon-reload
# 设置开机启动
sudo systemctl enable ksm-settings.service
# 重启服务器,并检查这些设置是否按预期被设置
cat /sys/kernel/mm/ksm/run
cat /sys/kernel/mm/ksm/sleep_millisecs
在 netdata
右侧的列表中,如果 Memory -> ksm
能找到,代表 ksm
已开启,如果找不到 ksm
,代表没有开启
(图7
)
汉化
繁体:https://github.com/jasoncheng7115/netdata-cpatch
简体:https://github.com/YuanzhuL/netdata-cpatch
(图8
)
将这 4 个文件复制到 /usr/share/netdata/web/
这个路径下覆盖
重新打开 netdata
刷新网页
(图9
)
进入 /usr/share/netdata/web/lib
目录,查看 netdata
使用的 jquery
版本,发现 netdat
a 使用的是 jquery-3.6.0.min.js
修改汉化文件 dashboard.js
,把 jquery
的版本改成和 netdata
一样的版本 (在 552
行位置)
(图10
)
(图11
)