Server
General
- https://wiki.archlinux.org/index.php/Comprehensive_Server_Guide
- http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/
- http://en.wikipedia.org/wiki/CAP_theorem
- http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
- http://en.wikipedia.org/wiki/Software_as_a_service
- http://en.wikipedia.org/wiki/Platform_as_a_service
- http://en.wikipedia.org/wiki/Cloud_computing
- Tweaked.io - This site is dedicated to information relating to tweaking, tuning, and optimizing your server-software. Steve Kemp.
Sysadmin
history history info | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s w last -a uname -a grep -H /etc/*release /proc/version df -h free -m who id netstat -tlpnu iptables -nvxL ss -s top ps auxf dmesg |less ls -lR /etc/cron* tail /var/log/* cat /proc/cpuinfo lsblk -io KNAME,TYPE,SIZE,MODEL findmnt env
Services
See also *nix#init
sudo /etc/init.d/<service> restart SysV sudo systemctl restart <service> Systemd
Logging
Basics
- Linux log files location and how do I view logs files? - Jul 17, 2006
- 20 Linux Log Files that are Located under /var/log Directory - Aug 1, 2011
logrotate
- logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.
- Using logrotate to rotate and archive log - Aug 05, 2010
- HowTo: The Ultimate Logrotate Command Tutorial with 10 Examples - Jul 14, 2010
Systems
syslog
- syslog
- syslogd
- /etc/syslog.conf
- How To Set Up A Debian Linux Syslog Server
- https://tools.ietf.org/html/rfc5424 - The Syslog Protocol
- logger - a shell command interface to the syslog(3) system log module
syslog-ng
- syslog-ng is a high-performance syslog server with advanced log processing services and direct database access. syslog-ng clients collect the log messages from the various applications, files, and other sources then send important log messages to the remote syslog-ng server which sorts and stores them.
rsyslog
- Rsyslog is an enhanced syslogd supporting, among others, MySQL, PostgreSQL, failover log destinations, syslog/tcp, fine grain output format control, high precision timestamps, queued operations, the ability to filter on any message part and encryption protected syslog relay chains. It is quite compatible to stock sysklogd and can be used as a drop-in replacement.
journald
systemd's journal service
- http://www.freedesktop.org/software/systemd/man/systemd-journald.service.html
- http://www.freedesktop.org/software/systemd/man/journald.conf.html
- https://wiki.archlinux.org/index.php/Systemd#Journal
- https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs
Aggregation
- Logwatch is a customizable log analysis system. Logwatch parses through your system's logs and creates a report analyzing areas that you specify. Logwatch is easy to use and will work right out of the package on most systems.
- Logcheck is a simple utility which is designed to allow a system administrator to view the logfiles which are produced upon hosts under their control. It does this by mailing summaries of the logfiles to them, after first filtering out "normal" entries.
- logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). Speaking of searching, logstash comes with a web interface for searching and drilling into all of your logs.
- Dendrite scrapes your existing logs and re-emits a unified log stream in modern, sensible, structured formats like JSON and StatsD over common protocols such as TCP, UDP, file streams
- l2met - Convert a formatted log stream into metrics. Heroku.
- Graylog2 enables you to unleash the power that lays inside your logs. Use it to run analytics, alerting, monitoring and powerful searches over your whole log base. Need to debug a failing request? Just run a quick filter search to find it and see what errors it produced. Want to see all messages a certain API consumer is consuming in real time? Create streams for every consumer and have them always only one click away.
- GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems. It provides fast and valuable HTTP statistics for system administrators that require a visual server report on the fly.
- lnav - An advanced log file viewer for the small-scale. Watch and analyze your log files from a terminal. No server. No setup. Still featureful.
- Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
- Fluentd is an open-source tool to collect events and logs. 150+ plugins instantly enables you to store the massive data for Log Search, Big Data Analytics, and Archiving (MongoDB, S3, Hadoop).
- Kibana is an open source (Apache Licensed), browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch. With those in place Kibana is a snap to setup and start using (seriously). Kibana strives to be easy to get started with, while also being flexible and powerful
- log.io - Real-time log monitoring in your browser. Powered by node.js + socket.io
http://www.vanheusden.com/multitail/
- glTail.rb - Real-time visualization of server log traffic, events and statistics with Ruby, SSH and OpenGL.
Services
Monitoring
See also Network#Monitoring, *nix#Monitoring
If it's up... | A.K.A... | It's down... per year |
---|---|---|
90% | n/a | 876 hours |
95% | n/a | 438 hours |
99% | two 9s | 87 hours, 36 minutes |
99.9% | three 9s | 8 hours, 45 minutes, 36 seconds |
99.99% | four 9s | 52 minutes, 33.6 seconds |
99.999% | five 9s | 5 minutes, 15.36 seconds |
99.9999% | six 9s | 31.68 seconds |
lbcd
Collectd
collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files. collectd gathers statistics about the system it is running on and stores this information. Those statistics can then be used to find current performance bottlenecks (i.e. performance analysis) and predict future system load (i.e. capacity planning). Or if you just want pretty graphs of your private server and are fed up with some homegrown solution you're at the right place, too ;).
- StatsD - A network daemon that runs on the Node.js platform and listens for statistics, like counters and timers, sent over UDP and sends aggregates to one or more pluggable backend services (e.g., Graphite).
- https://github.com/armon/statsite - A C implementation of statsd
Nagios
- Nagios is a powerful monitoring system that enables organizations to identify and resolve IT infrastructure problems before they affect critical business processes. Designed with scalability and flexibility in mind, Nagios gives you the peace of mind that comes from knowing your organization's business processes won't be affected by unknown outages.
- NagVis is a visualization addon for the well known network managment system Nagios.
- NPC is to be a complete web based UI replacement to Nagios while fully integrating into Cacti using the Cacti Plugin Architecture. The primary benefit is a single point of access for trending and alert monitoring.
Monit
- Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.
- M/Monit expand upon Monit's capabilities to provide monitoring and management of all Monit enabled hosts from one easy to use web-interface.
Splunk
- Splunk is powerful and versatile IT search software that takes the pain out of tracking and utilizing the information in your data center. If you have Splunk, you won't need complicated databases, connectors, custom parsers or controls--all that's required is a web browser and your imagination. Splunk handles the rest.
- YouTube: Splunk 4.3 Overview
Amon
- Amon is an application and system monitoring toolkit for web developers. Its goal is to provide you with all the information you need about the health of your servers and the errors that occur in your web application.
Munin
Shinken
Sensu
Other
- Cacti is a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.
- ApacheTop is a curses-based top-like display for Apache information, including requests per second, bytes per second, most popular URLs, etc.
- Riemann aggregates events from your servers and applications with a powerful stream processing language. Send an email for every exception raised by your code. Track the latency distribution of your web app. See the top processes on any host, by memory and CPU. Combine statistics from every Riak node in your cluster and forward to Graphite. Send alerts when a key process fails to check in. Know how many users signed up right this second.
- Custodian allows a wide range of services to be remotely tested across a network. The system uses a central work-queue, which allows the testing to be carried out by a agents running upon an arbitrary number of hosts.
- Heka is a tool for collecting and collating data from a number of different sources, performing "in-flight" processing of collected data, and delivering the results to any number of destinations for further analysis.
- Blueflood is a multi-tenant distributed metric processing system created by engineers at Rackspace. It is used in production by the Cloud Monitoring team to process metrics generated by their monitoring systems. Blueflood is capable of ingesting, rolling up and serving metrics at a massive scale.
- Ray-Mon is a linux server monitoring script written in PHP and Bash, utilizing JSON as data storage. It requires only bash and a webserver on the client side, and only php on the server side.
- Pinba is a MySQL storage engine that acts as a realtime monitoring/statistics server for PHP using MySQL as a read-only interface. It accumulates and processes data sent over UDP by multiple PHP processes and displays statistics in a nice human-readable form of simple "reports", also providing read-only interface to the raw data in order to make possible generation of more sophisticated reports and stats.
- Opserver is a monitoring system by the team at Stack Exchange, home of Stack Overflow.
- Centreon is an free and Open Source software allowing you to monitor all the infrastructures and applications of your information system
- Icinga is an enterprise grade open source monitoring system which keeps watch over networks and any conceivable network resource, notifies the user of errors and recoveries and generates performance data for reporting. Scalable and extensible, Icinga can monitor complex, large environments across dispersed locations. Icinga is a fork of Nagios and is backward compatible.
- Zabbix is the ultimate open source availability and performance monitoring solution. Zabbix offers advanced monitoring, alerting, and visualization features today which are missing in other monitoring systems, even some of the best commercial ones.
- Xymon is a system for monitoring servers and networks. It takes its inspiration from the Big Brother monitoring system, but unlike Big Brother it is designed to work well whether you need to monitor a small network with just a handful of hosts, or large networks with thousands of servers and network services.
- Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization.
- Hyperic's web infrastructure monitoring and management software automates and streamlines data center operations. HQ helps you reduce operations workload, increase your company's IT management maturity level, and drive improvements in availability and infrastructure health.
- Packetbeat - Open Source application monitoring & packet tracing system
- Inspeqtor monitors your application infrastructure. It gathers and verifies key metrics from all the moving parts in your application and alerts you when something looks wrong. It understands the application deployment workflow so it won't bother you during a deploy.
Zenoss
linux-dash
- linux-dash - A low-overhead monitoring web dashboard for a GNU/Linux machine. Simply drop-in the app and go!
GoAccess
- GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems. It provides fast and valuable HTTP statistics for system administrators that require a visual server report on the fly.
Services
New Relic
Rackspace
Web management
- Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage a system from the console or remotely.
- Virtualmin is a powerful and flexible web hosting control panel for Linux and UNIX systems based on the well-known Open Source web-based systems management GUI, Webmin. Manage your virtual domains, mailboxes, databases, applications, and the entire server, from one comprehensive and friendly interface.
- Ehcp is a Hosting Control Panel to facilate the process of managing domains, e-mail, users, etc.
- AlternC is a set of software management on Linux shared hosting, easy to use, easy to install, based solely on free software, GPL v2 +. Systems for automatic installation and configuration, control panel accessible via the web for the management of users and web services (domains, emails, ftp accounts, statistics ...). Technically, AlternC is currently based on Debian GNU / Linux 'Stable' (Squeeze to date), and use other software such as Apache, Postfix, Mailman ... It also contains API documentation, allowing easy customization of the office, 'web control panel' AlternC.
- easyengine (ee) is a Linux shell-script collection, which makes it easy to manage your WordPress-Nginx sites on an Ubuntu server
Performance
See also HTTP#Performance
- irqbalance is a Linux* daemon that distributes interrupts over the processors and cores you have in your computer system. The design goal of irqbalance is to do find a balance between power savings and optimal performance. To a large degree, the work irqbalance does is invisible to you; if irqbalance performs its job right, nobody will ever notice it's there or want to turn it off.
- HAProxy - The Reliable, High Performance TCP/HTTP Load Balancer.
- Pound is a reverse proxy - that means you put it on the server in front of your web services, not in front of your clients who need to connect to the general Internet. It takes web requests from end-users and distributes them among several web servers or services you may be running. Pound is also load balancing, so you can run multiple servers that look to the outside world as if they are just one, allowing you to spread the workload around. Pound proxy is NOT a caching proxy. By itself it won't help to speed up your server or network, but there is a lot of flexibility in Pound that will help you overall.
memcached
- Memcached is a free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.
- magent is a simple but useful proxy program for memcached servers.
- https://code.facebook.com/posts/296442737213493/introducing-mcrouter-a-memcached-protocol-router-for-scaling-memcached-deployments/ [10]
Redis
See also DB#Redis
- http://www.quora.com/What-are-the-differences-between-memcached-and-redis
- http://systoilet.wordpress.com/2010/08/09/redis-vs-memcached/
- http://helpdesk.getpantheon.com/customer/portal/articles/401317-redis
CDN services
Other
- OpenNOP is an open source Linux based network accelerator. It's designed to optimise network traffic over point-to-point, partially-meshed and full-meshed IP networks. The goal of OpenNOP is to increase network performance over low speed network connections such as ISDN, DSL, DS1, frame-relay, VPN and other network circuits. To accomplish this we can use a variety of techniques such as compression, deduplication, caching and protocol spoofing.
Filesystem
Configuration management
Video streaming
Media
See also Platforms#Digital_media
Push/pull
Superfeedr
Storage
WebDAV
- WebDAV stands for Web Distributed Authoring and Versionin, see RFC 2518
"Linux users can mount WebDAV shares using the davfs2 and the fusedav file system modules which mount them as Coda or FUSE filesystems. KDE has native WebDAV support as part of kio_http. This enables Dolphin, Konqueror, and every other KDE application to interact directly with WebDAV servers. Nautilus also has WebDAV support built in. Many Linux distributions also include the cadaver command-line client interface, which provides an FTP-like command set. The Apache HTTP Server provides WebDAV modules based on both davfs and Apache Subversion (svn)."
- WebDAV Resources - This site is being produced for the WebDAV community as a central resource for documentation, specifications, software, mailing lists, and other useful items.
- Use Linux and WebDAV to Facilitate Online Collaboration - Apache method
- http://linuxsagas.digitaleagle.net/2008/09/09/webdav-and-fstab/
File system
Davfs
- davfs2 provides the ability to access such resources like a typical filesystem, allowing for use by standard applications with no built-in support for WebDAV.
fusedav
- fusedav is a Linux userspace file system driver for mounting WebDAV shares. It makes use of FUSE as userspace file system API and neon as WebDAV API.
- http://owncloud.org/ - Version 5.0 Expected August 2012
Software
- neon is an HTTP and WebDAV client library, with a C interface
- jsDAV allows you to easily add WebDAV support to a NodeJS application.
- DAV-pocket Lab is a small project team developping WebDAV Server on Google App Engine.
- mod_dav is an Apache module to provide DAV capabilities (RFC 2518) for your Apache web server.
- http://www.webdav.org/goliath/
- cadaver is a command-line WebDAV client for Unix. It supports file upload, download, on-screen display, namespace operations (move/copy), collection creation and deletion, and locking operations.
Other
- http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
- http://www.extremetech.com/computing/123929-just-how-big-are-porn-sites