Technical Resources
Educational Resources
APM Integrated Experience
Connect with Us
Apache logs are important to any software developer or anyone who has a web application. Apache plays an important role by giving you necessary information about your web operations from the server—information such as traffic volume, errors, and server performance metrics. The information you get from the Apache web server can help you improve your website. When you look at the error logs, the error message logs can help make troubleshooting your web application easier.
Logs are important. One use case can be to check traffic volume. Knowing your website traffic can be helpful, as it gives you information to help you decide whether to scale your website hosting resources. You can use these logs to optimize your website and improve its performance, because users love fast websites and hate slow ones.
There are many ways you can monitor Apache logs. Some of them are tricky, and you’ll need some basic understanding of working with a Linux-based environment. If you don’t have a basic understanding of Linux, in this post, I’ll give you some options to make it easier.
One approach to monitoring your Apache logs from the server is by using Unix command-line tools. Many developers and systems admins use this method. Even though writing Unix commands might not be easy, using this approach does the job. And although Unix commands won’t give you a graphical representation of the logs, you’ll be able to get the desired results. These commands are completely free and ready to use.
You can access Apache logs from var/log/log_type. For example, you can access Apache logs from the Apache Unix/Linux server by looking in the following directories:
On a Linux server, you can access Apache error logs from var/log/apache2/error.log. You can then log out the errors from the error log file by writing the following command: sudo tail -f /var/log/apache2/error.log. When you run this command, you’ll be able to view the errors in the terminal as they occur in real time. The tail command tells the machine to read the file and display the results on the terminal. You can use these errors to monitor the operations on your website and better troubleshoot issues occurring on the web server.
You may have noted we’re passing -f flag in the command. This flag makes sure the tail command outputs additional data from the log file. If this flag is left out, you might not be able to get every detail about the log file.
Just like accessing error logs, you can also monitor access logs by running the same command mentioned previously. Access logs are lists of files your users (or even bots) are requesting from your website and all the processed files. Access logs are commonly used for monitoring a website’s performance. You can also use them for security reasons because they store all the requests sent to the server. Access logs help you see what’s being requested and where it’s coming from.
For better results when logging in Apache, Apache lets you separate log messages in categories. This will help you receive only the log messages you need to work with or see. For example, if you want to log information messages only, you can set the level in the Apache configuration file and receive messages at the info level. Here’s an example of how you can do this:
sudo nano /etc/apache2/apache2.conf
And you can set the Apache log level to info:
...
LogLevel info
...
With this configuration in place, you’ll receive useful information from the Apache server. If you want to receive serious messages, like errors, just set the LogLevel to error.
You can actually combine two commands to get the best results. When you’re using tail and grep, these commands give you the power to monitor a specific type of data from a log file. Now this is awesome—you don’t have to see unnecessary messages coming from the server. Here are some scenarios where you might need to combine tail and grep commands.
If you want to get log messages from a certain IP address, you can simply run this single line of command and get information from a specific IP address:
tail -f /var/log/apache2/access.log | grep 192.168.206.1
The combination of these commands will match the partner you want. This allows you to watch requests from only the IP address you’ve specified (in the above case, 192.168.206.1).
When you’re monitoring Apache logs, you’ll be able to see many unwanted files being logged on the console. This can make your job difficult, but there’s a way out. What you must do is exclude some of the files you don’t really need from the log message. If you don’t need to watch things like images, you can run a command like this:
tail -f /var/log/apache2/error.log | egrep -v "(.gif|.jpg|.png|.swf|.ico)"
And as simple as that, thanks to egrep, you won’t be watching unnecessary images. This will give your log messages a cleaner look, making it easier to spot errors.
In the same way, if you want to get only a specific file, you can simply run the command like this: tail -f /var/log/apache2/error.log | grep .png. Now, you’ll be monitoring only logs with .png file types. Using commands and a console to analyze data can be challenging, especially in larger environments with many logs and a high volume of log data, but there are tools capable of helping you view data in a UI.
Although using command-line tools to monitor log messages isn’t difficult, it isn’t easy to read these log messages on a console—there’s a lot of noise and not much signal. It’s much better and easier if you can view these log messages in a way that makes it easy to spot the problem from the server. Using software can give you the ability to view these log messages in a more readable way and alert you so you can act on your business needs.
Quite a few platforms offer such services. SolarWinds® Loggly® helps you monitor Apache logs and can also alert you so you can resolve errors on the website. This means you can act quickly, before the business is affected. Loggly provides a variety of ways to quickly visualize data, and the dashboards let you organize data in the most useful ways for detecting and understanding the problems arising in software and infrastructure. You can sign up here and use Loggly to monitor Apache logs.
You simply can’t avoid logs; they provide data you can use to offer the best user experience. One error can cause a business to lose sums of money. Acting quickly to solve the issue is key, and the only way you can know about these errors before your users do is by logging the error messages—or any other logs you desire to work with.
This post was written by Mathews Musukuma. Mathews is a software engineer with experience in web and application development. Some of his skills include Python/Django, JavaScript, and Ionic Framework. Over time, Mathews has also developed an interest in technical content writing.