1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
2 | <html xmlns="http://www.w3.org/1999/xhtml"> |
---|
3 | <head> |
---|
4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
---|
5 | <meta http-equiv="Content-Style-Type" content="text/css" /> |
---|
6 | <meta name="generator" content="pandoc" /> |
---|
7 | <title></title> |
---|
8 | <style type="text/css">code{white-space: pre;}</style> |
---|
9 | <link href="data:text/css,%2F%2A%0A%20%20%20%20Buttondown%0A%20%20%20%20A%20Markdown%2FMultiMarkdown%2FPandoc%20HTML%20output%20CSS%20stylesheet%0A%20%20%20%20Author%3A%20Ryan%20Gray%0A%20%20%20%20Date%3A%2015%20Feb%202011%0A%20%20%20%20Revised%3A%2021%20Feb%202012%0A%20%20%20%0A%20%20%20%20General%20style%20is%20clean%2C%20with%20minimal%20re%2Ddefinition%20of%20the%20defaults%20or%20%0A%20%20%20%20overrides%20of%20user%20font%20settings%2E%20The%20body%20text%20and%20header%20styles%20are%20%0A%20%20%20%20left%20alone%20except%20title%2C%20author%20and%20date%20classes%20are%20centered%2E%20A%20Pandoc%20TOC%20%0A%20%20%20%20is%20not%20printed%2C%20URLs%20are%20printed%20after%20hyperlinks%20in%20parentheses%2E%20%0A%20%20%20%20Block%20quotes%20are%20italicized%2E%20Tables%20are%20lightly%20styled%20with%20lines%20above%20%0A%20%20%20%20and%20below%20the%20table%20and%20below%20the%20header%20with%20a%20boldface%20header%2E%20Code%20%0A%20%20%20%20blocks%20are%20line%20wrapped%2E%20%0A%20%0A%20%20%20%20All%20elements%20that%20Pandoc%20and%20MultiMarkdown%20use%20should%20be%20listed%20here%2C%20even%20%0A%20%20%20%20if%20the%20style%20is%20empty%20so%20you%20can%20easily%20add%20styling%20to%20anything%2E%0A%20%20%20%20%0A%20%20%20%20There%20are%20some%20elements%20in%20here%20for%20HTML5%20output%20of%20Pandoc%2C%20but%20I%20have%20not%20%0A%20%20%20%20gotten%20around%20to%20testing%20that%20yet%2E%0A%2A%2F%0A%20%0A%2F%2A%20NOTES%3A%0A%20%0A%20%20%20%20Stuff%20tried%20and%20failed%3A%0A%20%20%20%20%0A%20%20%20%20It%20seems%20that%20specifying%20font%2Dfamily%3Aserif%20in%20Safari%20will%20always%20use%20%0A%20%20%20%20Times%20New%20Roman%20rather%20than%20the%20user%27s%20preferences%20setting%2E%0A%20%20%20%20%0A%20%20%20%20Making%20the%20font%20size%20different%20or%20a%20fixed%20value%20for%20print%20in%20case%20the%20screen%20%0A%20%20%20%20font%20size%20is%20making%20the%20print%20font%20too%20big%3A%20Making%20font%2Dsize%20different%20for%20%0A%20%20%20%20print%20than%20for%20screen%20causes%20horizontal%20lines%20to%20disappear%20in%20math%20when%20using%20%0A%20%20%20%20MathJax%20under%20Safari%2E%0A%2A%2F%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Front%20Matter%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20Pandoc%20header%20DIV%2E%20Contains%20%2Etitle%2C%20%2Eauthor%20and%20%2Edate%2E%20Comes%20before%20div%23TOC%2E%20%0A%20%20%20Only%20appears%20if%20one%20of%20those%20three%20are%20in%20the%20document%2E%0A%2A%2F%0A%20%0Adiv%23header%2C%20header%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%2E%20Separates%20it%20from%20TOC%20or%20body%20that%20comes%20after%20it%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%2Etitle%20%2F%2A%20Pandoc%20title%20header%20%28h1%2Etitle%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2Eauthor%2C%20%2Edate%20%2F%2A%20Pandoc%20author%28s%29%20and%20date%20headers%20%28h2%2Eauthor%20and%20h3%2Edate%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Pandoc%20table%20of%20contents%20DIV%20when%20using%20the%20%2D%2Dtoc%20option%2E%0A%20%20%20NOTE%3A%20this%20doesn%27t%20support%20Pandoc%27s%20%2D%2Did%2Dprefix%20option%20for%20%23TOC%20and%20%23header%2E%20%0A%20%20%20Probably%20would%20need%20to%20use%20div%5Bid%24%3D%27TOC%27%5D%20and%20div%5Bid%24%3D%27header%27%5D%20as%20selectors%2E%0A%2A%2F%0A%20%0Adiv%23TOC%2C%20nav%23TOC%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%20to%20separate%20it%20from%20body%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20div%23TOC%2C%20nav%23TOC%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20TOC%20in%20print%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Headers%20and%20sections%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%0A%7B%0A%20%20%20%20font%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20%22Liberation%20Sans%22%2C%20Calibri%2C%20Arial%2C%20sans%2Dserif%3B%20%2F%2A%20Sans%2Dserif%20headers%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20font%2Dfamily%3A%20%22Liberation%20Serif%22%2C%20%22Georgia%22%2C%20%22Times%20New%20Roman%22%2C%20serif%3B%20%2F%2A%20Serif%20headers%20%2A%2F%0A%20%0A%20%20%20%20page%2Dbreak%2Dafter%3A%20avoid%3B%20%2F%2A%20Firefox%2C%20Chrome%2C%20and%20Safari%20do%20not%20support%20the%20property%20value%20%22avoid%22%20%2A%2F%0A%7D%0A%20%0A%2F%2A%20Pandoc%20with%20%2D%2Dsection%2Ddivs%20option%20%2A%2F%0A%20%0Adiv%20div%2C%20section%20section%20%2F%2A%20Nested%20sections%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dleft%3A%202em%3B%20%2F%2A%20This%20will%20increasingly%20indent%20nested%20header%20sections%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Ap%20%7B%7D%0A%20%0Ablockquote%0A%20%20%20%20%7B%20%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ali%20%2F%2A%20All%20list%20items%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ali%20%3E%20p%20%2F%2A%20Loosely%20spaced%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dtop%3A%201em%3B%20%2F%2A%20IE%3A%20lack%20of%20space%20above%20a%20%3Cli%3E%20when%20the%20item%20is%20inside%20a%20%3Cp%3E%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Aul%20%2F%2A%20Whole%20unordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aul%20li%20%2F%2A%20Unordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20%2F%2A%20Whole%20ordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20li%20%2F%2A%20Ordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ahr%20%7B%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Some%20span%20elements%20%2D%2D%2D%20%2A%2F%0A%20%0Asub%20%2F%2A%20Subscripts%2E%20Pandoc%3A%20H%7E2%7EO%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Asup%20%2F%2A%20Superscripts%2E%20Pandoc%3A%20The%202%5End%5E%20try%2E%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%2F%2A%20Emphasis%2E%20Markdown%3A%20%2Aemphasis%2A%20or%20%5Femphasis%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%3E%20em%20%2F%2A%20Emphasis%20within%20emphasis%3A%20%2AThis%20is%20all%20%2Aemphasized%2A%20except%20that%2A%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dstyle%3A%20normal%3B%0A%20%20%20%20%7D%0A%20%0Astrong%20%2F%2A%20Markdown%20%2A%2Astrong%2A%2A%20or%20%5F%5Fstrong%5F%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Links%20%28anchors%29%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%20%2F%2A%20All%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Keep%20links%20clean%2E%20On%20screen%2C%20they%20are%20colored%3B%20in%20print%2C%20they%20do%20nothing%20anyway%2E%20%2A%2F%0A%20%20%20%20text%2Ddecoration%3A%20none%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20a%3Ahover%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20hover%2C%20we%20indicate%20a%20bit%20more%20that%20it%20is%20a%20link%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20text%2Ddecoration%3A%20underline%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20In%20print%2C%20a%20colored%20link%20is%20useless%2C%20so%20un%2Dstyle%20it%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20color%3A%20black%3B%0A%20%20%20%20%20%20%20%20background%3A%20transparent%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20a%5Bhref%5E%3D%22http%3A%2F%2F%22%5D%3Aafter%2C%20a%5Bhref%5E%3D%22https%3A%2F%2F%22%5D%3Aafter%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20However%2C%20links%20that%20go%20somewhere%20else%2C%20might%20be%20useful%20to%20the%20reader%2C%0A%20%20%20%20%20%20%20%20%20%20%20so%20for%20http%20and%20https%20links%2C%20print%20the%20URL%20after%20what%20was%20the%20link%20%0A%20%20%20%20%20%20%20%20%20%20%20text%20in%20parens%0A%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20content%3A%20%22%20%28%22%20attr%28href%29%20%22%29%20%22%3B%0A%20%20%20%20%20%20%20%20font%2Dsize%3A%2090%25%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Images%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aimg%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Let%20it%20be%20inline%20left%2Fright%20where%20it%20wants%20to%20be%2C%20but%20verticality%20make%20%0A%20%20%20%20%20%20%20it%20in%20the%20middle%20to%20look%20nicer%2C%20but%20opinions%20differ%2C%20and%20if%20in%20a%20multi%2Dline%20%0A%20%20%20%20%20%20%20paragraph%2C%20it%20might%20not%20be%20so%20great%2E%20%0A%20%20%20%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20middle%3B%0A%20%20%20%20%7D%0A%20%0Adiv%2Efigure%20%2F%2A%20Pandoc%20figure%2Dstyle%20image%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Center%20the%20image%20and%20caption%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ap%2Ecaption%20%2F%2A%20Pandoc%20figure%2Dstyle%20caption%20within%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Inherits%20div%2Efigure%20props%20by%20default%20%2A%2F%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Code%20blocks%20and%20spans%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Apre%2C%20code%20%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23fdf7ee%3B%0A%20%20%20%20%2F%2A%20BEGIN%20word%20wrap%20%2A%2F%0A%20%20%20%20%2F%2A%20Need%20all%20the%20following%20to%20word%20wrap%20instead%20of%20scroll%20box%20%2A%2F%0A%20%20%20%20%2F%2A%20This%20will%20override%20the%20overflow%3Aauto%20if%20present%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20pre%2Dwrap%3B%20%2F%2A%20css%2D3%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dmoz%2Dpre%2Dwrap%20%21important%3B%20%2F%2A%20Mozilla%2C%20since%201999%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%204%2D6%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Do%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%207%20%2A%2F%0A%20%20%20%20word%2Dwrap%3A%20break%2Dword%3B%20%2F%2A%20Internet%20Explorer%205%2E5%2B%20%2A%2F%0A%20%20%20%20%2F%2A%20END%20word%20wrap%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Apre%20%2F%2A%20Code%20blocks%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Distinguish%20pre%20blocks%20from%20other%20text%20by%20more%20than%20the%20font%20with%20a%20background%20tint%2E%20%2A%2F%0A%20%20%20%20padding%3A%200%2E5em%3B%20%2F%2A%20Since%20we%20have%20a%20background%20color%20%2A%2F%0A%20%20%20%20border%2Dradius%3A%205px%3B%20%2F%2A%20Softens%20it%20%2A%2F%0A%20%20%20%20%2F%2A%20Give%20it%20a%20some%20definition%20%2A%2F%0A%20%20%20%20border%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20%2F%2A%20Set%20it%20off%20left%20and%20right%2C%20seems%20to%20look%20a%20bit%20nicer%20when%20we%20have%20a%20background%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20%200%2E5em%3B%0A%20%20%20%20margin%2Dright%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20pre%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20screen%2C%20use%20an%20auto%20scroll%20box%20for%20long%20lines%2C%20unless%20word%2Dwrap%20is%20enabled%20%2A%2F%0A%20%20%20%20%20%20%20%20white%2Dspace%3A%20pre%3B%0A%20%20%20%20%20%20%20%20overflow%3A%20auto%3B%0A%20%20%20%20%20%20%20%20%2F%2A%20Dotted%20looks%20better%20on%20screen%20and%20solid%20seems%20to%20print%20better%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20border%3A%201px%20dotted%20%23777%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0Acode%20%2F%2A%20All%20inline%20code%20spans%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%2F%2A%20Code%20spans%20in%20paragraphs%20and%20tight%20lists%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Pad%20a%20little%20from%20adjacent%20text%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%202px%3B%0A%20%20%20%20padding%2Dright%3A%202px%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Ali%20%3E%20p%20code%20%2F%2A%20Code%20span%20in%20a%20loose%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20We%20have%20room%20for%20some%20more%20background%20color%20above%20and%20below%20%2A%2F%0A%20%20%20%20padding%3A%202px%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Math%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aspan%2Emath%20%2F%2A%20Pandoc%20inline%20math%20default%20and%20%2D%2Djsmath%20inline%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Tried%20font%2Dstyle%3Aitalic%20here%2C%20and%20it%20messed%20up%20MathJax%20rendering%20in%20some%20browsers%2E%20Maybe%20don%27t%20mess%20with%20at%20all%2E%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Emath%20%2F%2A%20Pandoc%20%2D%2Djsmath%20display%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aspan%2ELaTeX%20%2F%2A%20Pandoc%20%2D%2Dlatexmathml%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Aeq%20%2F%2A%20Pandoc%20%2D%2Dgladtex%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Tables%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20%20A%20clean%20textbook%2Dlike%20style%20with%20horizontal%20lines%20above%20and%20below%20and%20under%20%0A%20%20%20%20the%20header%2E%20Rows%20highlight%20on%20hover%20to%20help%20scanning%20the%20table%20on%20screen%2E%0A%2A%2F%0A%20%0Atable%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dcollapse%3A%20collapse%3B%0A%20%20%20%20border%2Dspacing%3A%200%3B%20%2F%2A%20IE%206%20%2A%2F%0A%20%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20%23000%3B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20%23000%3B%20%2F%2A%20The%20caption%20on%20top%20will%20not%20have%20a%20bottom%2Dborder%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20Center%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Athead%20%2F%2A%20Entire%20table%20header%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dbottom%3A%201pt%20solid%20%23000%3B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%20%2F%2A%20Does%20this%20BG%20print%20well%3F%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Atr%2Eheader%20%2F%2A%20Each%20header%20row%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Atbody%20%2F%2A%20Entire%20table%20%20body%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Table%20body%20rows%20%2A%2F%0A%20%0Atr%20%20%7B%0A%20%20%20%20%7D%0Atr%2Eodd%3Ahover%2C%20tr%2Eeven%3Ahover%20%2F%2A%20Use%20%2Eodd%20and%20%2Eeven%20classes%20to%20avoid%20styling%20rows%20in%20other%20tables%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Odd%20and%20even%20rows%20%2A%2F%0Atr%2Eodd%20%7B%7D%0Atr%2Eeven%20%7B%7D%0A%20%0Atd%2C%20th%20%2F%2A%20Table%20cells%20and%20table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%20%0A%20%20%20%20vertical%2Dalign%3A%20top%3B%20%2F%2A%20Word%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20baseline%3B%20%2F%2A%20Others%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%20%200%2E5em%3B%0A%20%20%20%20padding%2Dright%3A%20%200%2E5em%3B%0A%20%20%20%20padding%2Dtop%3A%20%20%20%200%2E2em%3B%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Removes%20padding%20on%20left%20and%20right%20of%20table%20for%20a%20tight%20look%2E%20Good%20if%20thead%20has%20no%20background%20color%2A%2F%0A%2F%2A%0Atr%20td%3Alast%2Dchild%2C%20tr%20th%3Alast%2Dchild%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dright%3A%200%3B%0A%20%20%20%20%7D%0Atr%20td%3Afirst%2Dchild%2C%20tr%20th%3Afirst%2Dchild%20%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dleft%3A%200%3B%0A%20%20%20%20%7D%0A%2A%2F%0A%20%0Ath%20%2F%2A%20Table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%20%0A%20%20%20%20%7D%0A%20%0Atfoot%20%2F%2A%20Table%20footer%20%28what%20appears%20here%20if%20caption%20is%20on%20top%3F%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Acaption%20%2F%2A%20This%20is%20for%20a%20table%20caption%20tag%2C%20not%20the%20p%2Ecaption%20Pandoc%20uses%20in%20a%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20caption%2Dside%3A%20top%3B%0A%20%20%20%20border%3A%20none%3B%0A%20%20%20%20font%2Dsize%3A%200%2E9em%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E3em%3B%20%2F%2A%20Good%20for%20when%20on%20top%20%2A%2F%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Definition%20lists%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Adl%20%2F%2A%20The%20whole%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20black%3B%0A%20%20%20%20%7D%0A%20%0Adt%20%2F%2A%20Definition%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdt%20%2F%2A%202nd%20or%20greater%20term%20in%20the%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Add%20%2F%2A%20A%20definition%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdd%20%2F%2A%202nd%20or%20greater%20definition%20of%20a%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201px%20solid%20black%3B%20%2F%2A%20To%20separate%20multiple%20definitions%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20%2D%2D%2D%2D%20Footnotes%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%2Efootnote%2C%20a%2EfootnoteRef%20%7B%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20footnote%20links%20%2A%2F%0A%20%20%20%20font%2Dsize%3A%20small%3B%20%0A%20%20%20%20vertical%2Dalign%3A%20text%2Dtop%3B%0A%7D%0A%20%0Aa%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%2C%20%3F%3F%20footnote%20back%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20%2A%2F%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20these%20at%20all%20in%20print%20since%20the%20arrow%20is%20only%20something%20to%20click%20on%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20%2F%2A%20Pandoc%20footnotes%20div%20at%20end%20of%20the%20document%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20li%5Bid%5E%3D%22fn%22%5D%20%2F%2A%20A%20footnote%20item%20within%20that%20div%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20You%20can%20class%20stuff%20as%20%22noprint%22%20to%20not%20print%2E%20%0A%20%20%20Useful%20since%20you%20can%27t%20set%20this%20media%20conditional%20inside%20an%20HTML%20element%27s%20%0A%20%20%20style%20attribute%20%28I%20think%29%2C%20and%20you%20don%27t%20want%20to%20make%20another%20stylesheet%20that%20%0A%20%20%20imports%20this%20one%20and%20adds%20a%20class%20just%20to%20do%20this%2E%0A%2A%2F%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20%2Enoprint%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20display%3Anone%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A" rel="stylesheet" type="text/css" /> |
---|
10 | </head> |
---|
11 | <body> |
---|
12 | <div id="TOC"> |
---|
13 | <ul> |
---|
14 | <li><a href="#instalación-y-configuración-de-nagios">Instalación y Configuración de Nagios</a></li> |
---|
15 | <li><a href="#introducción">Introducción</a><ul> |
---|
16 | <li><a href="#metas">Metas</a></li> |
---|
17 | <li><a href="#notas">Notas</a></li> |
---|
18 | </ul></li> |
---|
19 | <li><a href="#ejercicios">Ejercicios</a></li> |
---|
20 | <li><a href="#parte-i">PARTE I</a><ul> |
---|
21 | <li><a href="#ingrese-a-su-máquina-virtual-como-usuario-sysadm.">1. Ingrese a su máquina virtual como usuario 'sysadm'.</a></li> |
---|
22 | <li><a href="#instalar-nagios-versión-3">2. Instalar Nagios Versión 3</a></li> |
---|
23 | <li><a href="#observe-la-configuración-inicial-de-nagios">3. Observe la configuración inicial de Nagios</a></li> |
---|
24 | <li><a href="#añadir-routers-pcs-y-switches">4. Añadir Routers, PCs y Switches</a><ul> |
---|
25 | <li><a href="#a.-crear-el-archivo-switches.cfg">4a. Crear el archivo switches.cfg</a></li> |
---|
26 | <li><a href="#b.-crear-el-archivo-routers.cfg">4b. Crear el archivo routers.cfg</a></li> |
---|
27 | <li><a href="#c.-crear-el-archivo-pcs.cfg">4c. Crear el archivo pcs.cfg</a></li> |
---|
28 | </ul></li> |
---|
29 | <li><a href="#los-pasos-5a---5c-deben-repetirese-cada-vez-que-actualice-su-configuración">LOS PASOS 5a - 5c DEBEN REPETIRESE CADA VEZ QUE ACTUALICE SU CONFIGURACIÓN!</a><ul> |
---|
30 | <li><a href="#a.-verifique-que-la-sintaxis-de-sus-archivos-es-correcta">5a. Verifique que la sintaxis de sus archivos es correcta</a></li> |
---|
31 | <li><a href="#b.-reiniciar-nagios">5b. Reiniciar Nagios</a></li> |
---|
32 | <li><a href="#c.-verificar-en-la-interfaz-web">5c. Verificar en la interfaz web</a></li> |
---|
33 | </ul></li> |
---|
34 | <li><a href="#ver-el-mapa-de-estado">6. Ver el mapa de estado</a></li> |
---|
35 | </ul></li> |
---|
36 | <li><a href="#parte-ii---configure-una-comprobación-de-servicio-para-el-servidor-noc-del-taller">PARTE II - Configure una comprobación de servicio para el servidor NOC del taller</a><ul> |
---|
37 | <li><a href="#configuración">0. Configuración</a></li> |
---|
38 | <li><a href="#agregar-una-comprobación-de-servicio-para-el-noc-del-taller">1. Agregar una comprobación de servicio para el NOC del taller</a></li> |
---|
39 | </ul></li> |
---|
40 | <li><a href="#parte-iii---definir-servicios-para-todos-los-pcs">PARTE III - Definir servicios para todos los PCs</a><ul> |
---|
41 | <li><a href="#determine-qué-servicios-definir-para-cada-nodo">1. Determine qué servicios definir para cada nodo</a></li> |
---|
42 | <li><a href="#verificar-ssh-en-las-pcs-y-los-enrutadores">2. Verificar SSH en las PCs y los enrutadores</a></li> |
---|
43 | <li><a href="#comprobar-http-en-todos-los-pcs">3. Comprobar HTTP en todos los PCs</a></li> |
---|
44 | </ul></li> |
---|
45 | </ul> |
---|
46 | </div> |
---|
47 | <h1 id="instalación-y-configuración-de-nagios"><a href="#instalación-y-configuración-de-nagios">Instalación y Configuración de Nagios</a></h1> |
---|
48 | <h1 id="introducción"><a href="#introducción">Introducción</a></h1> |
---|
49 | <h2 id="metas"><a href="#metas">Metas</a></h2> |
---|
50 | <ul> |
---|
51 | <li>Instalar y configurar Nagios</li> |
---|
52 | </ul> |
---|
53 | <h2 id="notas"><a href="#notas">Notas</a></h2> |
---|
54 | <ul> |
---|
55 | <li>Los comandos precedidos por "$" implican que debe ejecutar el comando como usuario genérico - no como root</li> |
---|
56 | <li>Los comandos precedidos por "#" implican que debería estar trabajando como usuario root.</li> |
---|
57 | <li>Los comandos con inicios de línea más específicos como "rtrX>" o "mysql>" indican que debe ejecutar los comandos en un equipo remoto, o dentro de otro programa.</li> |
---|
58 | </ul> |
---|
59 | <h1 id="ejercicios"><a href="#ejercicios">Ejercicios</a></h1> |
---|
60 | <h1 id="parte-i"><a href="#parte-i">PARTE I</a></h1> |
---|
61 | <h2 id="ingrese-a-su-máquina-virtual-como-usuario-sysadm."><a href="#ingrese-a-su-máquina-virtual-como-usuario-sysadm.">1. Ingrese a su máquina virtual como usuario 'sysadm'.</a></h2> |
---|
62 | <h2 id="instalar-nagios-versión-3"><a href="#instalar-nagios-versión-3">2. Instalar Nagios Versión 3</a></h2> |
---|
63 | <pre><code>$ sudo apt-get install nagios3 nagios3-doc</code></pre> |
---|
64 | <p>Durante la instalación se le preguntará por el "Nagios web administration password:" - Este password será para el usuario de Nagios "nagiosadmin". Cuando llegue el momento, escriba el password de su cuenta sysadm.</p> |
---|
65 | <p>Nota: Si no lo ha hecho ya, se le pedirá que configure el MTA Postfix (programa de transferencia de correo) durante el proceso de instalación de Nagios. Simplemente acepte el valor por defecto "Internet Site".</p> |
---|
66 | <h2 id="observe-la-configuración-inicial-de-nagios"><a href="#observe-la-configuración-inicial-de-nagios">3. Observe la configuración inicial de Nagios</a></h2> |
---|
67 | <p>Abra un navegador, y vaya a su servidor así:</p> |
---|
68 | <pre><code>http://pcN.ws.nsrc.org/nagios3/</code></pre> |
---|
69 | <p>En la ventana de login, escriba lo siguiente:</p> |
---|
70 | <pre><code> User Name: nagiosadmin |
---|
71 | Password: <PASSWORD DE LA CLASE></code></pre> |
---|
72 | <p>Oprima el enlace "Hosts" situado a la izquierda de la página inicial de Nagios para ver lo que se ha configurado por defecto.</p> |
---|
73 | <h2 id="añadir-routers-pcs-y-switches"><a href="#añadir-routers-pcs-y-switches">4. Añadir Routers, PCs y Switches</a></h2> |
---|
74 | <p>Crearemos tres archivos, routers.cfg, switches.cfg y pcs.cfg, y añadiremos entradas para el hardware usado en nuestra clase.</p> |
---|
75 | <h3 id="a.-crear-el-archivo-switches.cfg"><a href="#a.-crear-el-archivo-switches.cfg">4a. Crear el archivo switches.cfg</a></h3> |
---|
76 | <pre><code>$ cd /etc/nagios3/conf.d (Solo para estar seguro) |
---|
77 | $ sudo editor switches.cfg</code></pre> |
---|
78 | <p>En este archivo agregue lo siguiente (COPIAR Y PEGAR!):</p> |
---|
79 | <pre><code>define host { |
---|
80 | use generic-host |
---|
81 | host_name sw |
---|
82 | alias Backbone Switch |
---|
83 | address 10.10.0.253 |
---|
84 | }</code></pre> |
---|
85 | <p>Salve el fichero y salga del editor.</p> |
---|
86 | <h3 id="b.-crear-el-archivo-routers.cfg"><a href="#b.-crear-el-archivo-routers.cfg">4b. Crear el archivo routers.cfg</a></h3> |
---|
87 | <p>Tenemos un total de hasta 10 enrutadores. Estos son rtr1-rtr9 y el gw. Además, tenemos 1 o 2 puntos de acceso inalámbrico (ap1, ap2), definiremos entradas para ellos también. Si alguno de estos dispositivos no existe en la red del taller, no lo incluya. Recuerde: COPIAR Y PEGAR!</p> |
---|
88 | <pre><code>$ sudo editor routers.cfg</code></pre> |
---|
89 | <pre><code>define host { |
---|
90 | use generic-host |
---|
91 | host_name gw |
---|
92 | alias Classrooom Gateway Router |
---|
93 | address 10.10.0.254 |
---|
94 | } |
---|
95 | |
---|
96 | define host { |
---|
97 | use generic-host |
---|
98 | host_name rtr1 |
---|
99 | alias Group 1 Gateway Router |
---|
100 | address 10.10.1.254 |
---|
101 | } |
---|
102 | |
---|
103 | define host { |
---|
104 | use generic-host |
---|
105 | host_name rtr2 |
---|
106 | alias Group 2 Gateway Router |
---|
107 | address 10.10.2.254 |
---|
108 | }</code></pre> |
---|
109 | <p>*** Nota: No es necesario añadir las definiciones de todos los routers ahora => siempre puede volver y añadir el resto más tarde! ***</p> |
---|
110 | <pre><code>define host { |
---|
111 | use generic-host |
---|
112 | host_name ap1 |
---|
113 | alias Wireless Access Point 1 |
---|
114 | address 10.10.0.251 |
---|
115 | } |
---|
116 | |
---|
117 | define host { |
---|
118 | use generic-host |
---|
119 | host_name ap2 |
---|
120 | alias Wireless Access Point 2 |
---|
121 | address 10.10.0.252 |
---|
122 | }</code></pre> |
---|
123 | <p>Salve el fichero y salga del editor.</p> |
---|
124 | <h3 id="c.-crear-el-archivo-pcs.cfg"><a href="#c.-crear-el-archivo-pcs.cfg">4c. Crear el archivo pcs.cfg</a></h3> |
---|
125 | <p>Ahora añadiremos algunas máquinas virtuales de nuestra clase. Debajo le damos algunas entradas para comenzar. Debería completar el archivo con tantas PCs como quiera añadir. Le recomendamos que, como mínimo, agregue las 4 PCs de su grupo, así como el NOC del taller y al menos una PC de otro grupo (recuerde COPIAR Y PEGAR!):</p> |
---|
126 | <pre><code>$ sudo editor pcs.cfg</code></pre> |
---|
127 | <pre><code>define host { |
---|
128 | use generic-host |
---|
129 | host_name noc |
---|
130 | alias Servidor NOC del Taller |
---|
131 | address 10.10.0.250 |
---|
132 | } |
---|
133 | |
---|
134 | # |
---|
135 | # Grupo 1 |
---|
136 | # |
---|
137 | |
---|
138 | define host { |
---|
139 | use generic-host |
---|
140 | host_name pc1 |
---|
141 | alias pc1 |
---|
142 | address 10.10.1.1 |
---|
143 | } |
---|
144 | |
---|
145 | define host { |
---|
146 | use generic-host |
---|
147 | host_name pc2 |
---|
148 | alias pc2 |
---|
149 | address 10.10.1.2 |
---|
150 | } |
---|
151 | |
---|
152 | # |
---|
153 | # Otro PC (solo ejemplo!) |
---|
154 | # |
---|
155 | |
---|
156 | define host { |
---|
157 | use generic-host |
---|
158 | host_name pc20 |
---|
159 | alias pc20 |
---|
160 | address 10.10.5.20 |
---|
161 | }</code></pre> |
---|
162 | <p>Puede grabar y salir del editor ahora. Puede añadir más entradas de PCs después.</p> |
---|
163 | <h2 id="los-pasos-5a---5c-deben-repetirese-cada-vez-que-actualice-su-configuración"><a href="#los-pasos-5a---5c-deben-repetirese-cada-vez-que-actualice-su-configuración">LOS PASOS 5a - 5c DEBEN REPETIRESE CADA VEZ QUE ACTUALICE SU CONFIGURACIÓN!</a></h2> |
---|
164 | <h3 id="a.-verifique-que-la-sintaxis-de-sus-archivos-es-correcta"><a href="#a.-verifique-que-la-sintaxis-de-sus-archivos-es-correcta">5a. Verifique que la sintaxis de sus archivos es correcta</a></h3> |
---|
165 | <pre><code>$ sudo nagios3 -v /etc/nagios3/nagios.cfg</code></pre> |
---|
166 | <p>Debería ver algunas advertencias como las mostradas debajo. Puede ignorarlas por ahora.</p> |
---|
167 | <pre><code>Checking services... |
---|
168 | Checked 7 services. |
---|
169 | Checking hosts... |
---|
170 | Warning: Host 'gw' has no services associated with it! |
---|
171 | Warning: Host 'rtr1' has no services associated with it! |
---|
172 | Warning: Host 'rtr2' has no services associated with it! |
---|
173 | |
---|
174 | etc.... |
---|
175 | ... |
---|
176 | Total Warnings: N |
---|
177 | Total Errors: 0</code></pre> |
---|
178 | <p>Todo parece estar bien, no se detectaron problemas serios durante la comprobación. Nagios está diciendo que no es muy normal monitorear un nodo sólo por su existencia en la red, sin monitorear también algún servicio.</p> |
---|
179 | <h3 id="b.-reiniciar-nagios"><a href="#b.-reiniciar-nagios">5b. Reiniciar Nagios</a></h3> |
---|
180 | <pre><code>$ sudo service nagios3 restart</code></pre> |
---|
181 | <p>PISTA: Va a estar haciendo esto muchas veces. Si lo hace en una sola línea, como sigue, entonces puede usar la flecha hacia arriba para repetir el comando:</p> |
---|
182 | <pre><code>$ sudo nagios3 -v /etc/nagios3/nagios.cfg && sudo service nagios3 restart</code></pre> |
---|
183 | <p>El símbolo '&&' es un "AND" lógico y asegura que el reinicio sólo se ejecute si la configuración es válida.</p> |
---|
184 | <h3 id="c.-verificar-en-la-interfaz-web"><a href="#c.-verificar-en-la-interfaz-web">5c. Verificar en la interfaz web</a></h3> |
---|
185 | <p>Vaya a la interfaz web (http://pcN.ws.nsrc.org/nagios3) y compruebe que los nodos que acaba de agregar aparecen en la interfaz. Oprima "Hosts" a la izquierda de la pantalla para verlos. Puede que vea el estado "PENDING" hasta que el chequeo se realice.</p> |
---|
186 | <h2 id="ver-el-mapa-de-estado"><a href="#ver-el-mapa-de-estado">6. Ver el mapa de estado</a></h2> |
---|
187 | <p>Vaya a http://pcN.ws.nsrc.org/nagios3</p> |
---|
188 | <p>Oprima el enlace "Map" en el menú de la izquierda. Debería ver todos sus nodos con el proceso de Nagios en el medio. Los símbolos "?" significan que no hemos indicado a Nagios qué tipo de nodo es cada uno (enrutador, switch, AP, PC corriendo Linux, etc.).</p> |
---|
189 | <h1 id="parte-ii---configure-una-comprobación-de-servicio-para-el-servidor-noc-del-taller"><a href="#parte-ii---configure-una-comprobación-de-servicio-para-el-servidor-noc-del-taller">PARTE II - Configure una comprobación de servicio para el servidor NOC del taller</a></h1> |
---|
190 | <h2 id="configuración"><a href="#configuración">0. Configuración</a></h2> |
---|
191 | <p>Ahora que ya hemos agregado los nodos, podemos comenzar diciendole a Nagios qué servicios monitorear sobre el hardware configurado, como agrupar los nodos de manera útil, como agrupar servicios, etc.</p> |
---|
192 | <h2 id="agregar-una-comprobación-de-servicio-para-el-noc-del-taller"><a href="#agregar-una-comprobación-de-servicio-para-el-noc-del-taller">1. Agregar una comprobación de servicio para el NOC del taller</a></h2> |
---|
193 | <pre><code>$ sudo editor hostgroups_nagios2.cfg</code></pre> |
---|
194 | <ul> |
---|
195 | <li>Busque el hostgroup llamado "ssh-servers". En la sección de "members", cambie la siguiente línea:</li> |
---|
196 | </ul> |
---|
197 | <pre><code>members localhost</code></pre> |
---|
198 | <p>a</p> |
---|
199 | <pre><code>members localhost,noc</code></pre> |
---|
200 | <p>Grabe el fichero editado y salga.</p> |
---|
201 | <p>Verifique que los cambios están bien:</p> |
---|
202 | <pre><code>$ sudo nagios3 -v /etc/nagios3/nagios.cfg</code></pre> |
---|
203 | <p>Reinicie Nagios para ver el nuevo servicio asociado a nuestro nodo:</p> |
---|
204 | <pre><code>$ sudo service nagios3 restart</code></pre> |
---|
205 | <p>En la interfaz web de Nagios encuentre el enlace "Services" (en el menu de la izquierda) y presionelo. Debería poder encontrar los cambios recientes:</p> |
---|
206 | <pre><code>noc SSH PENDING ...</code></pre> |
---|
207 | <h1 id="parte-iii---definir-servicios-para-todos-los-pcs"><a href="#parte-iii---definir-servicios-para-todos-los-pcs">PARTE III - Definir servicios para todos los PCs</a></h1> |
---|
208 | <p>Nota: El "normal_check_interval" por defecto es 5 (minutos) para verificar los servicios. Esto esta definido en "generic-service_nagios2.cfg". Quizá quiera cambiar esto a 1 (1 minuto) para acelerar la detección de problemas en los servicios, al menos para este taller.</p> |
---|
209 | <h2 id="determine-qué-servicios-definir-para-cada-nodo"><a href="#determine-qué-servicios-definir-para-cada-nodo">1. Determine qué servicios definir para cada nodo</a></h2> |
---|
210 | <p>Esto es esencial en el uso de Nagios y herramientas de monitoreo en general. Hasta el momento sólo hemos usado "ping" para saber que el nodo tiene conectividad de red, y hemos configurado un chequeo para un solo nodo (su PC). El siguiente paso es decidir qué servicios (servidor web, SSH, etc.) se quiere monitorear para cada host del taller.</p> |
---|
211 | <p>En esta clase en particular tenemos:</p> |
---|
212 | <ul> |
---|
213 | <li>routers: corriendo ssh y snmp</li> |
---|
214 | <li>switches: corriendo telnet y posiblemente ssh y snmp</li> |
---|
215 | <li>pcs: todos los PCs corren ssh y http y deberían tener snmp. El NOC tiene un agente SNMP</li> |
---|
216 | </ul> |
---|
217 | <p>Entonces vamos a configurar Nagios para chequear estos servicios en estos dispositivos.</p> |
---|
218 | <h2 id="verificar-ssh-en-las-pcs-y-los-enrutadores"><a href="#verificar-ssh-en-las-pcs-y-los-enrutadores">2. Verificar SSH en las PCs y los enrutadores</a></h2> |
---|
219 | <p>En el archivo "services_nagios2.cfg" hay ya una entrada para comprobar el servicio SSH, así que no tiene que crearla en este paso. En su lugar, simplemente tiene que redefinir la entrada "ssh-servers" en el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg. Acabamos de modificar este fichero, añadiendo el host 'noc', de forma que se queda como:</p> |
---|
220 | <pre><code># A list of your ssh-accessible servers |
---|
221 | define hostgroup { |
---|
222 | hostgroup_name ssh-servers |
---|
223 | alias SSH servers |
---|
224 | members localhost,noc |
---|
225 | }</code></pre> |
---|
226 | <p>¿Qué le parece que debería cambiar? Correcto, la línea "members". Debe agregar entradas para cada PC, enrutador y switch de la clase que tenga SSH. Con esta información y con el diagrama de la red debería ser capaz de completar esta entrada.</p> |
---|
227 | <p>La entrada debe verse algo así como:</p> |
---|
228 | <pre><code>define hostgroup { |
---|
229 | hostgroup_name ssh-servers |
---|
230 | alias SSH servers |
---|
231 | members localhost,noc,pc1,pc2,...,ap1,rtr1,rtr2,...,gw |
---|
232 | }</code></pre> |
---|
233 | <p>Nota: no elimine "localhost". Este es su PC y representa el punto de vista de Nagios. Así que, por ejemplo, si usted está en "pc3", no incluya "pc3" en la lista ya que este esta representado por la entrada localhost.</p> |
---|
234 | <p>La entrada "members" será una larga línea y probablemente no cabrá en la pantalla. Si prefiere, puede agregar entradas en líneas adicionales usando el carácter "\" para indicar que la línea continúa, así:</p> |
---|
235 | <p>Recuerde que debe incluir todos los PCs y los routers que se han definido en los archivos "pcs.cfg", "switches.cfg" y "routers.cfg". Sólo añadir entradas a partir de estos archivos (es decir: no añada "PC8" en su lista de hostgroup si "PC8" no está definido en "pcs.cfg" también).</p> |
---|
236 | <p>Una vez que haya terminado, ejecute el chequeo pre-flight y reinicie Nagios:</p> |
---|
237 | <pre><code>$ sudo nagios3 -v /etc/nagios3/nagios.cfg && sudo service nagios3 restart</code></pre> |
---|
238 | <p>... y vea sus cambios en la interfaz web.</p> |
---|
239 | <p>Para continuar con los hostgroups puede agregar grupos adicionales para usar más tarde, por ejemplo, los enrutadores virtuales. Edite el archivo hostgroups_nagios2.cfg de nuevo:</p> |
---|
240 | <pre><code>$ sudo editor hostgroups_nagios2.cfg</code></pre> |
---|
241 | <p>y añada lo siguiente al final del archivo (COPIAR Y PEGAR):</p> |
---|
242 | <pre><code># Una lista de enrutadores virtuales |
---|
243 | |
---|
244 | define hostgroup { |
---|
245 | hostgroup_name routers |
---|
246 | alias Cisco 7200 Routers |
---|
247 | members rtr1,rtr2,... |
---|
248 | }</code></pre> |
---|
249 | <p>Sólo listar los routers que ha definido en el "routers.cfg".</p> |
---|
250 | <p>Guarde y salga del archivo. Verifique que todo está bien:</p> |
---|
251 | <pre><code>$ sudo nagios3 -v /etc/nagios3/nagios.cfg</code></pre> |
---|
252 | <p>Si todo está bien, entonces reinicie Nagios</p> |
---|
253 | <pre><code>$ sudo service nagios3 restart</code></pre> |
---|
254 | <h2 id="comprobar-http-en-todos-los-pcs"><a href="#comprobar-http-en-todos-los-pcs">3. Comprobar HTTP en todos los PCs</a></h2> |
---|
255 | <p>Este paso es prácticamente idéntico al anterior. Simplemente cambie el servicio HTTP para agregar cada PC (no enrutadores ni switches). Recuerde, no es necesario agregar su máquina ya que ésta está definida como "localhost". Busque este hostgroup en el archivo hostgroups_nagios3.cfg y actualice la línea "members" de manera correspondiente.</p> |
---|
256 | <p>Si tiene preguntas o está confundido, por favor no dude en preguntar a un instructor.</p> |
---|
257 | </body> |
---|
258 | </html> |
---|