求推荐一款ubuntu服务器监控工具,最好可以监控各种时间段内,比如年、月、日、时内的各种系统性能,比如CPU、内存、网络连接等,最好能有图标界面。
大概就是希望后台运行。然后绑定指定IP和端口,可以基于用户密码登录去查看后台数据面板。
清新baby
试试Perl语言写的Monitorix吧,算一款比较轻量级的,据说是自由软件基金会发布的,不过这个基金会发布的是否具有安全保障,我不太清楚,可以用apt install来安装,基本满足你说的那些需求,应该还好吧。
下面简单介绍一下如何安装使用Monitorix,以ubuntu为例。顺便会说一下坑在哪里。
1、安装Monitorix
首先要添加EPEL到系统源列表(其实这一步,在目前的Ubuntu系统中,基本上不需要运行与添加,因为本身就有的,如果apt install monitorix失败,就运行下面这句吧)
sudo apt install epel-releasesh
上面大概率是多余的,直接apt install monitorix吧,如下:
sudo apt install monitorix
2、查看monitorix命令
安装好后,monitorix就在自己运行了,如果想查看monitorix当前运行状态,输入命令:
sudo service monitorix status
会看到类似如下输出,代表正在运行中:
● monitorix.service - Monitorix Loaded: loaded (/usr/lib/systemd/system/monitorix.service; enabled; preset> Active: active (running) since Thu 2024-11-21 15:28:22 CST; 6min ago Docs: man:monitorix(8) Process: 1053960 ExecStart=/usr/bin/monitorix -c /etc/monitorix/monitorix.c> Main PID: 1053961 (/usr/bin/monito) Tasks: 2 (limit: 4657) Memory: 27.2M (peak: 43.2M) CPU: 1.419s CGroup: /system.slice/monitorix.service ├─1053961 "/usr/bin/monitorix -c /etc/monitorix/monitorix.conf -p > └─1054025 "monitorix-httpd listening on 8080"we
为了查看monitorix更多命令,可以运行:
sudo service monitorix help
会输出如下:
Usage: /etc/init.d/monitorix {start|stop|restart|try-restart|force-reload|status}
可以看出,与一般的服务不一样的,monitorix的重新加载配置不是“reload”,而是“force-reload”,force这个前缀不可以省略。
3、Web端查看monitorix面板
默认http方式查看数据面板的端口是8080端口,所以要访问“http://localhost:8080/monitorix”,你也可以把你localhost换成服务器具体的外网IP地址或者对应该IP地址的域名。不过“/”路径是不显示的,一定要加上“/monitorix”路径,即“http://<服务器的IP>:8080/monitorix”。
8080端口是默认的,可以通过修改配置文件进行自定义。
4、monitorix的配置文件
monitorix的配置文件在如下路径:
/etc/monitorix/monitorix.conf
但是有个大坑的地方就是,大家会把monitorix所有的配置都以为全在monitorix.conf这个文件中,其实并不是这样的,还有其他影响因素,就是大家可能会忽略monitorix.conf旁边的conf.d文件夹下还有配置文件,conf.d的配置文件会进一步覆盖monitorix.conf,所以两个文件都要着手去修改。
建议修改几处:
① 运行者的“用户与用户组”的修改,建议贴近真实,不要使用nobody,使用你真实的用户和用户组,比如我的用户和用户组都是“ubuntu”,那么就去修改,修改monitorx.conf,如下:
<httpd_builtin> enabled = y host = port = 8080 user = nobody group = nobody log_file = /var/log/monitorix-httpd hosts_deny = hosts_allow = autocheck_responsiveness = y <auth> enabled = n hosts_dey = all msg = Monitorix: Restricted access htpasswd = /var/lib/monitorix/htpasswd </auth> </httpd_builtin>
本来上面的user和group都是nobody,可以考虑全改成你当前真实运行的用户名和用户组名,我的都是叫ubuntu,所以就改成ubuntu了。改完就是:
user = ubuntu group = ubuntu
但是,你会发现改完后依然无法生效,因为光改这一处不够,conf.d文件夹下还有.conf文件,打开后也还有关于user和group的设置,你就把设置全改成你自己的即可。我当前系统的conf.d文件夹下的配置文件叫“00-debian.conf”,使用vim命令编辑:
sudo vim /etc/monitorix/conf.d/00-debian.conf
其内容如下:
# This is the Debian/Ubuntu configuration file to be added in the directory # /etc/monitorix/conf.d. It will override some default options without having # to change any line of the main configuration file. mail_log = /var/log/mail.log <httpd_builtin> user = ubuntu group = ubuntu </httpd_builtin> ……
上面我把user和group改成自己的用户名和用户组名了,即ubuntu用户。这里的修改很容易忘记,会导致之后添加别的设置的时候,权限不够而无法读取,所以,一定要修改还用户名和用户组。
② 把端口改成自定义端口
在 /etc/monitorix/monitorix.conf 配置文件中,可以找到port进行修改;
默认是8080端口,比如你要改成8079端口,那就直接改。
记住,不管改什么,如果希望生效,一定要重新加载,即运行命令:
sudo service monitorix force-reload
5、monitorix的监控的web端添加用户名和密码
配置文件“/etc/monitorix/monitorix.conf”中的<auth>标签内,就是用来配置登录模块的。
首先做一些准备工作,安装一下htpasswd命令,来生成用户密码文件,这就要如下来安装工具包:
sudo apt-get install apache2-utils
轻松安装完毕,如果是centos等Linux,就“sudo yum install httpd-tools”即可。
使用 htpasswd 命令来创建 用户名和密码文件:
sudo htpasswd -c /var/lib/monitorix/htpasswd your_username
your_username换成你自定义的后台网页登录的用户名即可,在提示下,会输入想要设置的自定义密码;-c是新建的意思。
如果要修改该密码文件,就把-c去除,修改一下即可:
sudo htpasswd /var/lib/monitorix/htpasswd your_username
也可以先删除,再重建,删除是-d的意思,-c是新建的意思,组合起来,也可以重置密码。
sudo htpasswd -d -c /var/lib/monitorix/htpasswd your_username
但是,这里有一个大坑:那就是输出入的自定义密码不能太短,太短会有问题。尽量不小于8位字符的字符串!!!
如何把密码文件在配置中生效,打开/etc/monitorix/monitorix.conf进行编辑:
sudo vim /etc/monitorix/monitorix.conf
把<auth>标签内的enabled设置为“y”就可以了:
<httpd_builtin> enabled = y host = port = 8079 user = ubuntu group = ubuntu log_file = /var/log/monitorix-httpd hosts_deny = hosts_allow = autocheck_responsiveness = y <auth> enabled = y msg = Monitorix: Restricted access htpasswd = /var/lib/monitorix/htpasswd </auth> </httpd_builtin>
这样就代表开启验证了。
htpasswd = /var/lib/monitorix/htpasswd
代表读取“/var/lib/monitorix/htpasswd”这个密码文件,这个密码文件,就是htpasswd命令生成的。这个密码文件可以存不止一个用户名密码。
另外,为了进一步的安全,<auth>标签内还可以添加hosts_allow或hosts_deny属性。
hosts_allow 就是允许谁不经过验证直接访问,hosts_deny就是禁止哪个地址来的访客进行访问。
以hosts_allow为例,
如果设置成:
<auth> enabled = y hosts_allow all msg = Monitorix: Restricted access htpasswd = /var/lib/monitorix/htpasswd </auth>
那么所有的访客,就直接可以访问了。
属性值还可以是具体IP:
<auth> enabled = y hosts_allow 122.21.12.122 msg = Monitorix: Restricted access htpasswd = /var/lib/monitorix/htpasswd </auth>
hosts_allow 122.21.12.122 的意思就是122.21.12.122的访客直接不需要输入账户和密码,直接就能访问了,所以,通过hosts_allow或hosts_deny就能通过IP来控制访客,从而更加具有安全性。
最后就是别忘了,每次修改完之后,都要 强制重新加载配置数据,即“sudo service monitorix force-reload”命令。