- Introduction
- Getting Your System(s) Ready for Effective Problem Determination
- The Four Phases of Investigation
- Technical Investigation
- Troubleshooting Commercial Products
- Conclusion
1.2 Getting Your System(s) Ready for Effective Problem Determination
The Linux problem determination tools and facilities are free, which begs the question: Why not install them? Without these tools, a simple problem can turn into a long and painful ordeal that can affect a business and/or your personal time. Before reading through the rest of the book, take some time to make sure the following tools are installed on your system(s). These tools are just waiting to make your life easier and/or your business more productive:
-
strace: The strace tool traces the system calls, special functions that interact with the operating system. You can use this for many types of problems, especially those that relate to the operating system.
-
ltrace: The ltrace tool traces the functions that a process calls. This is similar to strace, but the called functions provide more detail.
-
lsof: The lsof tool lists all of the open files on the operating system (OS). When a file is open, the OS returns a numeric file descriptor to the process to use. This tool lists all of the open files on the OS with their respective process IDs and file descriptors.
-
top: This tool lists the "top" processes that are running on the system. By default it sorts by the amount of current CPU being consumed by a process.
-
traceroute/tcptraceroute: These tools can be used to trace a network route (or at least one direction of it).
-
ping: Ping simply checks whether a remote system can respond. Sometimes firewalls block the network packets ping uses, but it is still very useful.
-
hexdump or equivalent: This is simply a tool that can display the raw contents of a file.
-
tcpdump and/or ethereal: Used for network problems, these tools can display the packets of network traffic.
-
GDB: This is a powerful debugger that can be used to investigate some of the more difficult problems.
-
readelf: This tool can read and display information about various sections of an Executable and Linking Format (ELF) file.
These tools (and many more) are listed in Appendix A, "The Toolbox," along with information on where to find these tools. The rest of this book assumes that your systems have these basic Linux problem determination tools installed. These tools and facilities are free, and they won’t do much good sitting quietly on an installation CD (or on the Internet somewhere). In fact, this book will self-destruct in five minutes if these tools are not installed.
Now of course, just because you have a tool in your toolbox, it doesn’t mean you know how to use it in a particular situation. Imagine a toolbox with lots of very high quality tools sitting on your desk. Suddenly your boss walks into your office and asks you to fix a car engine or TV. You know you have the tools. You might even know what the tools are used for (that is, a wrench is used for loosening and tightening bolts), but could you fix that car engine? A toolbox is not a substitute for a good understanding of how and when to use the tools. Understanding how and when to use these tools is the main focus of this book.