Centos 7 搭建 netdata

安装前记得关闭防火墙

安装

从网址 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
/images/documents/Centos7搭建netdata/1.png
(图1)
/images/documents/Centos7搭建netdata/2.png
(图2)
/images/documents/Centos7搭建netdata/3.png
(图3)
/images/documents/Centos7搭建netdata/4.png
(图4)
/images/documents/Centos7搭建netdata/5.png
(图5)
/images/documents/Centos7搭建netdata/6.png
(图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,代表没有开启

/images/documents/Centos7搭建netdata/7.png
(图7)

汉化

繁体:https://github.com/jasoncheng7115/netdata-cpatch
简体:https://github.com/YuanzhuL/netdata-cpatch

/images/documents/Centos7搭建netdata/8.png
(图8)

将这 4 个文件复制到 /usr/share/netdata/web/ 这个路径下覆盖

重新打开 netdata 刷新网页

/images/documents/Centos7搭建netdata/9.png
(图9)

进入 /usr/share/netdata/web/lib 目录,查看 netdata 使用的 jquery 版本,发现 netdata 使用的是 jquery-3.6.0.min.js

修改汉化文件 dashboard.js,把 jquery 的版本改成和 netdata 一样的版本 (在 552 行位置)

/images/documents/Centos7搭建netdata/10.png
(图10)
/images/documents/Centos7搭建netdata/11.png
(图11)

0%