{"id":1498,"date":"2021-03-11T12:58:00","date_gmt":"2021-03-11T12:58:00","guid":{"rendered":"https:\/\/www.tracston.com\/?page_id=1498"},"modified":"2021-03-15T19:57:24","modified_gmt":"2021-03-15T19:57:24","slug":"project-amdocs-monitoring-self-service","status":"publish","type":"page","link":"https:\/\/www.tracston.com\/index.php\/services\/project-amdocs-monitoring-self-service\/","title":{"rendered":"Project &#8211; Amdocs Monitoring Self Service Solution"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" width=\"297\" height=\"170\" class=\"wp-image-1500 aligncenter\" src=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/image-result-for-amdocs-logo.png\" alt=\"Image result for amdocs logo\" \/><\/p>\n<h1><strong style=\"font-size: inherit;\">Self Service Manager Overview<\/strong><\/h1>\n<p>Self Service project integrates with Grafana as a popup div container and works seamlessly for user integration. The service includes Inventory management for your environment including:<\/p>\n<ul>\n<li>Environments<\/li>\n<li>Hosts Groups<\/li>\n<li>Hosts<\/li>\n<li>Services<\/li>\n<\/ul>\n<p>The Self Service Project allows you to run run various healing actions \/ event handlers against faulty services. Using various methods such as: SSH Commands, Trigger Jenkins Jobs, Run SQL Queries ( Oracle, PostgreSQL, CouchBase etc..) and trigger custom scripts written by user.<\/p>\n<p><strong><img decoding=\"async\" class=\"alignnone wp-image-1501\" src=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image.png\" alt=\"\" width=\"700\" height=\"441\" srcset=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image.png 1024w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-300x189.png 300w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-768x484.png 768w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-640x403.png 640w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/strong><\/p>\n<p>Since Grafana and Influx Chronofraf doesn\u2019t have the option to integrate with any other tools neither allows you to attach self-corrective action using HTML plugin available from grafana website available in this URL <a href=\"https:\/\/grafana.com\/grafana\/plugins\/aidanmountford-html-panel\/\">https:\/\/grafana.com\/grafana\/plugins\/aidanmountford-html-panel\/<\/a><\/p>\n<h1><strong>Self Service High Level Architecture<\/strong><\/h1>\n<p><img decoding=\"async\" class=\"alignnone wp-image-1502\" src=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1.png\" alt=\"\" width=\"700\" height=\"700\" srcset=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1.png 831w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1-300x300.png 300w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1-150x150.png 150w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1-768x768.png 768w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-1-640x640.png 640w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h1><strong>How does it works? <\/strong><\/h1>\n<p>Self Service Manager can be installed on the same operating system using either port 80 or 443 or using the Self Service Docker container which includes all packages for administrating your environment the container includes<\/p>\n<ul>\n<li>SSH Server<\/li>\n<li>Apache HTTP Server<\/li>\n<li>PostgreSQL Server<\/li>\n<li>Scheduler (crontab)<\/li>\n<li>Perl ( Include DB Libraries, and system management )<\/li>\n<li>Python ( Include DB Libraries and Influx Libraries )<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1503\" src=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-2.png\" alt=\"\" width=\"700\" height=\"475\" srcset=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-2.png 1134w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-2-300x204.png 300w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-2-768x521.png 768w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-2-640x435.png 640w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<h1><strong>User Flow Step by Step<\/strong><\/h1>\n<ol>\n<li>User gets an alert in Grafana dashboard and can enable the popup container within the grafana.<\/li>\n<li>Container checks permissions for the user* and grant access to the inventory list and the actions available for the specified Hosts and corresponding Services.<\/li>\n<li>User access and select the designated action and trigger the job from the GUI<\/li>\n<li>Pop-up window replace content from to the Task action results and waits\u2026 updates the page every 2 seconds.<\/li>\n<li>Plugins Manager triggers the job in the background. The job is actual plugins that installed in \/usrl\/local\/manager\/plugins<\/li>\n<li>The plugin triggers the actual job to the destination for example Jenkins and provide output for the steps.<\/li>\n<li>When plugin is finished executing the commands. The Plugins manager finish and writes the results to the logs table.<\/li>\n<li>The GUI fetches the latest updates based on the UUID from the logs table and displays the result.<\/li>\n<li>The Plugin should also return exit codes<\/li>\n<\/ol>\n<ul>\n<li>OK status. Job performed successfully<\/li>\n<li>WARNING status. Job performed but has some issues<\/li>\n<li>CRITICAL status. Job failed to execute.<\/li>\n<\/ul>\n<p>* Not fully implemented<\/p>\n<h1><strong>Self Service Container Directory structure<\/strong><\/h1>\n<p>Self Service Management installed in: \/usr\/local\/manager<\/p>\n<p>Directories and files description<\/p>\n<ul>\n<li><strong>Bin<\/strong>\n<ul>\n<li><strong>data_loader<\/strong> \u2013 Loading data to selfservice database<\/li>\n<li><strong>influxdata.py<\/strong> \u2013 retrieving data from influxdb and load to selfservice<\/li>\n<li><strong>tasks<\/strong> \u2013 perform maintenance actions<\/li>\n<\/ul>\n<\/li>\n<li><strong>etc<\/strong>\n<ul>\n<li><strong>macros.ini<\/strong> \u2013 user defined macros<\/li>\n<li><strong>settings.ini<\/strong> \u2013 various settings<\/li>\n<\/ul>\n<\/li>\n<li>plugins\n<ul>\n<li><strong>ssh.sh<\/strong> \u2013 ssh plugin to execute remote jobs<\/li>\n<li><strong>Jenkins.sh<\/strong> \u2013 trigger Jenkins jobs<\/li>\n<li><strong>http.sh<\/strong> \u2013 http plugin for RestAPI requests<\/li>\n<\/ul>\n<\/li>\n<li><strong>sbin<\/strong>\n<ul>\n<li><strong>schedulerd<\/strong> \u2013 Scheduler to perform daily routine tasks<\/li>\n<li><strong>plugins_manager<\/strong> \u2013 executes the actual plugins<\/li>\n<\/ul>\n<\/li>\n<li><strong>www<\/strong>\n<ul>\n<li>Contains WEB GUI applications<\/li>\n<\/ul>\n<\/li>\n<li><strong>var<\/strong>\n<ul>\n<li>contains logs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1><strong>Database Entity relationship diagram (ERD)<\/strong><\/h1>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1504\" src=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-3.png\" alt=\"\" width=\"700\" height=\"953\" srcset=\"https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-3.png 863w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-3-220x300.png 220w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-3-768x1046.png 768w, https:\/\/www.tracston.com\/wp-content\/uploads\/2021\/03\/word-image-3-640x871.png 640w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/strong><\/p>\n<h1><strong>Connection Between tables and how they are reflected when adding data <\/strong><\/h1>\n<ol>\n<li>Create environment &#8211; Adds Data to <strong>environments<\/strong> table<\/li>\n<li>Create hostgroup \u2013 Adds Data to <strong>hostgroups<\/strong> table<\/li>\n<li>Create service \u2013 Adds data to Services table<\/li>\n<li>Create event handler \u2013 add that to <strong>event_handlers<\/strong> table<\/li>\n<li>Assign one event handler or more to service \u2013 adds data to <strong>events_handlers_members<\/strong> table \u2013 services_members_id and event_handlers_id<\/li>\n<li>assign one or more service to hostgroup \u2013 adds data to <strong>hostgroups_services<\/strong> tables \u2013 services_id and hostgroups_id<\/li>\n<li>Create Host \u2013 adds data to <strong>hosts<\/strong> table<\/li>\n<li>Add Host to Environment \u2013 add data to <strong>enviroments_members<\/strong> \u2013 enviroments_id and hosts_id and hostgroups_id<\/li>\n<li>Add Host to Hostgroup \u2013 add data to <strong>hostgroups_members<\/strong><\/li>\n<\/ol>\n<p><strong>Option 1<\/strong><\/p>\n<ol>\n<li>Assign Host to Service \u2013 add data <strong>to services_members<\/strong> &#8211; hosts_id and services_id<\/li>\n<\/ol>\n<p><strong>Option 2<\/strong><\/p>\n<ol>\n<li>Assign services belong to hostgroup to a host \u2013 select data from hostgroups_services based on hostgroups_id and then adds this services to services_members with services_id and hosts_id<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Self Service Manager Overview Self Service project integrates with Grafana as a popup div container and works seamlessly for user integration. The service includes Inventory management for your environment including: Environments Hosts Groups Hosts Services The Self Service Project allows you to run run various healing actions \/ event handlers&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":568,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"footnotes":""},"class_list":["post-1498","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/pages\/1498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/comments?post=1498"}],"version-history":[{"count":11,"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/pages\/1498\/revisions"}],"predecessor-version":[{"id":1577,"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/pages\/1498\/revisions\/1577"}],"up":[{"embeddable":true,"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/pages\/568"}],"wp:attachment":[{"href":"https:\/\/www.tracston.com\/index.php\/wp-json\/wp\/v2\/media?parent=1498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}