A sample docker compose file for BYFN from fabric-samples with fluentd log driver output enabled.
Also see Hyperledger Fabric fluent logging connected to EK stack for the same connected to EK stack (allowing Kibana view of Hyperledger Fabric logs).
NOTE The docker-compose file attached here is based on BYFN (fabric-samples) matching hyperledger fabric v1.1. However, it should be trivial to apply for others (such as v1.2).
The key config points are:
- Update fabric-samples/first-network/docker-compose-cli.yaml with contents of docker-compose-cli-logging.yaml.
- Place fluentd.conf under fabric-samples/first-network/fluentd/ directory (need to mkdir fluentd beforehand).
- Launch byfn and start monitoring fluentd logs.
> byfn.sh -m up; docker logs -f fluentd
- Ctrl-c to exit docker logs.
- Destroy byfn.
> byfn.sh -m down
Starting with channel 'mychannel' and CLI timeout of '10'
proceeding ...
/home/vagrant/fabric/bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
org1.example.com
org2.example.com
/home/vagrant/fabric/bin/configtxgen
##########################################################
######### Generating Orderer Genesis block ##############
##########################################################
#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
#################################################################
####### Generating anchor peer update for Org1MSP ##########
#################################################################
#################################################################
####### Generating anchor peer update for Org2MSP ##########
#################################################################
Creating network "net_default" with the default driver
Creating network "net_byfn" with the default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating volume "net_orderer.example.com" with default driver
Creating fluentd
Creating orderer.example.com
Creating peer1.org1.example.com
Creating peer0.org2.example.com
Creating peer1.org2.example.com
Creating peer0.org1.example.com
Creating cli
2018-07-17 14:56:22 +0000 [info]: parsing config file is succeeded path="/fluentd/etc/fluentd.conf"
2018-07-17 14:56:22 +0000 [info]: using configuration file: <ROOT>
<source>
@type forward
port 24224
bind "0.0.0.0"
</source>
<match docker.**>
@type stdout
</match>
</ROOT>
2018-07-17 14:56:22 +0000 [info]: starting fluentd-1.2.3 pid=5 ruby="2.4.4"
2018-07-17 14:56:22 +0000 [info]: spawn command to main: cmdline=["/usr/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/bin/fluentd", "-c", "/fluentd/etc/fluentd.conf", "-p", "/fluentd/plugins", "--under-supervisor"]
2018-07-17 14:56:23 +0000 [info]: gem 'fluentd' version '1.2.3'
2018-07-17 14:56:23 +0000 [info]: adding match pattern="docker.**" type="stdout"
2018-07-17 14:56:23 +0000 [info]: adding source type="forward"
2018-07-17 14:56:23 +0000 [info]: #0 starting fluentd worker pid=15 ppid=5 worker=0
2018-07-17 14:56:23 +0000 [info]: #0 listening port port=24224 bind="0.0.0.0"
2018-07-17 14:56:23 +0000 [info]: #0 fluentd worker is now running worker=0
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":" Version: 1.0.6"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":" Go version: go1.7.5"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"log":" OS/Arch: linux/amd64","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_name":"/peer0.org2.example.com","source":"stderr","log":" Chaincode:","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":" Base Image Version: 0.3.2"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"log":" Base Docker Namespace: hyperledger","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":" Base Docker Label: org.hyperledger.fabric"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"log":" Docker Namespace: hyperledger","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_name":"/peer0.org2.example.com","source":"stderr","log":"","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"log":"2018-07-17 14:56:23.507 UTC [ledgermgmt] initialize -> INFO 002\u001b[0m Initializing ledger mgmt","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"source":"stderr","log":"2018-07-17 14:56:23.509 UTC [kvledger] NewProvider -> INFO 003\u001b[0m Initializing ledger provider","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_name":"/peer0.org2.example.com","source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.509 UTC [kvledger.util] CreateDirIfMissing -> DEBU 004\u001b[0m CreateDirIfMissing [/var/hyperledger/production/ledgersData/ledgerProvider/]","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_name":"/peer0.org2.example.com","source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.509 UTC [kvledger.util] logDirStatus -> DEBU 005\u001b[0m Before creating dir - [/var/hyperledger/production/ledgersData/ledgerProvider/] does not exist","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.509 UTC [kvledger.util] logDirStatus -> DEBU 006\u001b[0m After creating dir - [/var/hyperledger/production/ledgersData/ledgerProvider/] exists","container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.512 UTC [kvledger.util] CreateDirIfMissing -> DEBU 007\u001b[0m CreateDirIfMissing [/var/hyperledger/production/ledgersData/chains/index/]"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.512 UTC [kvledger.util] logDirStatus -> DEBU 008\u001b[0m Before creating dir - [/var/hyperledger/production/ledgersData/chains/index/] does not exist"}
2018-07-17 14:56:23.000000000 +0000 docker.7217c904c5cf: {"container_id":"7217c904c5cf1252ee7278a84265ed2405784f81d494fddda3b7df7b3cf793ec","container_name":"/peer0.org2.example.com","source":"stderr","log":"\u001b[36m2018-07-17 14:56:23.512 UTC [kvledger.util] logDirStatus -> DEBU 009\u001b[0m After creating dir - [/var/hyperledger/production/ledgersData/chains/index/] exists"}
...