Search code examples
amazon-kinesisamazon-kinesis-agent

Kinesis Agent not starting : Caused by: java.nio.file.AccessDeniedException


I have installed agent on Ubuntu 14.04... It was working fine before but then it stopped suddenly and now getting following error while starting

sudo service aws-kinesis-agent start
 * Starting aws-kinesis-agent
[ OK ] 

2016-07-10 18:46:40.373+0530 prod-api-ip-10-0-0-48 (main) com.amazon.kinesis.streaming.agent.Agent [INFO] Reading configuration from file: /etc/aws-kinesis/agent.json
2016-07-10 18:46:40.404+0530 prod-api-ip-10-0-0-48 (main) com.amazon.kinesis.streaming.agent.Agent [INFO] null: Agent will use up to 96 threads for sending data.
2016-07-10 18:46:40.411+0530 prod-api-ip-10-0-0-48 (main) com.amazon.kinesis.streaming.agent.Agent [ERROR] Unhandled error.
java.lang.RuntimeException: Failed to create or connect to the checkpoint database.
        at com.amazon.kinesis.streaming.agent.tailing.checkpoints.SQLiteFileCheckpointStore.connect(Unknown Source)
        at com.amazon.kinesis.streaming.agent.tailing.checkpoints.SQLiteFileCheckpointStore.<init>(Unknown Source)
        at com.amazon.kinesis.streaming.agent.Agent.<init>(Unknown Source)
        at com.amazon.kinesis.streaming.agent.Agent.main(Unknown Source)
Caused by: java.nio.file.AccessDeniedException: /var/run/aws-kinesis-agent
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
        at java.nio.file.Files.createDirectory(Files.java:674)
        at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
        at java.nio.file.Files.createDirectories(Files.java:767)

Solution

  • I have personally found that Kinesis Agent is really not stable. Above problem got resolved by just restarting the agent ! But then again after 30 mins again some other exception started happening.

    I would recommend to try some other agent like Clodwatch agent which can keep sending logs to CloudWatch logs ( though I have not tested that also ).

    I am going with approach of using logrotate and then copying log files to S3 bucket. I know here; there can be max. lag of 1 hour.