使用 Munin
什么是 Munin?
Munin 是一个服务器监控程序,它会生成关于服务器运行状况的统计数据,例如内存、硬盘和服务。它使用 RRDTool 工具生成系统参数性能分析图表。它使用 Web 接口显示生成的图表,允许分布式工作,显示多个服务器的信息。为此,需要在服务器上安装 Munin 的服务器端,并在其他机器上安装客户端,客户端会将收集到的数据发送到服务器以供显示。它是用 Perl 编写的,允许使用插件,使其变得非常灵活。
安装 Munin
Munin 包含在不同发行版的官方仓库中
root@lolo:~# apt-get install munin # si vamos a emplear el equipo como servidor O root@lolo:~# yum install munin
root@lolo:~# apt-get install munin-node # si vamos a leer datos de él O root@lolo:~# yum install munin-node
Munin 可以用于监控一个或多个机器,因此需要在收集数据的机器上安装 munin-node,并在充当服务器并提供 Web 服务的机器上安装 munin。
配置文件
Munin cuenta con varios ficheros y directorios que hay que conocer.
- /etc/munin/munin.conf 是全局配置文件,更准确地说,它配置了 Munin 的服务器端。在这个文件中,指定了要使用的目录和不同机器的配置。它必须在服务器上进行配置。
- /etc/munin/munin-node.conf 是节点的配置文件。Munin 将每个要监控的机器视为网络中的一个节点,并通过此文件指定配置。它必须存在于每个机器上。
- /etc/munin/plugins/ 是 Munin 读取要使用插件的目录。这些只是指向插件实际目录 (/var/lib/munin/plugins/) 的简单链接,可以通过创建或删除链接以最简单的方式添加和删除它们。
- /var/www/munin/ 是默认情况下生成包含报告的 HTML 代码的目录。可以在 munin.conf 中更改。它必须属于用户和组 munin。
- /var/lib/munin/ 是存储来自不同节点的所有数据并用于生成图形的目录。
- /var/log/munin/ 是系统日志或日志文件目录。在网络配置中,munin-nodes.log 文件很有用,它详细记录了从节点发送和传输的信息。
- /etc/cron.d/munin 是每五分钟运行并更新机器数据的 cron 文件。
- /etc/cron.d/munin-node 是每五分钟运行并更新已注册节点数据的 cron 文件。
- /etc/init.d/munin-node 是用于重新启动对节点的信息请求的脚本。
配置服务器
编辑 /etc/munin/munin.conf 文件
# Example configuration file for Munin, generated by 'make build' dbdir /var/lib/munin ## directorio para guardar los datos y ficheros a emplear htmldir /var/www/munin ## los informes generados logdir /var/log/munin ## los logs rundir /var/run/munin ## los semáforos tmpldir /etc/munin/templates ## las plantillas html #graph_period minute # [server1.etecsa.cu] address la.ip.de.server1 local_address la.ip.de.server1 use_node_name yes # [localhost.etecsa.cu] address 127.0.0.1 local_address 127.0.0.1 use_node_name yes **si no especifico la dirección local (local_address) que tiene el equipo, munin no genera las gráficas, con lo que se incluye la dirección IP por partida doble.
配置节点
编辑 /etc/munin/munin-node.conf 文件
# # Example config-file for munin-node # log_level 4 log_file /var/log/munin/munin-node.log port 4949 pid_file /var/run/munin/munin-node.pid background 1 setseid 1
host * user root group root setsid yes
ignore_file ~$ ignore_file \.bak$ ignore_file %$ ignore_file \.dpkg-(tmp|new|old|dist)$ ignore_file \.rpm(save|new)$
host_name localhost.etecsa.cu ## nombre con que el servidor identifica a esta máquina allow ^127\.0\.0\.1$ ## dirección IP dejaremos que se conecten...pondremos la dirección IP del servidor munin
配置 Web 接口的访问用户
htpasswd -cm /etc/munin/munin-htpasswd muninadmin
启动 Munin
Munin 每五分钟作为 cron 任务运行。脚本位于 /etc/cron.d/ 中,可以修改它们以每分钟执行读取操作以进行测试。
在所有机器上启动客户端
root@lolo:~# /etc/init.d/munin-node start
访问信息
Introducimos en el navegador la dirección de htmldir, en este caso file:///var/www/munin/ ó https://127.0.0.1/munin (si contamos con un servidor web).
PostgreSQL 插件
使用插件可以提高 Munin 的灵活性。从 1.4 版开始,Munin 包含了监控 PostgreSQL 所需的插件。
插件安装
接下来我们将描述如何安装和配置它。
所有插件都是用 Perl 编写的,并且需要 DBD::Pg Perl 模块。
对于 Debian
root@lolo:~# apt-get install libdbd-pg-perl
对于 Centos
root@lolo:~# yum install perl-DBD-Pg
我们需要在 Postgresql 中激活统计和监控收集参数。
为此,我们编辑 postgresql.conf
logging_collector = on
- - 查询/索引统计收集器 -
track_activities = on track_counts = on update_process_title = on
- - 统计监控 -
log_parser_stats = on log_planner_stats = on log_executor_stats = on log_statement_stats = off
安装 Munin 插件非常简单。您只需将它们复制到 /usr/share/munin/plugins/ 目录中。
对于 Centos
解压缩文件:muninpgplugins-0.2.2.tar.gz
root@lolo:~# tar xvzf muninpgplugins-*.tar.gz root@lolo:~# cd plugins
对于 Debian
root@lolo:~# apt-get install munin-plugins-extra
插件说明
pg__connections 此插件显示空闲、等待和已连接的连接数。
pg__db_size 此插件显示由 pg_database_size('my_db'); 提供的数据库大小。
pg__locks 此插件显示来自 postgresql 的所有可能的锁。
pg__stat_database 此插件显示来自特定视图的数据库的所有数据。
pg__stat_tables 此插件显示 pg_stat_*_tables 中的所有列(除了 *vacuum 和 *analyze)。此信息用于在 munin.conf 中添加图形(如比率)。使用特殊参数 (statscope) 指定我们是否使用 pg_stat_all_tables、pg_stat_user_tables 或 pg_stat_sys_tables(默认值为 user)。
pg__statio_tables 此插件显示 pg_statio_*_tables 中的所有列。此信息用于在 munin.conf 中添加图形(如比率)。使用特殊参数 (statscope) 指定我们是否使用 pg_stat_all_tables、pg_stat_user_tables 或 pg_stat_sys_tables(默认值为 user)。
pg__stat_bgwriter 此插件显示 pg_stat_bgwriter 中的所有列。此信息用于在 munin.conf 中添加图形(如比率)。由于所有数据库在此表中都有一些值,因此无需指定数据库。
激活插件
请注意,如果插件名称例如为 postgres_,那么在 /etc/munin.d/plugins 中创建符号链接时,根据你在后面添加的内容,它将监控不同的东西。最好查看相关插件的代码,以查看它支持哪些参数。
在 /etc/munin/plugins 中创建符号链接。
ln -s '/usr/share/munin/plugins/postgres_autovacuum' '/etc/munin/plugins/postgres_autovacuum' ln -s '/usr/share/munin/plugins/postgres_bgwriter' '/etc/munin/plugins/postgres_bgwriter' ln -s '/usr/share/munin/plugins/postgres_cache_' '/etc/munin/plugins/postgres_cache_ALL' ln -s '/usr/share/munin/plugins/postgres_checkpoints' '/etc/munin/plugins/postgres_checkpoints' ln -s '/usr/share/munin/plugins/postgres_connections_' '/etc/munin/plugins/postgres_connections_ALL' ln -s '/usr/share/munin/plugins/postgres_connections_db' '/etc/munin/plugins/postgres_connections_db' ln -s '/usr/share/munin/plugins/postgres_locks_' '/etc/munin/plugins/postgres_locks_ALL' ln -s '/usr/share/munin/plugins/postgres_querylength_' '/etc/munin/plugins/postgres_querylength_ALL' ln -s '/usr/share/munin/plugins/postgres_size_' '/etc/munin/plugins/postgres_size_ALL' ln -s '/usr/share/munin/plugins/postgres_transactions_' '/etc/munin/plugins/postgres_transactions_ALL' ln -s '/usr/share/munin/plugins/postgres_users' '/etc/munin/plugins/postgres_users' ln -s '/usr/share/munin/plugins/postgres_xlog' '/etc/munin/plugins/postgres_xlog'
可能的配置示例
要添加对插件的调用,请编辑 /etc/munin/plugin-conf.d/munin-node 文件。
要配置的变量是
env.PGHOST = cual servidor de base de datos usar. Defaults para 'localhost'. env.PGDATABASE = cual base de datos usar. Defaults para template1. env.PGUSER = cual cuanta de usuario de Postgresql usar. Defaults para 'postgres'. Puede ser el mismo usuario,que ejecuta los plugins de Munin. env.PGPASSWORD = cual es la clave del usario correspondiente. Default para . Guada relación con el tipo de acceso en el pg_hba.conf.
- 示例 1
[pg_*] user postgres
- 示例 2 - 使用数据库 foobase。
[pg_foobase*] user foouser env.PGDATABASE foobase
- 示例 3 - 使用本地服务器,使用用户“postgres”进行身份验证。
[postgres_*] user postgres
- 示例 4 - 使用服务器,使用用户名和密码进行 TCP 身份验证。
[postgres_*] env.PGHOST localhost env.PGUSER someuser env.PGPASSWORD somepassword
测试插件功能
重新启动 Munin
root@lolo:~# /etc/init.d/munin-node restart
并等待它开始收集信息以阅读日志,以查看一切是否正常,或者直接,
root@lolo:~# /usr/share/munin/plugins/postgres_activate_lock