|By Sematext Blog||
|January 23, 2017 10:42 AM EST|
Enterprises without DevOps teams and culture typically experience long applications deployment cycles. Once developers make a new release the operations team needs to deploy it to one of the existing or new servers, and it often takes a long time (up to several weeks is not uncommon) to get a new application deployed to production. This process may include hardware purchases, configuration, and troubleshooting sessions with the development team. Especially the troubleshooting portion might take a while, with the typical e-mail ping-pong with commands for the administrators, sysadmins sending log files to the developers… Modern digital businesses don’t operate that way any more. Instead, modern DevOps teams often utilize PaaS to boost productivity, without even thinking of server resources, ansible/chef/puppet scripts and related stuff. They push their application releases with a few commands to “the cloud” – typically a platform as a service (PaaS) like IBM Bluemix! Once deployments get simplified in such a way, the next logical step is to disrupt the e-mail ping-pong for troubleshooting by introducing centralized log management. Logs are the most important source of information for application troubleshooting. Central log management is crucial for providing real-time log access to relevant teammates.
In this post, we’ll show how to do this by deploying a Node.js app to IBM Bluemix and using Logsene for Log Management.
Let’s start with the deployment of a Node.js app on IBM Bluemix. First, we’ll clone a git repository.
> git clone hello-world-app > cd hello-world-app
Next, because IBM Bluemix is based on Cloud Foundry, we’ll use a few commands to get access to IBM Bluemix:
> cf api https://api.ng.bluemix.net> cf login
When prompted for username and password enter your IBM ID (email) and password. The final step is to push the app in the current directory to IBM Bluemix:
> cf push app1
This takes a while and the command prints the deployment status to the console. Once your app starts successfully, it will be available via the displayed URL (orgSpace-appName), e.g.
Showing health and status for app hello-world-seti123 in org ORG1 / space seti321 as [email protected]… OK requested state: started instances: 1/1 usage: 1G x 1 instances urls: hello-world-seti123.mybluemix.net last uploaded: Tue Dec 13 16:02:11 UTC 2016 stack: cflinuxfs2 buildpack: SDK for Node.js(TM) (ibm-node.js-4.6.2, buildpack-v3.9-20161128-1327) state since cpu memory disk details #0 running 2016-12-13 05:03:27 PM 0.0% 114.9M of 1G 117.8M of 1G
Access the app via curl or the browser and check the most recent application logs in the IBM Bluemix user interface.
https://i0.wp.com/sematext.com/wp-content/uploads/2017/01/image02.png?re... 300w, https://i0.wp.com/sematext.com/wp-content/uploads/2017/01/image02.png?re... 768w, https://i0.wp.com/sematext.com/wp-content/uploads/2017/01/image02.png?re... 1024w, https://i0.wp.com/sematext.com/wp-content/uploads/2017/01/image02.png?w=... 1296w" sizes="(max-width: 648px) 100vw, 648px" data-recalc-dims="1" />
While at first you may think Bluemix provides log management service and wonder why you’d need to ship your logs from Bluemix to a Log Management SaaS, you will quickly realize that IBM Bluemix shows only the most recent logs. That, of course, is a no-go for production, where we need logs for at least the last few days, several weeks, or even archived for a longer period.
The Cloud Foundry documentation shows the option to forward logs via so called log drains from any Cloud Foundry app to centralized Log Management tools like Logsene. Here you can choose the retention time, save search queries, define alerts on logs, or visualize them in Kibana! The setup for this is done with another small set of Cloud Foundry commands:
- Create a Logsene Application to obtain the Logsene Application token
- Create the log drain to your Logsene App (note the Logsene token in the URL):
cf cups logsene-log-drain -l https://logsene-cf-receiver.sematext.com/1a4a748f-33c3-4e73-9e25-f3f0c82ff0f2
- Bind the log drain to your app. You could optionally bind multiple apps to the same log drain:
cf bind-service YOUR-APP-NAME logsene-log-drain
- Re-stage the app to pick up the newly bound service:
cf restage YOUR-APP-NAME
A few seconds later your logs will start arriving to Logsene and you will be able to search and visualize them in Logsene’s built-in Kibana:https://i1.wp.com/sematext.com/wp-content/uploads/2017/01/image01.png?re... 300w, https://i1.wp.com/sematext.com/wp-content/uploads/2017/01/image01.png?re... 768w, https://i1.wp.com/sematext.com/wp-content/uploads/2017/01/image01.png?re... 1024w, https://i1.wp.com/sematext.com/wp-content/uploads/2017/01/image01.png?w=... 1296w" sizes="(max-width: 648px) 100vw, 648px" data-recalc-dims="1" />
IBM Bluemix logs in Kibana
https://i2.wp.com/sematext.com/wp-content/uploads/2017/01/image00.png?re... 300w, https://i2.wp.com/sematext.com/wp-content/uploads/2017/01/image00.png?re... 768w" sizes="(max-width: 648px) 100vw, 648px" data-recalc-dims="1" />
Alert definition for logs in Logsene
Your logs are safe for the configured retention time, and if you need to archive your logs to Amazon S3, Logsene can archive your logs to S3 for you, too. Just another little time safer for modern DevOps teams!
Mar. 24, 2017 03:30 AM EDT Reads: 3,149
Mar. 24, 2017 03:15 AM EDT Reads: 7,907
Mar. 24, 2017 02:15 AM EDT Reads: 7,029
Mar. 24, 2017 01:45 AM EDT Reads: 1,230
Mar. 24, 2017 01:30 AM EDT Reads: 3,482
Mar. 23, 2017 11:30 PM EDT Reads: 725
Mar. 23, 2017 11:30 PM EDT Reads: 4,357
Mar. 23, 2017 10:45 PM EDT Reads: 2,392
Mar. 23, 2017 10:15 PM EDT Reads: 3,276
Mar. 23, 2017 10:00 PM EDT Reads: 3,429
Mar. 23, 2017 07:15 PM EDT Reads: 4,306
Mar. 23, 2017 06:00 PM EDT Reads: 1,336
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
Mar. 23, 2017 04:15 PM EDT Reads: 2,474
The taxi industry never saw Uber coming. Startups are a threat to incumbents like never before, and a major enabler for startups is that they are instantly “cloud ready.” If innovation moves at the pace of IT, then your company is in trouble. Why? Because your data center will not keep up with frenetic pace AWS, Microsoft and Google are rolling out new capabilities In his session at 20th Cloud Expo, Don Browning, VP of Cloud Architecture at Turner, will posit that disruption is inevitable for c...
Mar. 23, 2017 03:45 PM EDT Reads: 1,788
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
Mar. 23, 2017 03:30 PM EDT Reads: 1,728