【问题标题】:Monit Web Service(HTTPD) not available监控 Web 服务 (HTTPD) 不可用
【发布时间】:2016-02-10 12:53:49
【问题描述】:

我正在尝试使用 chef solo 和 monit cookbook 在我的服务器上配置监控。当我访问端口 2812 时回复说this webpage is not available。仅当通过 Web 浏览器远程访问时。我在本地卷曲时得到了预期的内容。

监控食谱

include_recipe 'monit'

cookbook_file '/etc/monit/conf.d/puma.conf' do
  source 'monit-puma'
  owner 'deploy'
  group 'deploy'
  mode '0755'
  action :create
end

cookbook_file '/etc/monit/conf.d/nginx.conf' do
  source 'monit-nginx'
  owner 'deploy'
  group 'deploy'
  mode '0755'
  action :create
end

execute 'sudo monit reload'

/etc/monit/conf.d/compat.conf

set httpd port 2812
  use address 127.0.0.1
  allow admin:mybestpassword

默认属性

default['monit']['port'] = '2812'
default['monit']['username'] = 'admin'
default['monit']['password'] = '...'
default['monit']['address'] = '0.0.0.0'
default['monit']['allow'] = ['0.0.0.0']

平衡监控更新

monit 'monit' do
  daemon_interval 30
  event_slots 1000
  httpd_port 2812
  httpd_username 'admin'
  httpd_password 'Password1'
  group 'deploy'
end

平衡监控配方

monit 'monit' do
  daemon_interval 30
  event_slots 1000
  httpd_port 2812
  httpd_username 'admin'
  httpd_password 'Password1'
  group 'deploy'
end


monit_config 'nginx' do
  source 'monit_nginx.conf.erb'
end


monit_config 'puma' do
  source 'monit-puma.conf.erb'
end

poise-monit 生成 /etc/monit/monitrc

# Generated by Chef for monit[monit]

SET PIDFILE /var/run/monit_real.pid

SET LOGFILE /var/log/monit.log

SET IDFILE /var/lib/monit/id
SET STATEFILE /var/lib/monit/state
SET EVENTQUEUE BASEDIR /var/lib/monit/events SLOTS 1000

SET HTTPD PORT 2812
  ALLOW admin:Password1

INCLUDE /etc/monit/conf.d/*

【问题讨论】:

    标签: chef-infra monitoring chef-solo monit


    【解决方案1】:

    如自述文件中所述,您需要为要使用的节点属性设置密码或allow 设置。否则,出于安全考虑,它们将被忽略。您可以查看poise-monit 文档以获取有关配置 Web UI 的更详细说明。

    【讨论】:

    • 您确实看到 monit 食谱已被弃用,对吧?你真的不应该尝试使用它。
    • 是的,但是文档比 poise-monit 更容易理解
    • 哪一部分?我写了两个,它们来自同一个模板:)
    • 我不太喜欢 poise_service 方法。我只想能够安装 monit 并使用我放在 conf.d/ 下的服务
    • 我使用 poise-monit 修改了配方,但仍然无法正常工作。我已经更新了上面的问题
    【解决方案2】:
    set httpd port 2812
      use address 127.0.0.1
      allow admin:mybestpassword
    

    你不是只听本地主机(127.0.0.1),所以显然不会在远程呼叫上接听。

    阅读 monit cookbook 自述文件(您也链接过的那个)有一个属性可以控制它:

    node['monit']['address'] – Local address to bind to for Monit's HTTPD interface. (default: nil)
    

    在您的说明书属性文件中设置 default['monit']['address'] = '0.0.0.0' 以将其配置为侦听所有可用接口。

    还有一个 ACL 允许每个 doc 中的上述注释,因此 finale 属性文件应该包括(未经测试):

    default['monit']['address'] = '0.0.0.0'
    default['monit']['allow'] = ['0.0.0.0']
    

    【讨论】:

    • 我仍然没有收到远程回复。
    • 我试过像这样0.0.0.0/0.0.0.0guide
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多