2

Sensu 入门文档

标签(空格分隔): Sensu 监控


注:该文档是基于 0.15 版本。翻译自官方文档。

简介

Sensu 主要由两部分组成,一部分运行 Sensu 的所有组件,一部分仅仅运行 Sensu 客户端,这两部分分别是 “monitor” 和 “agent”。

Monitor

  • RabbitMQ
  • Redis
  • Sensu server
  • Sensu client
  • Sensu API

Agent

  • Sensu client

安装 Sensu 服务依赖项

生成 SSL 证书

在 monitor 系统,为 Sensu 生成 SSL 证书,使用以下指令。

确定 OpenSSL 是否安装。

which openssl
openssl version

使用以下指令创建一个授权证书,生成的证书有效期是 1825 天,或者是 5 年。

cd /tmp
wget http://sensuapp.org/docs/0.15/tools/ssl_certs.tar
tar -xvf ssl_certs.tar
cd ssl_certs
./ssl_certs.sh generate

具体的详细请看 Generating SSL certificates

安装 RabbitMQ

在 monitor 系统上安装 RabbitMQ。

在 CentOS(RHEL) 上安装 RabbitMQ
  1. 安装 erlang
    CentOS 5

    重要提示 - 安装两个 EPEL-5 和 epel-erlang yum repositories,EPEL-5 yum repository 包含了 Erlang 的 R12B 老版本,该版本能同 RabbitMQ 工作的很好,除了既不能使用 SSL 访问以及没有 web 管理插件之外。因此,我们将从 epel-erlang repository 安装一个新版本的 Erlang ,它为 CentOS 5 提供了 R14B。

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
    

    CentOS 6

    安装 EPEL-6 yum repository,其包含 Erlang R14B。

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    

    安装 erlang。

    yum install erlang
    
  2. 安装 RabbitMQ

    基于官方的安装指南:http://www.rabbitmq.com/install-rpm.html

    rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
    rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.1/rabbitmq-server-3.2.1-1.noarch.rpm
    
启动 RabbitMQ 服务

对于 Ubuntu:

update-rc.d rabbitmq-server defaults
/etc/init.d/rabbitmq-server start

对于 CentOS:

chkconfig rabbitmq-server on
/etc/init.d/rabbitmq-server start
配置 SSL

主要提示 - 由于在 Erlang 和 Erlang-SSL 模块中 flux 的状态,我们一直无法让 RabbitMQ 和 SSL 工作在 Ubuntu platforms < 11.10 和 Debian 6.x。

你必须已经生成了一个 SSL certificate authority 和 certificates。否则,在开始之前,请遵循在 SSL certificates 的指令。

  1. 安装 RabbitMQ certificate authority 和 certificates

    在 RabbitMQ 服务器上创建一个 SSL 目录。

    mkdir -p /etc/rabbitmq/ssl
    

    拷贝以下生成的 SSL 文件到 RabbitMQ 服务器最新创建的 SSL 目录。这些文件被遵循自签名的 SSL certificates 指令创建。

    • sensu_ca/cacert.pem
    • server/cert.pem
    • server/key.pem

    你将会得到一个目录列表:

    $ ls /etc/rabbitmq/ssl
    cacert.pem cert.pem   key.pem
    
  2. 配置 RabbitMQ SSL listener

    编辑或创建 /etc/rabbitmq/rabbitmq.config。配置 RabbitMQ 来监听在 5671 端口上的 SSL 连接,并使用生成的 certificate authority 和 server certificate。

    [
    {rabbit, [
    {ssl_listeners, [5671]},
    {ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
                   {certfile,"/etc/rabbitmq/ssl/cert.pem"},
                   {keyfile,"/etc/rabbitmq/ssl/key.pem"},
                   {verify,verify_peer},
                   {fail_if_no_peer_cert,true}]}
    ]}
    ].
    

    重起 RabbitMQ。

    /etc/init.d/rabbitmq-server restart
    
创建 credentials
  1. 为 Sensu 创建 一个 RabbitMQ vhost

    rabbitmqctl add_vhost /sensu
    
  2. 为 Sensu vhost 创建一个授权的 RabbitMQ 用户

    确保改变 mypass 使得一些事情保密。

    rabbitmqctl add_user sensu mypass
    rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
    
可选项

开启 RabbitMQ web 管理控制台

rabbitmq-plugins enable rabbitmq_management

安装 Redis

一些 Sensu 组件要求访问 Redis 实例,为了存储持久化数据。

在 Debian 和 Ubuntu 上安装 Redis

Debian 6.x

添加 Debian backports 到 APT 源:

echo "deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free" >> /etc/apt/sources.list

从 Debian backports 安装 Redis:

apt-get update
apt-get -t squeeze-backports install redis-server

Ubuntu <= 10.04

你将需要从这些发行版的源下载和安装 Redis 2.0+。

Ubuntu > 10.04

apt-get update
apt-get install redis-server
CentOS (RHEL)上安装 Redis
  1. 安装 EPEL

    CentOS 5

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    

    CentOS 6

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    
    1. 安装 Redis
    yum install redis
    

    设置 Redis 开机自启动,并启动它。

    /sbin/chkconfig redis on
    /etc/init.d/redis start 
    

安装 Sensu

在两个系统上,使用以下指令安装 Sensu。

Sensu 包

Sensu 工程提供了综合包,其包含了所有的 Sensu 组件,并且没有任何依赖。这些包是自包含的,有 Sensu 需要运行的任何东西,除了 RabbitMQ 和 Redis 之外。这确保安装过程最简化,提升了安装的一致性,以及预防了 Sensu 影响其他应用。在 Linux 平台,包安装在 /opt/sensu,sysvinit 脚本在 /etc/init.d

包格式:

  • deb
  • rpm
  • msi

每个包格式有它自己的 main 和 unstable repository。unstable repositories 是用于实验性构建。

选择 main 或 unstable 其中的一个,不要两个都使用。

使用 APT 在 Debian 和 Ubuntu 安装 Sensu

已经测试的平台:

  • Ubuntu 10.04, 11.04, 11.10, 12.04, 13.04, 13.10
  • Debian 6

  1. 安装 repository 的公钥

    为了使用 Sensu repositories,首先我们需要在我们的主机上安装 repository 公钥。

    wget -q http://repos.sensuapp.org/apt/pubkey.gpg -O- | sudo apt-key add -
    
  2. 添加 repository

    Main repository (stable)。

    echo "deb     http://repos.sensuapp.org/apt sensu main" > /etc/apt/sources.list.d/sensu.list
    

    或者是 unstable repository。

    echo "deb     http://repos.sensuapp.org/apt sensu unstable" > /etc/apt/sources.list.d/sensu.list
    
  3. 安装 Sensu

    apt-get update
    apt-get install sensu
    

使用 Yum 在 CentOS (RHEL)上安装 Sensu

已经测试的平台:

  • CentOS (RHEL) 5, 6
  • Fedora 15, 16, 17

  1. 添加 repository

    把以下内容写入 /etc/yum.repos.d/sensu.repo

    Main repository (stable)。

    [sensu]
    name=sensu-main
    baseurl=http://repos.sensuapp.org/yum/el/$releasever/$basearch/
    gpgcheck=0
    enabled=1
    

    unstable repository。

    [sensu-unstable]
    name=sensu-unstable
    baseurl=http://repos.sensuapp.org/yum-unstable/el/$releasever/$basearch/
    gpgcheck=0
    enabled=1
    

    校验 $releasever 的值是 56

    如果你得到一个 404(比如如果你的 $releasever 展开为 5Server),硬编码该值为 56

    重要提示 - Fedora 系统需要硬编码 $releasver 变量。

  2. 安装 Sensu

    yum install sensu
    

使用 MSI 在 Windows 上安装 Sensu

已经测试的平台:

  • Windows 2008 R2
  1. 下载和安装 MSI 包

    在 msi 目录找到它:http://repos.sensuapp.org/index.html

配置 Sensu 连接

两个系统运行 Sensu 组件都需要告知 RabbitMQ,因此我们将提供 Sensu 连接信息。

早先,你为 Sensu 在 monitor 生成了 SSL certificates,当配置 RabbitMQ 时使用它们。Sensu 组件将使用生成的客户端证书。

在两个系统中,为 Sensu 组件创建一个 SSL 目录。

mkdir -p /etc/sensu/ssl

拷贝以下生成的 SSL 文件到新近创建的 SSL 目录。

  • client/cert.pem
  • client/key.pem

在两个系统中,创建或编辑 /etc/sensu/conf.d/rabbitmq.json。你将需要添加以下值:

{
  "rabbitmq": {
    "ssl": {
      "cert_chain_file": "/etc/sensu/ssl/cert.pem",
      "private_key_file": "/etc/sensu/ssl/key.pem"
    },
    "host": "SUBSTITUTE_ME",
    "port": 5671,
    "vhost": "/sensu",
    "user": "sensu",
    "password": "SUBSTITUTE_ME"
  }
}

monitor 系统运行 Sensu 服务端和 API,需要告知 Redis,因此我们提供 给 Sensu 连接信息。

在 monitor 系统,创建或编辑 /etc/sensu/conf.d/redis.json

{
  "redis": {
    "host": "localhost",
    "port": 6379
  }
}

配置 Sensu API

monitor 系统运行 Sensu API,因此我们需要配置它们。

在 monitor 系统上,创建或编辑 /etc/sensu/conf.d/api.json

{
  "api": {
    "host": "localhost",
    "port": 4567,
    "user": "admin",
    "password": "secret"
  }
}

配置 Sensu clients

在两个系统上,配置 Sensu 客户端,提供关于它们自己的连接信息。

Sensu 客户端名字通常是系统的主机名,或者是另外的唯一标识(比如一个 VM ID)。

在两个系统上,创建或编辑 /etc/sensu/conf.d/client.json

{
  "client": {
    "name": "SUBSTITUTE_ME",
    "address": "SUBSTITUTE_ME",
    "subscriptions": [ "all" ]
  }
}

开启 Sensu 服务

Sensu 包安装 sysvinit (init.d) 脚本到 /etc/init.d/。默认所有的服务是停止的。

Monitor 系统

在 monitor 系统,开启所有的 Sensu 组件。

Debian and Ubuntu

update-rc.d sensu-server defaults
update-rc.d sensu-client defaults
update-rc.d sensu-api defaults

CentOS (RHEL)

chkconfig sensu-server on
chkconfig sensu-client on
chkconfig sensu-api on

Agent 系统

在 agent 系统,开启所有的 Sensu 客户端。

Debian 和 Ubuntu

update-rc.d sensu-client defaults

CentOS (RHEL)

chkconfig sensu-client on

启动 Sensu 服务

Monitor 系统

在 monitor 系统,启动所有的 Sensu 组件。

/etc/init.d/sensu-server start
/etc/init.d/sensu-client start
/etc/init.d/sensu-api start

Agent 系统

在 agent 系统,启动 Sensu 客户端。

/etc/init.d/sensu-client start

yexiaobai
4.8k 声望875 粉丝

就是不告诉你 O(∩_∩)O哈哈~。