Ad Widget

Collapse

Проблема с подключением Grafana

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bootcd
    Junior Member
    • Apr 2020
    • 7

    #1

    Проблема с подключением Grafana

    Всем привет!
    Стоял Zabbix Mysql сервер на обычной виртуалке. С другой виртуалки была подключена Grafana и все работало. Так же работали скрипты, которые общались с Zabbix api. Решил перенести все на Docker. собрал Compose, запустил, все поднялось, работает. Но перестал работать доступ к API. Ни Grafana, ни скрипты, ничего не работает. Поднял рядом контейнер с Grafana подрубил по имени контейнера - заработало. По короткому укрлу http://zabbix-web-container/api_jsonrpc.php То есть само апи пашет, но почему оно не доступно с других хостов? Может в случае с контейнером нужен другой урл?
    Приезжает вот такой ответ:
    {"error":"Internal Server Error","message":"Post "http://10.1.0.43/api_jsonrpc.php": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"}
    10.1.0.43 - айпи адрес хостовой машины с контейнерами. Через него прокинуты 80 на контейнер zabbix-web и 10051 на контейнер zabbix-server.


    Гуглил, эта проблема имеет место у людей, но решений никто не привел.
    Если кто сталкивался, помогите. Проблема решаемая запуском контейнера с контроллером для api реквестов рядом в том же деплое, но тут и спортивный интерес и просто нет времени переделывать уже сделанное.
    Заранее спасибо!
  • shkiper
    Senior Member
    • Mar 2016
    • 123

    #2
    скорее всего проблема в докере


    попробуй

    iptables -P FORWARD ACCEPT

    Comment


    • bootcd
      bootcd commented
      Editing a comment
      Попробую, спасибо!
      Еще нашел тут такой вот расклад:

      Recently, I received a couple of requests asking about how to get zabbixweb working on an external server, as by default you can’t hit the Zabbix API from external servers on both the appliance downloaded from the Zabbix site and the default install on RHEL-based Linux servers. I looked back at my original blog post, and sure enough, I forgot to explain how to do that! Here are some (very belated) instructions, assuming you’re running Apache as your webserver:

      Browse to your Zabbix web root. Open the .htaccess file in this directory (you will probably need to create it), and add the following lines:

      Header always set Access-Control-Allow-Origin "*"
      Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS"
      Header always set Access-Control-Allow-Headers "Content-Type"
      RewriteEngine On
      RewriteCond %{REQUEST_METHOD} OPTIONS
      RewriteRule .* / [R=200,L]


      Also, in your Apache configuration, specifically in /etc/httpd/conf.d/zabbix.conf (on CentOS installations, anyway), change “AllowOverride None” to “AllowOverride All” to allow that .htaccess file to work.

      Once you’re done with this, restart the Apache server.

      You should now be able to serve API requests to an external server!

      То есть настройки апача в заббиксе по дефолту не дают доступа к апи через НАТ. А так как контейнер относительно мира за НАТом, соответсвенно он не может отдать респонс. Контейнер же в этом же деплое с Графаной находится с ним в одной сети и проблем нет.
      Позже отпишу помогло или нет.
  • bootcd
    Junior Member
    • Apr 2020
    • 7

    #3
    Короче, финт ушами, приведенный выше - не прокатил.
    Переделал контейнер на NGINX - все заработало.

    Comment

    Working...