Facetteフロントエンドに接続されたDockerコンテナーでサーバーインスタンスを起動しましたが、見た目はかっこよく、facetteはrrdデータを読み取ります。
他のコンピューターからデータを受信したいときに問題が発生します。 Dockerからローカルマシンへの公開ポートをローカルで試しました。
version: '2.1'
services:
collectd:
build: ./containers/collectd
ports:
- 28596:28596
- 8125:8125
volumes:
- ./var/rrd/:/var/lib/collectd/rrd
frontend:
build: ./containers/facette
ports:
- 12003:12003
volumes:
- ./var/rrd:/var/lib/collectd/rrd
- ./var/facette:/var/lib/facette/
サーバーのDockerfile:
FROM Alpine:latest
ENV Arch=x86
RUN apk --update add Perl-dev python3-dev wget Alpine-sdk linux-headers rsyslog rrdtool rrdtool-dev rrdtool-utils
# Get and untar sources files
RUN wget https://collectd.org/files/collectd-5.7.1.tar.bz2
RUN tar jxvf collectd-5.7.1.tar.bz2 && rm collectd-5.7.1.tar.bz2
# Compile and purge source files
RUN cd collectd-5.7.1 && ./configure --with-rrdtool && make all install
RUN cd .. && rm -rf collectd-5.7.1
# Optionnal post installation tasks
RUN ln -s /opt/collectd/sbin/collectd /usr/sbin/collectd
RUN ln -s /opt/collectd/sbin/collectdmon /usr/sbin/collectdmon
RUN rm -rf /var/cache/apk/*
RUN apk del Alpine-sdk linux-headers Perl-dev python3-dev
#RUN apk add --update collectd rrdtool rsyslog collectd-dns collectd-curl collectd-sensors collectd-ping collectd-utils collectd-nginx collectd-iptables collectd-bind collectd-write_http collectd-rrdtool collectd-network collectd-disk collectd-libs
ADD ./etc/* /etc/
ADD ./entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
サーバーのcollectd.conf
Hostname "bakunin-tower"
FQDNLookup true
LoadPlugin syslog
<plugin syslog>
LogLevel info
File "/var/log/collectd.log"
Timestamp true
</plugin>
LoadPlugin cpu
LoadPlugin disk
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network
LoadPlugin nfs
LoadPlugin rrdtool
LoadPlugin swap
<plugin network>
Listen "0.0.0.0" "28596"
</plugin>
<plugin rrdtool>
DataDir "/var/lib/collectd/rrd"
</plugin>
#Include "/etc/collectd.d/*.conf"
クライアントのcollectd.conf
Hostname "kropotkin"
FQDNLookup true
LoadPlugin syslog
LoadPlugin "logfile"
<Plugin "logfile">
LogLevel "info"
File "/var/log/collectd.log"
Timestamp true
</Plugin>
<plugin syslog>
LogLevel info
</plugin>
LoadPlugin cpu
LoadPlugin disk
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network
<Plugin network>
Server "127.0.0.1" "28596"
</Plugin>
サーバーでは、rrdディレクトリに「bakunin-tower」しか表示されませんが、kropotkinも存在することを期待しています。どうしましたか?頭が爆発している。
ありがとう。
私は何日も掘りましたが、解決策が見つかりませんでした。次に、アイデアが頭に浮かびます-Dockerの外部で同じ構成を試すのはどうですか?試してみましたが、機能しました。その後、docker-compose.ymlの構成を次のように修正しました。
version: '2.1'
services:
collectd:
build: ./containers/collectd
ports:
- 25826:25826
- 8125:8125
volumes:
- ./var/rrd/:/var/lib/collectd/rrd
network_mode: Host
frontend:
build: ./containers/facette
ports:
- 12003:12003
volumes:
- ./var/rrd:/var/lib/collectd/rrd
- ./var/facette:/var/lib/facette/