Sensu Server端包含以下几个必须的模块
RabbitMQ
Redis
Sensu Server
Sensu API
他们可以安装在不同的服务器组成集群,也可以装成单机版。
另外还有一个可选模块,管理UI
Uchiwa
监控数据显示UI
grafana
Sensu的安装过程官方文档已经比较齐全,按此安装过程也比较顺利,这里只是记录安装过程中出现的问题和解决办法。
1. 安装过程需要root权限,可以用sudo
但某些命令sudo可能要报错,如:
?
class="bash">sudo echo "deb http://www.rabbitmq.com/debian/ testing main" > /etc/apt/sources.list.d/rabbitmq.list
?
这种需要换成:
?
echo "deb http://www.rabbitmq.com/debian/ testing main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
?
2. sensu的组件比较多,一个统一的启动脚本:
/etc/init.d/sensu
会比较方便
/etc/init.d/redis-server $1 /etc/init.d/rabbitmq-server $1 /etc/init.d/sensu-server $1 /etc/init.d/sensu-client $1 /etc/init.d/sensu-api $1 /etc/init.d/uchiwa $1
influxDB是一个go语言写的时序数据库,非常适合存储监控计量数据。
InfluxDB安装非常简单,按照官方文档即可顺利安装
接下来访问
http://127.0.0.1:8083
看是否正常
然后在sensu里加入influxdb的handler
https://github.com/sensu/sensu-community-plugins/blob/master/handlers/metrics/influxdb-metrics.rb
并配置好influxdb
https://github.com/sensu/sensu-community-plugins/blob/master/handlers/metrics/influxdb-metrics.json
Grafana是一组纯前端的,专门为监控计量数据展示设计的页面,可以直接从influxdb获取数据展示。
由于Grafana全部是静态的页面,只需要放到一个目录,然后将该目录作为Web服务器的虚拟目录即可。
例如:apache服务器
在/etc/apache2/sites-available/目录添加一个配置文件
grafana-demo.conf
内容:
Listen 8012 <VirtualHost *:8012> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /home/sensu/grafana # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
?
并在/etc/apache2/sites-enabled做一个软链接
# ln -s /etc/apache2/sites-available/grafana-demo.conf /etc/apache2/sites-enabled/grafana-demo.conf
注意修改apache.conf
<Directory /> Options Indexes FollowSymLinks #Options FollowSymLinks AllowOverride None #Require all denied Require all granted </Directory>
?
这样外部才可以访问到
然后修改grafana配置文件:config.js
JSON"> datasources: { influxdb: { type: 'influxdb', url: "http://127.0.0.1:8086/db/demo", username: 'root', password: 'root', }, grafana: { type: 'influxdb', url: "http://127.0.0.1:8086/db/grafana", username: 'root', password: 'root', grafanaDB: true }, },
?
访问
http://127.0.0.1:8012
看是否正常
最后可以加一个metric的plugin,如:http://sensuapp.org/docs/0.16/adding_a_metric
并设置handler为influxdb。
到influxdb的管理界面:http://127.0.0.1:8083,Explor db的data,执行list series,就可以看到你的series,最后到grafana的页面配置该series即可看到监控曲线