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-iv---relaciones-de-dependencia-padre-hijo">PARTE IV - Relaciones de dependencia (padre-hijo)</a><ul> |
---|
21 | <li><a href="#configurar-padres-en-switches.cfg">1. Configurar padres en switches.cfg</a></li> |
---|
22 | <li><a href="#configurar-padres-en-routers.cfg">2. Configurar padres en routers.cfg</a></li> |
---|
23 | <li><a href="#configurar-padres-en-pcs.cfg">3. Configurar padres en pcs.cfg</a></li> |
---|
24 | <li><a href="#reinicie-nagios-y-vea-el-mapa-de-estado-actualizado">4. Reinicie Nagios y vea el mapa de estado actualizado</a></li> |
---|
25 | </ul></li> |
---|
26 | <li><a href="#parte-v---crear-más-grupos-de-nodos">PARTE V - Crear Más Grupos de Nodos</a><ul> |
---|
27 | <li><a href="#preparación">0. Preparación</a></li> |
---|
28 | <li><a href="#actualice-etcnagios3conf.dhostgroups_nagios2.cfg">1. Actualice /etc/nagios3/conf.d/hostgroups_nagios2.cfg</a></li> |
---|
29 | <li><a href="#vuelva-al-navegador-y-compruebe-que-están-presentes-sus-nuevos-host-groups.">2. Vuelva al navegador y compruebe que están presentes sus nuevos Host Groups.</a></li> |
---|
30 | </ul></li> |
---|
31 | <li><a href="#parte-vi---información-de-nodo-extendida-hacer-los-gráficos-más-bonitos">PARTE VI - Información de Nodo Extendida ("hacer los gráficos más bonitos")</a><ul> |
---|
32 | <li><a href="#actualice-extinfo_nagios2.cfg">1. Actualice extinfo_nagios2.cfg</a></li> |
---|
33 | </ul></li> |
---|
34 | <li><a href="#parte-vii---crear-grupos-de-servicio">PARTE VII - Crear Grupos de Servicio</a><ul> |
---|
35 | <li><a href="#cree-grupos-de-servicio-para-ssh-y-http-para-cada-grupo-de-pcs.">1. Cree grupos de servicio para SSH y HTTP para cada grupo de PCs.</a></li> |
---|
36 | </ul></li> |
---|
37 | <li><a href="#parte-viii---configure-acceso-para-invitados-guest-en-la-interfaz-web-de-nagios">PARTE VIII - Configure acceso para invitados (guest) en la interfaz web de Nagios</a><ul> |
---|
38 | <li><a href="#vamos-a-editar-el-archivo-etcnagios3cgi.cfg-para-dar-acceso-read-only-al-usuario">1. Vamos a editar el archivo /etc/nagios3/cgi.cfg para dar acceso read-only al usuario</a></li> |
---|
39 | <li><a href="#habilitar-comandos-externos-en-nagios.cfg">2. Habilitar comandos externos en nagios.cfg</a></li> |
---|
40 | </ul></li> |
---|
41 | </ul> |
---|
42 | </div> |
---|
43 | <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> |
---|
44 | <h1 id="introducción"><a href="#introducción">Introducción</a></h1> |
---|
45 | <h2 id="metas"><a href="#metas">Metas</a></h2> |
---|
46 | <ul> |
---|
47 | <li>Instalar y Configurar Nagios</li> |
---|
48 | </ul> |
---|
49 | <h2 id="notas"><a href="#notas">Notas</a></h2> |
---|
50 | <ul> |
---|
51 | <li>Los comandos precedidos por "$" implican que debe ejecutar el comando como usuario genérico - no como root</li> |
---|
52 | <li>Los comandos precedidos por "#" implican que debería estar trabajando como usuario root.</li> |
---|
53 | <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> |
---|
54 | </ul> |
---|
55 | <h1 id="ejercicios"><a href="#ejercicios">Ejercicios</a></h1> |
---|
56 | <h1 id="parte-iv---relaciones-de-dependencia-padre-hijo"><a href="#parte-iv---relaciones-de-dependencia-padre-hijo">PARTE IV - Relaciones de dependencia (padre-hijo)</a></h1> |
---|
57 | <p>Cada elemento es hijo de un switch o un router en la red del taller, EXCEPTO su enrutador (rtrX) y los otros miembros de su grupo. Ahora vamos a agregar una directiva "parents" para cada dispositivo que hayamos configurado.</p> |
---|
58 | <p>Si no está seguro de la relación padre-hijo, puede mirar el diagrama de la clase. Recuerde, la relación depende del punto de vista de la instanacia de Nagios en su PC.</p> |
---|
59 | <h2 id="configurar-padres-en-switches.cfg"><a href="#configurar-padres-en-switches.cfg">1. Configurar padres en switches.cfg</a></h2> |
---|
60 | <pre><code>$ cd /etc/nagios3/conf.d |
---|
61 | $ sudo editor switches.cfg</code></pre> |
---|
62 | <p>Actualice la entrada:</p> |
---|
63 | <pre><code>define host { |
---|
64 | use generic-host |
---|
65 | host_name sw |
---|
66 | alias Backbone Switch |
---|
67 | address 10.10.0.253 |
---|
68 | }</code></pre> |
---|
69 | <p>de forma que quede como:</p> |
---|
70 | <pre><code>define host { |
---|
71 | use generic-host |
---|
72 | host_name sw |
---|
73 | alias Backbone Switch |
---|
74 | address 10.10.0.253 |
---|
75 | parents rtrX |
---|
76 | }</code></pre> |
---|
77 | <p>Donde "rtrX" es el enrutador de su grupo. Ej. el grupo 1 usará "rtr1", el grupo 2 "rtr2", etc.</p> |
---|
78 | <p>Grabe y salga del editor.</p> |
---|
79 | <h2 id="configurar-padres-en-routers.cfg"><a href="#configurar-padres-en-routers.cfg">2. Configurar padres en routers.cfg</a></h2> |
---|
80 | <pre><code>$ sudo editor routers.cfg</code></pre> |
---|
81 | <p>Para cada entrada agregaremos la línea "parents". O sea, que la definición de gw al comienzo del archivo, debería verse así:</p> |
---|
82 | <pre><code>define host { |
---|
83 | use generic-host |
---|
84 | host_name gw |
---|
85 | alias Classroom Gateway Router |
---|
86 | address 10.10.0.254 |
---|
87 | parents sw |
---|
88 | }</code></pre> |
---|
89 | <p>Para todas las entradas rtrX restantes, excepto para tu grupo, debería, también, agregar una línea que diga:</p> |
---|
90 | <pre><code> parents sw</code></pre> |
---|
91 | <p>NO DEBE HABER UNA ENTRADA PARENTS para tu grupo. Si tiene una entrada para "ap1" (punto de acceso inalámbrico de la clase), entonces su padre es también "sw", igual que los enrutadores.</p> |
---|
92 | <p>De manera que, si está en el grupo 2, las entradas correspondientes a los grupos 1, 2 y 3 serían:</p> |
---|
93 | <pre><code>define host { |
---|
94 | use generic-host |
---|
95 | host_name rtr1 |
---|
96 | alias Group 1 Router |
---|
97 | address 10.10.1.254 |
---|
98 | parents sw |
---|
99 | } |
---|
100 | |
---|
101 | define host { |
---|
102 | use generic-host |
---|
103 | host_name rtr2 |
---|
104 | alias Group 2 Router |
---|
105 | address 10.10.2.254 |
---|
106 | } |
---|
107 | |
---|
108 | define host { |
---|
109 | use generic-host |
---|
110 | host_name rtr3 |
---|
111 | alias Group 3 Router |
---|
112 | address 10.10.3.254 |
---|
113 | parents sw |
---|
114 | }</code></pre> |
---|
115 | <p>Actualice el resto del archivo correctamente, y luego grabe y salga del editor.</p> |
---|
116 | <h2 id="configurar-padres-en-pcs.cfg"><a href="#configurar-padres-en-pcs.cfg">3. Configurar padres en pcs.cfg</a></h2> |
---|
117 | <p>Para todas las entradas de PCs debes añadir una línea "parents" con el enrutador del grupo del PC, EXCEPTO PARA TU GRUPO. No debe haber entrada "parents" para los PCs en tu grupo.</p> |
---|
118 | <p>Para el NOC so padre el el switch de core o "sw".</p> |
---|
119 | <pre><code># |
---|
120 | # Classroom NOC |
---|
121 | # |
---|
122 | |
---|
123 | define host { |
---|
124 | use generic-host |
---|
125 | host_name noc |
---|
126 | alias Servidor NOC del taller |
---|
127 | address 10.10.0.250 |
---|
128 | parents sw |
---|
129 | } |
---|
130 | |
---|
131 | |
---|
132 | Para las PCs del grupo 1, debería ser: |
---|
133 | |
---|
134 | |
---|
135 | # |
---|
136 | # Group 1 |
---|
137 | # |
---|
138 | |
---|
139 | define host { |
---|
140 | use generic-host |
---|
141 | host_name pc1 |
---|
142 | alias pc1 |
---|
143 | address 10.10.1.1 |
---|
144 | parents rtr1 |
---|
145 | } |
---|
146 | |
---|
147 | define host { |
---|
148 | use generic-host |
---|
149 | host_name pc2 |
---|
150 | alias pc2 |
---|
151 | address 10.10.1.2 |
---|
152 | parents rtr1 |
---|
153 | } |
---|
154 | </code></pre> |
---|
155 | <p>etc</p> |
---|
156 | <p>Haga esto con todas las PCs de los grupos restantes. Por ejemplo, pc5 en el grupo 2 tendrá:</p> |
---|
157 | <pre><code> parents rtr2</code></pre> |
---|
158 | <p>Solamente recuerde NO AÑADIR un línea "parents" para las PCs de tu grupo.</p> |
---|
159 | <p>Guarde y salga del fichero.</p> |
---|
160 | <h2 id="reinicie-nagios-y-vea-el-mapa-de-estado-actualizado"><a href="#reinicie-nagios-y-vea-el-mapa-de-estado-actualizado">4. Reinicie Nagios y vea el mapa de estado actualizado</a></h2> |
---|
161 | <pre><code>$ sudo service nagios3 restart</code></pre> |
---|
162 | <p>Si tiene errores, corríjalos y trate de reiniciar de nuevo.</p> |
---|
163 | <p>Con el navegador, vaya a http://pcN.ws.nsrc.org/nagios3 y vaya al enlace "Map" de la izquierda. Su mapa debería verse bastante diferente. Debería ver un mapa que representa la red desde el punto de vista de Nagios.</p> |
---|
164 | <h1 id="parte-v---crear-más-grupos-de-nodos"><a href="#parte-v---crear-más-grupos-de-nodos">PARTE V - Crear Más Grupos de Nodos</a></h1> |
---|
165 | <h2 id="preparación"><a href="#preparación">0. Preparación</a></h2> |
---|
166 | <p>En la interfaz web, vaya a los enlaces "Hostgroup Overview", "Hostgroup Summary", "Hostgroup Grid". Esto muestra una forma conveniente de agrupar nodos relacionados (ej. si están en la misma ubicación, o si son para el mismo propósito).</p> |
---|
167 | <h2 id="actualice-etcnagios3conf.dhostgroups_nagios2.cfg"><a href="#actualice-etcnagios3conf.dhostgroups_nagios2.cfg">1. Actualice /etc/nagios3/conf.d/hostgroups_nagios2.cfg</a></h2> |
---|
168 | <p>Para los siguientes ejercicios será útil si actualizamos o creamos los siguientes grupos de nodos:</p> |
---|
169 | <pre><code> debian-servers |
---|
170 | routers |
---|
171 | switches</code></pre> |
---|
172 | <p>Si edita el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg, verá una sección debian-servers que sólo contiene a localhost. Actualice esta entrada para añadir todas las PCs del taller, incluyendo el NOC(asumiendo que ha creado una entrada "noc" en su pcs.cfg). Recuerde saltar la entrada de su PC, ya que está representada por localhost.</p> |
---|
173 | <pre><code>$ sudo editor /etc/nagios3/conf.d/hostgroups_nagios2.cfg</code></pre> |
---|
174 | <p>Actualice la entrada que dice:</p> |
---|
175 | <pre><code># A list of your Debian GNU/Linux servers |
---|
176 | define hostgroup { |
---|
177 | hostgroup_name debian-servers |
---|
178 | alias Debian GNU/Linux Servers |
---|
179 | members localhost |
---|
180 | }</code></pre> |
---|
181 | <p>Para que el parámetro "members" contenga algo como lo que sigue. Use el diagrama de red de su clase para confirmar el número exacto de máquinas y nombres en su taller.</p> |
---|
182 | <pre><code> members localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pc10,pc11,pc12, \ |
---|
183 | pc13,pc14,pc15,pc16,pc17,pc18,pc19,pc20,pc21,pc22,pc23,pc24,pc25,\ |
---|
184 | pc26,pc27,pc28,pc29,pc30,pc31,pc32,pc33,pc34,pc35,pc36</code></pre> |
---|
185 | <p>Asegúrese de poner una "" al final de cada línea. De lo contrario obtendrá un error cuando reinicie Nagios. Recuerde que su propia PC es "localhost", así que debe saltar esa entrada.</p> |
---|
186 | <p>Una vez hecho esto, agregue un grupo de nodos más para el/los switch(es) del taller. Si hay más de un switch (sw.ws.nsrc.org), incluya esto en la línea "members" de más abajo, de lo contrario la entrada en hostgroups_nagios3.cfg debería ser como sigue (COPIAR Y PEGAR):</p> |
---|
187 | <pre><code># A list of our switches |
---|
188 | define hostgroup { |
---|
189 | hostgroup_name switches |
---|
190 | alias Classroom Switches |
---|
191 | members sw |
---|
192 | }</code></pre> |
---|
193 | <p>Cuando termine no olvide verificar y reiniciar Nagios.</p> |
---|
194 | <h2 id="vuelva-al-navegador-y-compruebe-que-están-presentes-sus-nuevos-host-groups."><a href="#vuelva-al-navegador-y-compruebe-que-están-presentes-sus-nuevos-host-groups.">2. Vuelva al navegador y compruebe que están presentes sus nuevos Host Groups.</a></h2> |
---|
195 | <h1 id="parte-vi---información-de-nodo-extendida-hacer-los-gráficos-más-bonitos"><a href="#parte-vi---información-de-nodo-extendida-hacer-los-gráficos-más-bonitos">PARTE VI - Información de Nodo Extendida ("hacer los gráficos más bonitos")</a></h1> |
---|
196 | <h2 id="actualice-extinfo_nagios2.cfg"><a href="#actualice-extinfo_nagios2.cfg">1. Actualice extinfo_nagios2.cfg</a></h2> |
---|
197 | <p>Si quiere usar los iconos correspondientes para cada nodo definido en Nagios éste es el sitio para hacerlo. Tenemos tres tipos de dispositivos:</p> |
---|
198 | <ul> |
---|
199 | <li>Enrutadores Cisco</li> |
---|
200 | <li>Switches Cisco</li> |
---|
201 | <li>Servidores Ubuntu</li> |
---|
202 | </ul> |
---|
203 | <p>Hay un repositorio bastante grande con imágenes para iconos disponible aquí:</p> |
---|
204 | <pre><code>/usr/share/nagios/htdocs/images/logos/</code></pre> |
---|
205 | <p>Estos iconos se instalan por defecto como paquetes dependientes del nagios3 en Ubuntu. En algunos casos encontrará iconos específicos al modelo de su hardware, pero para hacer las cosas más simples usaremos los siguientes iconos para nuestro hardware:</p> |
---|
206 | <pre><code>/usr/share/nagios/htodcs/images/logos/base/debian.* |
---|
207 | /usr/share/nagios/htdocs/images/logos/cook/router.* |
---|
208 | /usr/share/nagios/htdocs/images/logos/cook/switch.*</code></pre> |
---|
209 | <p>El próximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg e indicar a Nagios cuál imagen debe usar para representar sus dispositivos.</p> |
---|
210 | <pre><code>$ sudo editor /etc/nagios3/conf.d/extinfo_nagios2.cfg</code></pre> |
---|
211 | <p>Así es como se vería una entrada de enrutador (ya existe una entrada para debian-servers que funciona tal cual). Note que el modelo de enrutador (3600) no es tan importante. La imagen representa un enrutador en general.</p> |
---|
212 | <pre><code>define hostextinfo { |
---|
213 | hostgroup_name routers |
---|
214 | icon_image cook/router.png |
---|
215 | icon_image_alt Cisco Routers (7200) |
---|
216 | vrml_image router.png |
---|
217 | statusmap_image cook/router.gd2 |
---|
218 | }</code></pre> |
---|
219 | <p>Note que podemos simplemente usar "hostgroup_name routers", ya que éste ya ha sido definido en el archivo hostgroups_nagios2.cfg. Esto hace que configurar múltiples elementos semejantes sea más fácil.</p> |
---|
220 | <p>Ahora agregue una entrada para sus switches. Cuando termine, revise sus cambios y reinicie Nagios. Eche un vistazo al mapa de estado (Status Map) en la interfaz web. Debería verse mucho más bonito, con iconos en vez de símbolos de interrogación para la mayoría de los elementos.</p> |
---|
221 | <h1 id="parte-vii---crear-grupos-de-servicio"><a href="#parte-vii---crear-grupos-de-servicio">PARTE VII - Crear Grupos de Servicio</a></h1> |
---|
222 | <h2 id="cree-grupos-de-servicio-para-ssh-y-http-para-cada-grupo-de-pcs."><a href="#cree-grupos-de-servicio-para-ssh-y-http-para-cada-grupo-de-pcs.">1. Cree grupos de servicio para SSH y HTTP para cada grupo de PCs.</a></h2> |
---|
223 | <p>La idea aquí es crear tres grupos de servicios. Cada grupo de servicio será para una cuarta parte del taller. Queremos ver estas PCs agrupadas e incluir el estado de sus servicios SSH y HTTP. Para ello, cree y edite este archivo:</p> |
---|
224 | <pre><code>$ cd /etc/nagios3/conf.d (por si acaso) |
---|
225 | $ sudo editor servicegroups.cfg</code></pre> |
---|
226 | <p>He aquí un ejemplo del grupo de servicios para el grupo 1:</p> |
---|
227 | <pre><code>define servicegroup { |
---|
228 | servicegroup_name group1-services |
---|
229 | alias group 1 services |
---|
230 | members pc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP |
---|
231 | }</code></pre> |
---|
232 | <p>Fíjese que si la línea de miembros es muy larga, puede usar "" al final para continuar en la línea de abajo.</p> |
---|
233 | <p>Note que "SSH" y "HTTP" necesitan estar en mayúsculas, ya que así es como están definidas en el service_description del archivo /etc/nagios3/conf.d/services_nagios2.cfg</p> |
---|
234 | <p>Añada una entrada para otros grupos de servidores también.</p> |
---|
235 | <p>CRITICO: Cuando cree una entrada para su grupo, recuerde usar "localhost" en lugar del nombre de su PC "pcN", ya que sólo ha definido su PC como "localhost" en el archivo hostgroups_nagios2.cfg.</p> |
---|
236 | <p>Guarde y verifique sus cambios y reinicie Nagios. Ahora, si oprime el enlace de Service Groups en el menú de la interfaz web, debería ver esta información agrupada.</p> |
---|
237 | <h1 id="parte-viii---configure-acceso-para-invitados-guest-en-la-interfaz-web-de-nagios"><a href="#parte-viii---configure-acceso-para-invitados-guest-en-la-interfaz-web-de-nagios">PARTE VIII - Configure acceso para invitados (guest) en la interfaz web de Nagios</a></h1> |
---|
238 | <h2 id="vamos-a-editar-el-archivo-etcnagios3cgi.cfg-para-dar-acceso-read-only-al-usuario"><a href="#vamos-a-editar-el-archivo-etcnagios3cgi.cfg-para-dar-acceso-read-only-al-usuario">1. Vamos a editar el archivo /etc/nagios3/cgi.cfg para dar acceso read-only al usuario</a></h2> |
---|
239 | <p>"guest" en la interfaz web de Nagios</p> |
---|
240 | <p>Nagios por defecto está configurado para dar acceso completo (r/w) a travás de la interfaz web al usuario "nagiosadmin". Puede cambiar el nombre de este usuario, agregar otros usuarios, cambiar cómo se autentifican los usuarios, qué usuarios tienen acceso a qué recursos y mucho más, por medio del archivo cgi.cfg.</p> |
---|
241 | <p>Primero, vamos a crear el usuario "guest" y un password en el archivo httpasswd.users.</p> |
---|
242 | <pre><code>$ sudo htpasswd /etc/nagios3/htpasswd.users guest</code></pre> |
---|
243 | <p>You can use any password you want (or none). A password of "guest" is not a bad choice.</p> |
---|
244 | <p>Puede usar cualquier password que quiera (o ninguno). Por ejemplo, el password "guest" sería una buena opción.</p> |
---|
245 | <p>Siguiente, edite el archivo /etc/nagios3/cgi.cfg y busque qué tipo de acceso se le ha asignado al usuario nagiosadmin. Por defecto, verá las siguientes directivas (note que hay comentarios entre cada directiva):</p> |
---|
246 | <pre><code>authorized_for_system_information=nagiosadmin |
---|
247 | authorized_for_configuration_information=nagiosadmin |
---|
248 | authorized_for_system_commands=nagiosadmin |
---|
249 | authorized_for_all_services=nagiosadmin |
---|
250 | authorized_for_all_hosts=nagiosadmin |
---|
251 | authorized_for_all_service_commands=nagiosadmin |
---|
252 | authorized_for_all_host_commands=nagiosadmin</code></pre> |
---|
253 | <p>Ahora digámosle a Nagios que permita al usuario "guest" tener algo de acceso a la información a través de la interfaz web. Puede elegir lo que desee, pero lo que sería más típico es:</p> |
---|
254 | <pre><code>authorized_for_system_information=nagiosadmin,guest |
---|
255 | authorized_for_configuration_information=nagiosadmin,guest |
---|
256 | authorized_for_system_commands=nagiosadmin |
---|
257 | authorized_for_all_services=nagiosadmin,guest |
---|
258 | authorized_for_all_hosts=nagiosadmin,guest |
---|
259 | authorized_for_all_service_commands=nagiosadmin |
---|
260 | authorized_for_all_host_commands=nagiosadmin</code></pre> |
---|
261 | <p>Note que no damos al usuario guest acceso a los comandos de sistema, comandos de servicio ni comandos de host.</p> |
---|
262 | <p>Al terminar los cambios, grabe el archivo cgi.cfg, verifique y reinicie Nagios.</p> |
---|
263 | <p>Para ver si puede ingresar como "guest", deberá eliminar sus "cookies" del navegador, o abrir un navegador alternativo si lo tiene. No notará ninguna diferencia en la interfaz web. La diferencia está en que algunas de las opciones disponibles en el menú no funcionarán (por ejemplo, forzar un chequeo de nodo o servicio, programación de chequeos, comentarios, etc).</p> |
---|
264 | <h2 id="habilitar-comandos-externos-en-nagios.cfg"><a href="#habilitar-comandos-externos-en-nagios.cfg">2. Habilitar comandos externos en nagios.cfg</a></h2> |
---|
265 | <p>Este cambio es necesario a fin de permitir a los usuarios "Confirmar" problemas con los hosts y servicios en la interfaz Web. Los permisos de archivo predeterminados se configuran de una forma segura para evitar que se pueda actualizar Nagios desde la interfaz web, por lo que es necesario configurar estos permisos de forma un poco más permisiva.</p> |
---|
266 | <p>En primer lugar, editar el fichero "/etc/nagios3/nagios.cfg", y cambiar la línea:</p> |
---|
267 | <pre><code> check_external_commands=0</code></pre> |
---|
268 | <p>a</p> |
---|
269 | <pre><code> check_external_commands=1</code></pre> |
---|
270 | <p>Guarde el archivo y salga.</p> |
---|
271 | <p>A continuación, ejecute los siguientes comandos para cambiar permisos de directorio y para hacer permanentes los cambios:</p> |
---|
272 | <pre><code>$ sudo /etc/init.d/nagios3 stop |
---|
273 | $ sudo dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw |
---|
274 | $ sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3 |
---|
275 | $ sudo /etc/init.d/nagios3 start</code></pre> |
---|
276 | <p>Una vez hecho esto, vaya a "problemas" > "Servicios (no controlado)" y busque un servicio en el estado rojo (crítico) o amarillo (advertencia). Haga clic en el nombre del servicio. A continuación, en "Comandos de servicio", haga clic en "Confirmar este problema de servicio".</p> |
---|
277 | <p>El problema debe desaparecer de la lista de problemas no controlados.</p> |
---|
278 | </body> |
---|
279 | </html> |
---|