AppDynamics Monitoring Extension for use with Zabbix

Zabbix Monitoring Extension

We are retiring this extension on October 13th 2021, due to low usage. If you have concerns, contact us at eol-extensions@appdynamics.com immediately.


This extension works only with the standalone machine agent.

Use Case

Zabbix is the ultimate enterprise-level software designed for monitoring availability and performance of IT infrastructure components. Zabbix is open source and comes at no cost.

Prerequisite

  1. Before the extension is installed, the prerequisites mentioned here need to be met. Please do not proceed with the extension installation if the specified prerequisites are not met.
  2. The Extension also needs a zabbix server to be installed.
  3. The extension needs to be able to connect to Zabbix in order to collect and send metrics. To do this, you will have to either establish a remote connection in between the extension and the product, or have an agent on the same machine running the product in order for the extension to collect and send the metrics.

Installation

  1. Download and unzip the file 'ZabbixMonitor-VERSION.zip' to machineagent_install_dir/monitors
  2. Open monitor.xml and configure yml path
  3. Open config.yml and configure the zabbix details

Please place the extension in the "monitors" directory of your Machine Agent installation directory. Do not place the extension in the "extensions" directory of your Machine Agent installation directory.

Configuration

config.yml

Configure Metric Prefix

Please follow section 2.1 of the Document to set up metric prefix.

# Use this only if SIM is enabled
#metricPrefix: "Custom Metrics|Zabbix|"

# If SIM is not enabled, then use this
metricPrefix:  "Server|Component:<TIER_ID>|Custom Metrics|Zabbix|"

Zabbix Server configuration

servers:
  - name: "My Zabbix Server"
    uri: "http://localhost:80/zabbix"
    username: "Admin"
    password: "zabbix"
    jsonRpcPath: "api_jsonrpc.php"
    #Provide either password or encryptedPassword. Below field is used in conjuction with encryptionKey
    #encryptedPassword: ""
  • name: Display name for your zabbix server which will be displayed in metric path. It should be unique for all servers
  • uri: URI for your zabbix server
  • username: Zabbix frontend Username
  • password: Zabbix frontend Password
  • jsonRpcPath: To send HTTP request to api_jsonrpc.php file located in the frontend directory
  • encryptedPassword: To configure encrypted password (refer Credentials Encryption section for more details)

You can configure multiple Zabbix servers like below:

servers:
  - name: "Zabbix Server 1"
    uri: "http://localhost:8080/zabbix"
    username: "Admin"
    password: "zabbix"
    jsonRpcPath: "api_jsonrpc.php"
    #Provide either password or encryptedPassword. Below field is used in conjuction with encryptionKey
    #encryptedPassword: ""
  - name: "Zabbix Server 2"
    uri: "http://localhost:8081/zabbix"
    username: "Admin"
    password: "zabbix"
    jsonRpcPath: "api_jsonrpc.php"
    #Provide either password or encryptedPassword. Below field is used in conjuction with encryptionKey
    #encryptedPassword: ""

Host and Item filter configuration

#Include Exclude Hosts. Include takes precedence over exclude. Only matched host names will be returned.
hostFilter:
    includeHosts: []
    excludeHosts: []

#Provide either includeItems or excludeItems
#Only matched items names will be included from the hosts after applying includeHosts/excludeHosts. Include takes precedence over exclude.
itemFilter:
    includeItems: []
    excludeItems: []

Number of threads

Always include one thread per server + 1.

For example, if you have 4 zabbix servers configured, then number of threads required are 5 (4 thread per server + 1 to run main task)

Yml Validation

Please copy all the contents of the config.yml file and go to http://www.yamllint.com/ . On reaching the website, paste the contents and press the “Go” button on the bottom left.

monitor.xml

<argument name="config-file" is-required="true" default-value=""monitors/ZabbixMonitor/config.yml" />

Metrics

The following metrics are reported.

ITService

All the IT Services configured will be shown here

Metric Path
Zabbix/ITService/{IT Service Name}

History

All the historic stats gathered by zabbix will be shown here

Metric Path
Zabbix/History/{Host ID}/Outgoing network traffic on eth0
Zabbix/History/{Host ID}/Maximum number of opened files
Zabbix/History/{Host ID}/Total swap space
Zabbix/History/{Host ID}/Number of processes
Zabbix/History/{Host ID}/Context switches per second
Zabbix/History/{Host ID}/Free swap space
Zabbix/History/{Host ID}/Host local time
Zabbix/History/{Host ID}/Zabbix queue
Zabbix/History/{Host ID}/Free disk space on /etc/resolv.conf
Zabbix/History/{Host ID}/Used disk space on /etc/Zabbix/Zabbix_agentd.d
Zabbix/History/{Host ID}/Free disk space on /var/lib/mysql
Zabbix/History/{Host ID}/Used disk space on /var/lib/mysql
Zabbix/History/{Host ID}/System uptime
Zabbix/History/{Host ID}/Number of running processes
Zabbix/History/{Host ID}/Used disk space on /etc/hostname
Zabbix/History/{Host ID}/Total memory
Zabbix/History/{Host ID}/Free disk space on /etc/Zabbix/Zabbix_agentd.d
Zabbix/History/{Host ID}/Used disk space on /usr/lib/Zabbix/externalscripts
Zabbix/History/{Host ID}/Free disk space on /usr/lib/Zabbix/alertscripts
Zabbix/History/{Host ID}/Incoming network traffic on eth0
Zabbix/History/{Host ID}/Checksum of /etc/passwd
Zabbix/History/{Host ID}/Free disk space on /etc/hostname
Zabbix/History/{Host ID}/Number of logged in users
Zabbix/History/{Host ID}/Agent ping
Zabbix/History/{Host ID}/Used disk space on /etc/hosts
Zabbix/History/{Host ID}/Zabbix queue over 10m
Zabbix/History/{Host ID}/Free disk space on /usr/lib/Zabbix/externalscripts
Zabbix/History/{Host ID}/Host boot time
Zabbix/History/{Host ID}/Used disk space on /etc/resolv.conf
Zabbix/History/{Host ID}/Interrupts per second
Zabbix/History/{Host ID}/Free disk space on /etc/hosts
Zabbix/History/{Host ID}/Used disk space on /usr/lib/Zabbix/alertscripts
Zabbix/History/{Host ID}/Available memory
Zabbix/History/{Host ID}/Maximum number of processes

Credentials Encryption

Please visit this page to get detailed instructions on password encryption. The steps in this document will guide you through the whole process.

Extensions Workbench

Workbench is an inbuilt feature provided with each extension in order to assist you to fine tune the extension setup before you actually deploy it on the controller. Please review the following document on How to use the Extensions WorkBench.

Troubleshooting

1. Please follow the steps listed in this troubleshooting-document in order to troubleshoot your issue. These are a set of common issues that customers might have faced during the installation of the extension.
2. Refer to the zabbix API documentation for hosts and item and check if API response is successful or not using curl utility.
3. If these don't solve your issue, please follow the last step on the troubleshooting-document to contact the support team.

Contributing

Always feel free to fork and contribute any changes directly here on GitHub.

Version

NameVersion
Extension Version2.0.0
Controller Compatibility4.5 or Later
Machine Agent Version4.5.13+
Product Tested on3.0
Last Update17/06/2021