What are Linux log files
Log files are a set of records that Linux maintains for the administrators to keep track of important events. They contain messages about the server, including the kernel, services and applications running on it.
I only found old logs in /var/log/httpd/ where most people recommend looking, but running php -info grep log pointed me towards /var/www/logs where the most recent logs were located. The Common Log Format, also known as the NCSA Common log format, (after NCSAHTTPd) is a standardized text file format used by web servers when generating server log files. Because the format is standardized, the files can be readily analyzed by a variety of web analysis programs, for example Webalizer and Analog. The Common Log Format is a standardized text file format used by various web servers in generating server log files. With an Apache HTTP server, the Common Log Format can be used to produce access logs that are straightforward enough for developers and administrators to read. Log Files An Apache log is a record of the events that have occurred on your Apache web server. Apache stores two kinds of logs: Access Log Contains information about requests coming in to the web server. This information can include what. Apache server records all incoming requests and all requests processed to a log file. The format of the access log is highly configurable. The location and content of the access log are controlled by the CustomLog directive. Default apache access log file location.
Linux provides a centralized repository of log files that can be located under the /var/log directory.
The log files generated in a Linux environment can typically be classified into four different categories:
- Application Logs
- Event Logs
- Service Logs
- System Logs
Why monitor Linux log files
Log management is an integral part of any server administrator’s responsibility.
By monitoring Linux log files, you can gain detailed insight on server performance, security, error messages and underlying issues by. If you want to take a proactive vs. a reactive approach to server management, regular log file analysis is 100% required.
In short, log files allow you to anticipate upcoming issues before they actually occur.
Which Linux log files to monitor
Monitoring and analyzing all of them can be a challenging task.
The sheer volume of logs can sometimes make it frustrating just to drill down and find the right file that contains the desired information.
To make it a little easier for you, we will introduce you to some of the most critical Linux log files that you must be monitoring.
/var/log/messages
What’s logged here?:
- This log file contains generic system activity logs.
- It is mainly used to store informational and non-critical system messages.
- In Debian-based systems, /var/log/syslog directory serves the same purpose.
How can I use these logs?:
- Here you can track non-kernel boot errors, application-related service errors and the messages that are logged during system startup.
- This is the first log file that the Linux administrators should check if something goes wrong.
- For example, you are facing some issues with the sound card. To check if something went wrong during the system startup process, you can have a look at the messages stored in this log file.
/var/log/auth.log
What’s logged here?
- All authentication related events in Debian and Ubuntu server are logged here.
- If you’re looking for anything involving the user authorization mechanism, you can find it in this log file.
How can I use these logs?:
Suspect that there might have been a security breach in your server? Notice a suspicious javascript file where it shouldn’t be? If so, then find this log file asap!
- Investigate failed login attempts
- Investigate brute-force attacks and other vulnerabilities related to user authorization mechanism.
/var/log/secure
What’s logged here?
RedHat and CentOS based systems use this log file instead of /var/log/auth.log.
- It is mainly used to track the usage of authorization systems.
- It stores all security related messages including authentication failures.
- It also tracks sudo logins, SSH logins and other errors logged by system security services daemon.
How can I use these logs?:
- All user authentication events are logged here.
- This log file can provide detailed insight about unauthorized or failed login attempts
- Can be very useful to detect possible hacking attempts.
- It also stores information about successful logins and tracks the activities of valid users.
/var/log/boot.log
What’s logged here?
- The system initialization script, /etc/init.d/bootmisc.sh, sends all bootup messages to this log file
- This is the repository of booting related information and messages logged during system startup process.
How can I use these logs?:
- You should analyze this log file to investigate issues related to improper shutdown, unplanned reboots or booting failures.
- Can also be useful to determine the duration of system downtime caused by an unexpected shutdown.
/var/log/dmesg
What’s logged here?
- This log file contains Kernel ring buffer messages.
- Information related to hardware devices and their drivers are logged here.
- As the kernel detects physical hardware devices associated with the server during the booting process, it captures the device status, hardware errors and other generic messages.
How can I use these logs?:
- This log file is useful for dedicated server customers mostly.
- If a certain hardware is functioning improperly or not getting detected, then you can rely on this log file to troubleshoot the issue.
- Or, you can purchase a managed server from us and we’ll monitor it for you.
/var/log/kern.log
What’s logged here?
This is a very important log file as it contains information logged by the kernel.
How can I use these logs?:
- Perfect for troubleshooting kernel related errors and warnings.
- Kernel logs can be helpful to troubleshoot a custom-built kernel.
- Can also come handy in debugging hardware and connectivity issues.
/var/log/faillog
What’s logged here?
This file contains information on failed login attempts.
How can I use these logs?:
It can be a useful log file to find out any attempted security breaches involving username/password hacking and brute-force attacks.
/var/log/cron
What’s logged here?
Apache Error Log File
This log file records information on cron jobs.
How can I use these logs
- Whenever a cron job runs, this log file records all relevant information including successful execution and error messages in case of failures.
- If you’re having problems with your scheduled cron, you need to check out this log file.
/var/log/yum.log
What’s logged here?
It contains the information that is logged when a new package is installed using the yum command.
How can I use these logs?:
- Track the installation of system components and software packages.
- Check the messages logged here to see whether a package was correctly installed or not.
- Helps you troubleshoot issues related to software installations.
Suppose your server is behaving unusually and you suspect a recently installed software package to be the root cause for this issue. In such cases, you can check this log file to find out the packages that were installed recently and identify the malfunctioning program.
/var/log/maillog or /var/log/mail.log
What’s logged here?
All mail server related logs are stored here.
How can I use these logs?
- Find information about postfix, smtpd, MailScanner, SpamAssassain or any other email related services running on the mail server.
- Track all the emails that were sent or received during a particular period
- Investigate failed mail delivery issues.
- Get information about possible spamming attempts blocked by the mail server.
- Trace the origin of an incoming email by scrutinizing this log file.
var/log/httpd/
What’s logged here?
- This directory contains the logs recorded by the Apache server.
- Apache server logging information are stored in two different log files – error_log and access_log.
How can I use these logs?:
- The error_log contains messages related to httpd errors such as memory issues and other system related errors.
- This is the place where Apache server writes events and error records encountered while processing httpd requests.
- If something goes wrong with the Apache webserver, check this log for diagnostic information.
- Besides the error-log file, Apache also maintains a separate list of access_log.
- All access requests received over HTTP are stored in the access_log file.
- Helps you keep track of every page served and every file loaded by Apache.
- Logs the IP address and user ID of all clients that make connection requests to the server.
- Stores information about the status of the access requests, – whether a response was sent successfully or the request resulted in a failure.
/var/log/mysqld.log or /var/log/mysql.log
What’s logged here?
What Is A Log File
- As the name suggests, this is the MySQL log file.
- All debug, failure and success messages related to the [mysqld] and [mysqld_safe] daemon are logged to this file.
- RedHat, CentOS and Fedora stores MySQL logs under /var/log/mysqld.log, while Debian and Ubuntu maintains the log in /var/log/mysql.log directory.
How can I use this log?
- Use this log to identify problems while starting, running, or stopping mysqld.
- Get information about client connections to the MySQL data directory
- You can also setup ‘long_query_time’ parameter to log information about query locks and slow running queries.
Final Takeaway
While monitoring and analyzing all the log files generated by the system can be a difficult task, you can make use of a centralized log monitoring tool to simplify the process.
Some of our customers take advantage of using Nagios Log Server to manage their server logs. There are many opensource options available if that’s out of the budget. Needless to say though, monitoring Linux logs manually is hard.
So if you want to take a truly proactive approach to server management, investing in a centralized log collection and analysis platform which allows you to view log data in real-time and set up alerts to notify you when potential threats arise.
Error Log
Related Modules | Related Directives |
---|
The server error log, whose name and location is set by the ErrorLog
directive, is the most important log file. This is the place where Apache httpd will send diagnostic information and record any errors that it encounters in processing requests. It is the first place to look when a problem occurs with starting the server or with the operation of the server, since it will often contain details of what went wrong and how to fix it.
The error log is usually written to a file (typically error_log
on Unix systems and error.log
on Windows and OS/2). On Unix systems it is also possible to have the server send errors to syslog
or pipe them to a program.
The format of the error log is relatively free-form and descriptive. But there is certain information that is contained in most error log entries. For example, here is a typical message.
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
The first item in the log entry is the date and time of the message. The second item lists the severity of the error being reported. The LogLevel
directive is used to control the types of errors that are sent to the error log by restricting the severity level. The third item gives the IP address of the client that generated the error. Beyond that is the message itself, which in this case indicates that the server has been configured to deny the client access. The server reports the file-system path (as opposed to the web path) of the requested document.
A very wide variety of different messages can appear in the error log. Most look similar to the example above. The error log will also contain debugging output from CGI scripts. Any information written to stderr
by a CGI script will be copied directly to the error log.
It is not possible to customize the error log by adding or removing information. However, error log entries dealing with particular requests have corresponding entries in the access log. For example, the above example entry corresponds to an access log entry with status code 403. Since it is possible to customize the access log, you can obtain more information about error conditions using that log file.
During testing, it is often useful to continuously monitor the error log for any problems. On Unix systems, you can accomplish this using: