我在Docker容器中启动了一个服务器实例,连接到Facette前端,看起来很酷,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也能出现。 怎么了? 我的头正在爆炸。
谢谢。
我挖了多天,没有看到解决scheme。 然后一个想法来到我的脑海 – 在Docker之外尝试相同的configuration呢? 我试过,它的工作原理,然后我更正了我的docker-compose.ymlconfiguration:
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/