CentOS7 上安装 Munin
关于MuninMunin是一个系统像MRTG和cacti一样监控磁盘、内存、CPU和网络等资源。配置包括在被监控的服务器上安装“munin-node”代理并在收集数据的服务器上安装“munin-server”数据收集服务器。* “munin-node”和“munin-server”可以共存所以你当然可以在单一服务器上监控自己。《Munin》的另一个优点是设置非常简单。Munin界面安装前在安装“Munin”之前让我简单介绍一下这次的配置。实验环境结构这次的配置涉及在“监控服务器”192.168.1.100上安装“munin-server”和“munin-node”同时监控“被监控服务器”192.168.1.150。对于“被监控服务器”只安装了“munin-node”。* “munin-server”与“munin-node”之间的通信使用端口4949因此如果防火墙处于激活状态你需要释放该端口。监控服务器端工作我们即将安装“Munin”但“监控服务器”和“被监控服务器”的任务有所不同请谨慎操作以避免混淆。接下来工作将在监控服务器端完成。前提条件要运行“munin-server”作为监控服务器必须安装一个网页服务器。这次我们将使用“apache”作为网页服务器进行安装流程但如果“apache”尚未安装请用“yum”安装并准备一个可以访问网页服务器的环境。Apache 安装# yum install httpdMunin安装由于 CentOS 基础仓库不包含“Munin”我们将使用“EPEL”仓库并安装为“yum”。*本页总结了如何添加到“epel”仓库的说明。# yum --enablerepo epel install munin现在监控服务器上安装了“munin-server”和“munin-node”。munin-server 配置首先我们将配置“munin-server”从“munin-node”收集数据。“munin-server” 的配置文件是“/etc/munin/munin.conf”所以我们会编辑它。服务器监控设置“munin-server”有各种设置但首先要用“Munin”监控你需要添加额外的监控服务器。在初始设置中你将设置为监控自己localhost所以我们添加“被监控服务器”设置。* 如果你只在监控服务器上监控自己则无需特殊设置更改。初始设定[localhost] address 127.0.0.1 use_node_name yes监控服务器的附加模板设置包括一个监控名称显示是哪个“被监控服务器”以及“被监控服务器”的IP地址。[服务器完整域名或任意] address 监控对象IP use_node_name yes[组名; [Monitored Name] 中的组名可以在多个“被监控服务器”且你想将它们分组时设置所以如果不需要分组也可以省略。如果省略组名请只写监控名称。监控服务器的附加设置这次我们将“被监控服务器”的主机名设置为“wp.server-memo.net”IP地址设置为“192.168.1.150”。以防万一记得在继续前备份你的编辑内容。# cp -p /etc/munin/munin.conf /etc/munin/munin.conf_yyyymmdd # vi /etc/munin/munin.conf附加内容[wp.server-memo.net] address 192.168.1.150 use_node_name yes数据存储目录设置这次我们不会更改“Munin”所使用的各种数据的存储目录但您也可以更改以下数据存储位置。dbdir用于存储收集数据的目录。默认设置是 /var/lib/munin。htmldir一个存储由 munin 生成的 HTML 数据的目录。默认设置是 /var/www/html/muninlogdir用于存储日志文件的目录最初设置为 /var/log/muninrundir存储 Munin 运行时状态pid的目录。默认设置为 /var/run/munin。tmpdir一个存储 Munin 用于生成网页的模板文件的目录。默认设置是 /etc/munin/templates。staticdir一个目录存储 Munin 用于生成网页的固定文件标志图片、favicon、CSS 等。默认设置为 /etc/munin/static我唯一改的是“htmldir”其他操作都用默认设置。munin-server 周期性执行设置“munin-server”不是常驻服务而是由“cron”定期执行的服务。这个“cron”设置在 yum 安装“munin-server”时会自动添加“/etc/cron.d/munin” 文件。/etc/cron.d/munin 设置详情查看“/etc/cron.d/munin”文件的内容你可以看到munin设置为每5分钟运行一次。如果你想把执行间隔从默认的5分钟设置改成可以通过修改这个文件来更改。如果你不需要更改监控间隔就不需要编辑它。# # cron-jobs for munin # MAILTOroot */5 * * * * munin test -x /usr/bin/munin-cron /usr/bin/munin-cronmunin-node配置接下来作为代理你将获取服务器资源信息并配置“munin-node”。“munin-node”的配置文件是“/etc/munin/munin-node.conf”。背景设定目前有两个项目需要设置。host_name munin节点的宿主名munin服务器地址以允许连接更改munin节点设置首先备份配置文件“/etc/munin/munin-node.conf”然后继续编辑。# cp -p /etc/munin/munin-node.conf /etc/munin/munin-node.conf_yyyymmdd # vi /etc/munin/munin-node.conf更改主机名设置把“localhost.localdomain”部分改成你服务器的主机名。我把监控服务器的主机名设为“local.server-memo.net”所以我会相应地做调整。变更前host_name localhost.localdomain变更之后host_name local.server-memo.net允许更改设置这里你设置“munin-server”允许连接但由于默认设置允许你连接到“127.0.0.1”因此不需要特别编辑。初始设定allow ^127\.0\.0\.1$* IP 地址设置使用正则表达式。运行 munin-node与“munin-server”不同“munin-node”作为服务执行。因此编辑完成后你需要使用“systemctl”命令启动服务。# systemctl start munin-node直到 CentOS 6你可以通过“service”命令启动服务。# service munin-node startMunin-Node 自动启动设置别忘了设置自动启动。# systemctl enable munin-node在CentOS 6之前请使用“chkconfig”命令设置自动启动。# chkconfig munin-node on阿帕奇设定当“munin-server”安装在“yum”上时“apache”配置文件会自动在“/etc/httpd/conf.d/munin.conf”中创建。munin.conf 配置详情虽然省略了评论区但设置如下。directory /var/www/html/munin AuthUserFile /etc/munin/munin-htpasswd AuthName Munin AuthType Basic require valid-user ExpiresActive On ExpiresDefault M310 /directory ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph“/var/www/html/munin”目录作为“Munin”的HTML数据存储目录并在此进行基本认证。在这一步中你没有更改 munin 中的 html 数据存储目录所以不需要特别修改但如果你在 “munin-server.conf” 中更改了“htmldir”就需要编辑它。背景反思要将“/etc/httpd/conf.d/munin.conf”这些附加设置应用到“Apache”上请执行“重新加载”。# systemctl reload httpd在CentOS 6之前你可以用“service”命令来“重新加载”它。# service httpd reload密码设置出于安全考虑服务器信息不应被无关第三方查看因此“/etc/httpd/conf.d/munin.conf”包含了基本的Apache认证设置。因此你通过“htpasswd”命令注册用户和密码。HTPASSWD格式htpasswd -c 密码文件名 用户名* “-c”选项仅在首次使用时需要。 添加用户时请不要使用“-c”选项。用户和密码设置运行“htpasswd”时请在“/etc/httpd/conf.d/munin.conf”中指定“AuthUserFile”中设置的密码文件。这次的用户名是“Munin”但没有具体的用户名请使用你喜欢的用户名创建。# htpasswd -c /etc/munin/munin-htpasswd Munin New password: Re-type new password: Adding password for user Munin这样监控服务器的工作就完成了。服务器端任务在监控下进行请注意从现在起工作将在受监控的服务器端完成。Munin节点安装由于服务器仅被监控“munin-server”无需安装时只需指定“munin-node”。但由于“munin-node”不在CentOS的基础仓库中你将使用“EPEL”仓库进行安装。# yum --enablerepo epel install munin-node至此“munin-node”的安装完成。munin-node配置“munin-node”的配置文件也在监控服务器操作说明中描述但它是“/etc/munin/munin-node.conf”。背景设定设置安装“munin-node”的主机名和“munin-server”的IP地址以允许连接。host_name munin节点的宿主名munin服务器地址以允许连接更改主机名设置把“localhost.localdomain”部分改成你服务器的主机名。这个“被监控服务器”的主机名设置为“wp.server-memo.net”因此我们会相应调整。变更前host_name localhost.localdomain变更之后host_name wp.server-memo.net允许更改设置设置访问列表只允许来自预期的“监控服务器munin-server”的连接。在此环境中“munin-server”安装在“监控服务器”192.168.1.100上因此设置允许从该服务器连接。请使用正则表达式设置IP地址。变更前allow ^127\.0\.0\.1$变更之后allow ^192\.168\.1\.100$运行 munin-node编辑完“munin-node”后使用“systemctl”命令启动“munin-node”。# systemctl start munin-node直到 CentOS 6你可以通过“service”命令启动服务。# service munin-node startMunin-Node 自动启动设置别忘了设置“munin-node”的自动启动功能。# systemctl enable munin-node在CentOS 6之前请使用“chkconfig”命令设置自动启动。# chkconfig munin-node on这样受监控服务器端的工作就此完成。Munin运行确认当“监控服务器”和“被监控服务器”设置都完成后试着在浏览器中连接“http:// 监控服务器 IP/munin/”。会弹出一个基本认证的登录窗口请输入你设置的用户和密码使用“htpasswd”命令登录。登录时屏幕上会显示“监控服务器本地主机”和“被监控服务器wp.server-memo.net”。如果你尝试点击“localhost”中的“磁盘”你会看到与磁盘相关的各种信息被收集并绘制成图表。然而关于该图信息是从“munin-server”到“munin-node”之间以5分钟间隔收集的因此内容显示可能需要一些时间。因此如果图表未出现请稍等一段时间再重新检查。如果图表成功显示工作完成。