当前位置: 首页 > 科技观察

Linux性能实时监控工具NetData搭建

时间:2023-03-17 22:26:45 科技观察

netdata的主要功能可以从Github上看到,主要有几个要点:交互式bootstrapdashboards,很酷所有的请求都在每个metreic0.5ms内响应,即使是一个badcomputer机器效率很高,每秒采集上千个指标,但只占单个CPU核的1%,内存小MB,完全没有磁盘IO提供复杂多样的告警,支持动态阈值、告警模板、多种通知可扩展方法等,使用内置插件API(如bash、python、perl、node.js、java、go、ruby等)收集任何可测量的data零配置:安装后netdata会自动监控所有零依赖:netdata有自己的web服务器,提供静态web文件和webAPI零维护:运行即可!支持多个时序后端服务,如graphite、opentsdb、prometheus、json文档DBsNetData工作界面系统环境:Centos7上下载安装netData#下载项目代码?gitclonehttps://github.com/firehol/netdata.git#安装突变所需的包?yum-yinstallzlib-devellibuuid-devellibmnl-develgccmakegitautoconfautogenautomakepkgconfig#运行内置安装启动脚本?cd./netdata?./netdata-installer.sh安装启动脚本时会提示netData安装的详细目录,回车执行。安装启动脚本启动并配置好安装后,脚本会输出一条信息,包括:KSM、端口、启动命令以启用KSM以节省存储空间。如果显示如下信息,说明你的系统有KSM,但没有启用。您可以按照说明执行两个echo命令,节省40-60%的存储空间。---检查KSM(kernelmemorydeduper)---Memoryde-duplicationinstructionsYouhavekernelmemoryde-duper(calledKernelSame-pageMerging,orKSM)available,butitisnotcurrentlyenabled.Toenableitrun:echo1>/sys/kernel/mm/ksm/runecho1000>/sys/kernel/mm/ksm/sleep_millisecs如果开启,会节省40-60%的netdata内存。web端口配置默认web访问端口是19999。netdatabydefaultlistensonallIPonport19999,所以可以通过:http://this.machine.ip:19999/访问,如果修改端口,需要在配置文件/etc/netdata/netdata.conf中编辑#defaultport=19999。去掉注释符号#,尝试把端口改成默认的19999!!!修改端口后重启生效。如果有防火墙,需要打开端口(CentOS7使用firewalld)。修改web口启动/关闭netData#stop?systemctlstopnetdata#start?systemctlstartnetdata#restart?systemctlrestartnetdata#startup?systemctlenablenetdata#uninstall?./netdata-uninstaller.sh--force至此NetData安装完成,可以使用http://host_ip:port即可免账号密码访问。下面将结合Nginx来设置账号密码。使用Nginx配置域名访问,设置账号密码授权由于netdata没有账号密码系统,为了保护服务器隐私,我们需要使用nginx反向代理配置域名访问,并使用账号密码授权。提前准备:如果服务器没有安装Nginx,安装:yuminstallnginxnetdata域名,如:netdata.example.com生成Nginx密码文件#自定义密码文件的存放位置,路径需要记录和放置在Nginx配置中。?printf"netdata:$(opensslpasswd-apr1)">/usr/local/nginx/conf/htpasswd配置nginx.conf在...nginx/conf.d新建一个netdata.conf文件,写入如下内容,修改它适当地端口号,域名,auth_basic_user_file。upstreambackend{#thenetdataserver,请修改具体端口号server127.0.0.1:19999;keepalive64;}server{#nginxlistenstothislisten80;#thevirtualhostnameofthis,请求更改具体域名server_namenetdata.example.com;#authpasswordauth_basic"netdataLogin";#上一步生成的密码文件路径auth_basic_user_file/usr/local/nginx/conf/htpasswd;location/{proxy_set_headerX-Forwarded-Host$host;proxy_set_headerX-Forwarded-Server$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_passhttp://后端;proxy_http_version1。1;proxy_pass_request_headerson;proxy_set_headerConnection"keep-alive";proxy_storeoff;}}重启nginx#自定义密码文件存放位置,路径需要记录下来放在Nginx配置中。?systemctlreloadnginx重启Nginx后,可以直接通过域名netdata.example.com访问,需要输入账号和密码。但是仍然可以通过http://IP:端口访问,然后IP访问被禁止。NetData禁用外部IP请求打开NetData配置文件:/etc/netdata/netdata.conf,修改web项的bindto如下:[web]bindto=127.0.0.1::1重启NetData:systemctlrestartnetdata