1.安装sentinl插件 到https://github.com/sirensolutions/sentinl/releases上选择合适的版本,比如你的kibana是5.6.2的,那么这里也要选择5.6.2的sentinl版本;复制zip包的链接地址,然后到kibana服务器(开通外网)上,执行下面的命令即可安装: /usr/share/kibana/bin/kibana-plugin install https://github.com/sirensolutions/sentinl/releases/download/tag-5.6.2/sentinl-v5.6.4.zip 安装过程中可能因为网络原因会中断,多安装几次就行了。
2.重启kibana 安装完毕后,systemctl restart kibana,然后http://kibana-server-ip:5601,界面上会多一个这个(下图红圈):
3.在kibana界面上配置sentinl 点击sentinl→watchers→New(右上角)→“+warcher”(左上角),到如下界面: 3.1 General Title:这个watcher的标题 Schedule:检测频率,例如“every 5 minutes”、“at 17:15”、“at 10:15 am also at 5:15pm except on Tuesday”等。 3.2 Input 见下例, { "search": { "request": { "index": [ "java-log-*" //查询以java-log开头的所有索引 ], "body": { "query": { "bool": { "must": [ { "query_string": { "analyze_wildcard": true, "query": ""Cannot connect to Hessian remote service"" //查询包含该字符串的行 } }, { "range": { "@timestamp": { "gte": "now-1h", "lte": "now", //查询最近一小时的数据 "format": "epoch_millis" } } } ], "must_not": [] } } } } } } 上面这些配置的结果是:查询以java-log开头的索引里面的,最近一小时的,包含“Cannot connect to Hessian remote service”的文档行。 这个配置内容是很灵活的,可以配置只查询某个日志文件、只查询最近一分钟的数据等。 3.3 Condition 见下例, { "script": { "script": "payload.hits.total > 1" } } 如果满足这个Condition的话,就触发后面要配置的“Actions”。 "payload.hits.total"是以“Input”里的配置为条件,查询出来的结果数,见下图, 3.4 Transform 附属条件,暂时没用。 3.5 Actions 报警动作。 见下图示例, 4.在kibana服务器上配置kibana和mail 4.1 以163邮箱为例,163邮箱授权方式 配置完上面后,会获取到一个客户端授权码,客户端(如Foxmail)用163用户名和授权码登录,直接用163用户名和密码登录会提示“授权失败”。
4.2 安装前置工具
yum install postfix mail cyrus-sasl-*
4.3 配置mail
vim /etc/mail.rc #在文件尾部追加下面的内容。
set from=test@163.com
set smtp=smtp.163.com
set smtp-auth-user=test
set smtp-auth-password=授权码
set smtp-auth=login
4.4 配置postfix
vim /etc/postfix/main.cf
inet_interfaces = all
然后在文件尾部追加下面的内容,
relayhost = [smtp.163.com]:25 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_type = cyrus sender_canonical_maps = hash:/etc/postfix/sender_canonical 4.5 配置postfix密码 echo '[smtp.163.com]:25 test@163.com:授权码' > /etc/postfix/sasl_passwd echo 'root test@163.com' > /etc/postfix/sender_canonical postmap /etc/postfix/sasl_passwd && postmap /etc/postfix/sender_canonical
查看/etc/postfix有没有生成sasl_passwd.db和sender_canonical.db文件确定生成后重启posftfix systemctl restart postfix
4.6 配置kibana.xml vim /etc/kibana/kibana.cml #在文件尾部加入下面的内容, sentinl: settings: email: active: true user: test@163.com password: 授权码 host: smtp.163.com ssl: true report: active: true tmp_path: /tmp/
重启kibana,即可在kibana界面手动触发报警测试邮件发送是否正常。