Zabbix Manual [Zabbix] 11/21/13, 4:25 PM Zabbix Manual Welcome to the user manual for Zabbix 2.0 software. These pages are created to help our users successfully manage their monitoring tasks with Zabbix, from the simple to the more complex. 2.0/manual.txt Last modified: 2012/05/23 11:27 by martins-v Except where otherwise noted, content on this wiki is licensed under the following license:cc Attribution- Noncommercial-Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/] https://www.zabbix.com/documentation/2.0/manual Page 1 of 1
8. Web monitoring [Zabbix] 12/5/13, 1:30 PM 8. Web monitoring Overview With Zabbix you can check several availability aspects of web sites. To perform web monitoring Zabbix server must be initially configured with curl (libcurl) support. To activate web monitoring you need to define web scenarios. A web scenario consists of one or several HTTP requests or steps. The steps are periodically executed by Zabbix server in a pre-defined order. The following information is collected in any web scenario: average download speed per second for all steps of whole scenario failed step number last error message The following information is collected in any web scenario step: download speed per second response time response code Zabbix can also check if a retrieved HTML page contains a pre-defined string. It can execute a simulated login and follow a path of simulated mouse clicks on the page. Zabbix web monitoring supports both HTTP and HTTPS. When running a web scenario, Zabbix always follows redirects. All cookies are preserved during the execution of a single scenario. To use HTTP proxy, set the http_proxy environment variable for Zabbix server user. For example, http_proxy=http://proxy_ip:proxy_port. To perform HTTPS checks with the proxy, set the additional HTTPS_PROXY environment variable. For example, HTTPS_PROXY=http://proxy_ip:proxy_port. More details are available by running a shell command # man curl. Data collected from executing web scenarios is kept in the database. The data is automatically used for graphs, triggers and notifications. See also: Web monitoring items. Configuring a scenario The first step of creating a web scenario is creating a suitable application (unless you already have one). Web scenarios are linked to applications for grouping. https://www.zabbix.com/documentation/2.0/manual/web_monitoring Page 1 of 5
8. Web monitoring [Zabbix] 12/5/13, 1:30 PM Then, to configure a web scenario: Go to: Configuration Web Click on Create scenario to the right (or on the scenario name to edit an existing scenario) Enter parameters of the scenario in the form The Scenario tab allows you to configure the general parameters of a web scenario. General parameters: Parameter Application Name Authentication Update interval (in sec) Agent Variables Active Description Select an application the scenario will belong to. The application must exist. Unique scenario name. Authentication options. None - no authentication used. Basic authentication - basic authentication is used. NTLM authentication - NTLM (Windows NT LAN Manager) [http://en.wikipedia.org/wiki/ntlm] authentication is used. Selecting an authentication method will provide two additional fields for entering a user name and password. How often the scenario will be executed, in seconds. Select a client agent. Zabbix will pretend to be the selected browser. This is useful when a website returns different content for different browsers. List of variables (macros) for use in scenario steps (URL, Post variables). They have the following format: {macro1}=value1 {macro2}=value2 For example: {username}=alexei {password}=kj3h5kj34bd The macros can then be referenced in the steps as {username} and {password}. Zabbix will automatically replace them with actual values. Note: Variables are not URL-encoded. The scenario is active if this box is checked, otherwise - disabled. https://www.zabbix.com/documentation/2.0/manual/web_monitoring Page 2 of 5
8. Web monitoring [Zabbix] 12/5/13, 1:30 PM The Steps tab allows you to configure the web scenario steps. Configuring steps To add a web scenario step, click on Add in the Steps tab of a scenario form. Step parameters: Parameter Description Name URL Post Timeout Required Unique step name. URL to connect to and retrieve data. For example: http://www.zabbix.com https://www.google.com GET variables can be passed in the URL parameter. HTTP POST variables, if any. For example: id=2345&userid={user} If {user} is defined as a macro of the web scenario, it will be replaced by its value when the step is executed. The information will be sent as is, variables are not URL-encoded. Zabbix will not spend more than the set amount of seconds on processing the URL. Actually this parameter defines maximum time for making connection to the URL and maximum time for performing an HTTP request. Therefore, Zabbix will not spend more than 2 x Timeout seconds on the step. For example: 15 Required regular expressions pattern. Unless retrieved content (HTML) matches required pattern the step will fail. If empty, no check is performed. For example: Homepage of Zabbix https://www.zabbix.com/documentation/2.0/manual/web_monitoring Page 3 of 5
8. Web monitoring [Zabbix] 12/5/13, 1:30 PM Status codes Welcome.*admin Note: Referencing regular expressions created in the Zabbix frontend is not supported in this field. List of expected HTTP status codes. If Zabbix gets a code which is not in the list, the step will fail. If empty, no check is performed. For example: 200,201,210-299 Any changes in web scenario steps will only be saved when the whole scenario is saved. See also a real-life example of how web monitoring steps can be configured. Display To view detailed data of defined web scenarios, go to Monitoring Web or Latest data. Click on the scenario name to see more detailed statistics. An overview of web monitoring scenarios can be viewed in Monitoring Dashboard. https://www.zabbix.com/documentation/2.0/manual/web_monitoring Page 4 of 5
8. Web monitoring [Zabbix] 12/5/13, 1:30 PM 2.0/manual/web_monitoring.txt Last modified: 2013/11/29 10:50 by martins-v Except where otherwise noted, content on this wiki is licensed under the following license:cc Attribution- Noncommercial-Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/] https://www.zabbix.com/documentation/2.0/manual/web_monitoring Page 5 of 5
1 Web monitoring items [Zabbix] 1 Web monitoring items Overview Some new items are automatically added for monitoring when web scenarios are created. Scenario items As soon as a scenario is created, Zabbix automatically adds the following items for monitoring, linking them to the selected application. Item Download speed for scenario <Scenario> Failed step of scenario <Scenario> Last error message of scenario <Scenario> Description This item will collect information about the download speed (bytes per second) of the whole scenario, i.e. average for all steps. Item key: web.test.in[scenario,,bps] Type: Numeric(float) This item will display the number of the step that failed on the scenario. If all steps are executed successfully, 0 is returned. Item key: web.test.fail[scenario] Type: Numeric(unsigned) This item returns the last error message text of the scenario. Item key: web.test.error[scenario] The actual scenario name will be used instead of Scenario. Web monitoring items are added with a 30 day history and a 90 day trend retention period. These items can be used to create triggers and define notification conditions. Example 1 To create a Web scenario failed trigger, you can define a trigger expression: {host:web.test.fail[scenario].last(0)}#0 Make sure to replace 'Scenario' with the real name of your scenario. Example 2 To create a Web application is slow trigger, you can define a trigger expression: {host:web.test.in[scenario,,bps].last(0)}<10000 Make sure to replace 'Scenario' with the real name of your scenario. Scenario step items As soon as a step is created, Zabbix automatically adds the following items for monitoring, linking them to the selected application. Item Description https://www.zabbix.com/documentation/2.0/manual/web_monitoring/items Page 1 of 2
1 Web monitoring items [Zabbix] Download speed for step <Step> of scenario <Scenario> Response time for step <Step> of scenario <Scenario> Response code for step <Step> of scenario <Scenario> This item will collect information about the download speed (bytes per second) of the step. Item key: web.test.in[scenario,step,bps] Type: Numeric(float) This item will collect information about the response time of the step in seconds. Response time is counted from the beginning of the request until all information has been transferred. Item key: web.test.time[scenario,step] Type: Numeric(float) This item will collect response codes of the step. Item key: web.test.rspcode[scenario,step] Type: Numeric(unsigned) Actual scenario and step names will be used instead of Scenario and Step respectively. Web monitoring items are added with a 30 day history and a 90 day trend retention period. These items can be used to create triggers and define notification conditions. For example, to create a Zabbix GUI login is too slow trigger, you can define a trigger expression: {zabbix:web.test.time[zabbix GUI,Login].last(0)}>3 2.0/manual/web_monitoring/items.txt Last modified: 2012/06/27 12:08 by martins-v Except where otherwise noted, content on this wiki is licensed under the following license:cc Attribution- Noncommercial-Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/] https://www.zabbix.com/documentation/2.0/manual/web_monitoring/items Page 2 of 2
2 Real life scenario [Zabbix] 2 Real life scenario Overview This section presents a step-by-step real-life example of how web monitoring can be used. Let's use Zabbix Web monitoring to monitor the web interface of Zabbix. We want to know if it is available, provides the right content and how quickly it works. To do that we also must log in with our user name and password. Scenario Step 1 Add a new host application. Go to Configuration Hosts, then click on Applications next to the host you want to use for web monitoring. In the application section click on Create application. This step is not required if you already have a suitable application. You may also want to create a host if one does not exist. Step 2 Add a new web scenario. We will add a scenario to monitor the web interface of Zabbix. The scenario will execute a number of steps. Go to Configuration Web, select the host in the dropdown, then click on Create scenario. https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 1 of 6
2 Real life scenario [Zabbix] In the new scenario form, click on Select next to the Application field to choose the application we just created. Note that we also create two macros, {user} and {password}. Step 3 Define steps for the scenario. Click on Add button in the Steps tab to add individual steps. Web scenario step 1 We start by checking that the first page responds correctly, returns with HTTP response code 200 and contains text SIA Zabbix. When done configuring the step, click Add. https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 2 of 6
2 Real life scenario [Zabbix] Web scenario step 2 We continue by logging in to the Zabbix frontend, and we do so by reusing the macros (variables) we defined on the scenario level, {user} and {password}. Note that Zabbix frontend uses JavaScript redirect when logging in, thus first we must log in, and only in further steps we may check for logged-in features. Additionally, the login step must use full URL to index.php file. All the post variables must be on a single line and concatenated with & symbol. Example string for logging into Zabbix frontend: name=admin&password=zabbix&enter=sign in If using the macros as in this example, login string becomes: name={user}&password={password}&enter=sign in Web scenario step 3 Being logged in, we should now verify the fact. To do so, we check for a string that is only visible when logged in - for example, Profile link appears in the upper right corner. https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 3 of 6
2 Real life scenario [Zabbix] Web scenario step 4 Now that we have verified that frontend is accessible and we can log in and retrieve logged-in content, we should also log out - otherwise Zabbix database will become polluted with lots and lots of open session records. Complete configuration of steps A complete configuration of web scenario steps should look like this: https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 4 of 6
2 Real life scenario [Zabbix] Step 4 Save the finished web monitoring scenario. The list of applications and linked scenarios will appear in Monitoring Web: Click on the scenario name to see more detailed statistics: https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 5 of 6
2 Real life scenario [Zabbix] 2.0/manual/web_monitoring/example.txt Last modified: 2012/07/16 11:02 by martins-v Except where otherwise noted, content on this wiki is licensed under the following license:cc Attribution- Noncommercial-Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/] https://www.zabbix.com/documentation/2.0/manual/web_monitoring/example Page 6 of 6