监控与维护:Ganglia指标收集及应用日志管理
立即解锁
发布时间: 2025-08-20 02:35:32 阅读量: 1 订阅数: 3 

### 监控与维护:Ganglia 指标收集及应用日志管理
#### 1. 利用 Ganglia 收集指标
Ganglia 是一款强大的指标收集工具,其架构采用服务器 - 代理模式。每台需要收集指标的机器上运行 gmond,各 gmond 通过 UDP 与 Ganglia 服务器上的 gmetad 通信,服务器通常还运行 Web 服务器以提供 HTML 界面,且可通过插件收集指标。
##### 1.1 安装现有插件
以下是一个 Puppet 配置示例,用于创建文件和 cron 任务:
```puppet
cron {
"ganglia_mysql_stats":
user => vagrant,
minute => "*",
command => "/etc/ganglia/gmetric/ganglia_mysql_stats.pl",
require => File["/etc/ganglia/gmetric/ganglia_mysql_stats.pl"]
}
```
运行 Puppet 后,新指标会在 Ganglia 界面显示,例如 Com_select、Bytes_sent 等。同时,建议将插件的改进反馈给作者,以帮助其他用户。
##### 1.2 自定义 gmetric 插件收集指标
为收集 MassiveApp 的特定指标,需编写自定义插件。以账户创建率为例,步骤如下:
1. **查询 MySQL 获取数据**:
```bash
$ mysql -uroot -proot massiveapp_production
mysql> select count(id) from accounts where created_at > (now() - interval 1 hour);
```
2. **编写 Ruby 脚本**:
```ruby
#!/usr/bin/env ruby
def recently_created_record_count
cmd = 'mysql -uroot -proot --silent '
cmd += '--skip-column-names massiveapp_production --execute '
cmd += '"select count(id) from accounts where '
cmd += 'created_at > (now() - interval 1 hour)"'
`#{cmd}`.strip
end
def publish(count)
puts "Publishing accounts = #{count}" if ARGV.include?("-v")
system("gmetric --name 'accounts' --value #{count} --type uint16")
end
publish(recently_created_record_count)
```
3. **添加 Puppet 资源**:
```puppet
class ganglia::client {
# 其他资源
file {
"/etc/ganglia/gmetric/gmetric_accounts.rb":
source => "puppet:///modules/ganglia/gmetric/gmetric_accounts.rb",
owner => root,
group => root,
mode => 755,
require => File["/etc/ganglia/gmetric"]
}
cron {
"gmetric_accounts":
user => vagrant,
minute => "*",
command => "/etc/ganglia/gmetric/gmetric_accounts.rb",
require => File["/etc/ganglia/gmetric/gmetric_accounts.rb"]
}
}
```
运行 Puppet 后,账户指标将在 Web 界面显示。
##### 1.3 使用 Ruby 生成指标
为提高性能,可使用 Ruby 库 gmetric。步骤如下:
1. **安装 gmetric 库**:
```bash
ap
```
0
0
复制全文
相关推荐










