1、前言

zabbix作为一个监控工具,可以实现采集信息,存储信息,展示信息,通知报警。由server,proxy,agent组成,通讯方式有ZBX(server-agent),SNMP(简单网络管理协议),IPMI(硬件接口),JMX(java管理拓展)。

2、组件介绍

server:管理和配置agent发送的数据。

agnet:被监控对象

server-web:可视化的管理界面

server-database:存储配置信息和agent信息

3、环境设置

rhel7.3

server1:172.25.69.1(充当管理器)

server2:172.25.69.2(agent)

server3:172.25.69.3(agent)

4、zabbix服务器的安装

(1)安装以下内容

zabbix-server-mysql
zabbix-web-mysql
mariadb-server
zabbix-agent
httpd

(2)数据库设定

启动数据库并对其进行安全初始化

命令:mysql_secure_installation

建立数据库并授权

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)

将zabbix所提供的sql导入至数据库中

路径:/usr/share/doc/zabbix-server-mysql-4.0.5/

命令:zcat create.sql.gz | mysql -p zabbix

注:导入过程的速度根据硬盘的性能

进入数据库查看是否导入成功

zabbix ai zabbix aix监控项_json

(3)编辑配置文件

路径:/etc/zabbix/zabbix_server.conf

DBPassword=redhat
#设置数据库密码

路径:/etc/httpd/conf.d/zabbix.conf

timezone Asia/Shanghai
#修改时区

(4)启动服务

httpd

zabbix-server

zabbix-agint

(5)测试

网页中输入172.25.69.1/zabbix

管理员帐号:Admin

管理员密码:zabbix

zabbix ai zabbix aix监控项_mysql_02

zabbix ai zabbix aix监控项_mysql_03

zabbix ai zabbix aix监控项_mysql_04

注:此处的密码为登陆数据库密码

zabbix ai zabbix aix监控项_nginx_05

zabbix ai zabbix aix监控项_json_06

zabbix ai zabbix aix监控项_zabbix ai_07

zabbix ai zabbix aix监控项_nginx_08

5、server的自动发现

使用server2作为agent,自动发现由server主动发现agent

(1)agent配置

1、安装zabbix-agent

2、修改配置文件

路径:/etc/zabbix/zabbix_agentd.conf

Server=172.25.69.1
#设置server
ServerActive=172.25.69.1
#设置server
Hostname=server2
#设置当前主机名,需设置/etc/hosts的解析

3、启动zabbix-agent

(2)server端设置

在配置中选择主机选项,添加主机

zabbix ai zabbix aix监控项_mysql_09

设置主机名,群组,IP

zabbix ai zabbix aix监控项_Linux_10

设置模板

zabbix ai zabbix aix监控项_zabbix ai_11

完成设置,现在需要设置动作发现主机

zabbix ai zabbix aix监控项_json_12

启用动作

zabbix ai zabbix aix监控项_Linux_13

设置自动发现的发现网段,并启动

zabbix ai zabbix aix监控项_mysql_14

注:启动顺序:启动动作,自动发现。

6、server的自动注册

使用server3作为agent,自动注册由agent主动注册至server

(1)agent配置

1、安装zabbix-agent

2、修改配置文件

路径:/etc/zabbix/zabbix_agentd.conf

Server=172.25.69.1
#设置server
ServerActive=172.25.69.1
#设置server
Hostname=server3
#设置当前主机名,需设置/etc/hosts的解析

3、启动zabbix-agent

(2)server端设置

zabbix ai zabbix aix监控项_nginx_15

创建动作

zabbix ai zabbix aix监控项_nginx_16

设置操作

zabbix ai zabbix aix监控项_json_17

启动动作,关闭自动发现

zabbix ai zabbix aix监控项_mysql_18

最后结果

7、错误解决

zabbix ai zabbix aix监控项_mysql_19

方法一:在不使用自动发现时,将自动发现关闭

方法二:修改配置文件下StartDiscoverers,设置所需进程数(范围0-255)

方法三:修改发现任务的延迟时间,将时间调长

8、使用脚本进行管理

(1)登陆

curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.0.4/zabbix/api_jsonrpc.php | python -m json.tool

zabbix ai zabbix aix监控项_mysql_20

此处的result为登陆的证明,之后的创建删除等操作,需要此序列

(2)获取主机

curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["host"]
    },
    "auth": "972c1ff0def64bbf6df448dda343aebd",
    "id": 1
}' http://172.25.69.1/zabbix/api_jsonrpc.php | python -m json.tool

(3)删除

curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10264"
    ],
    "auth": "972c1ff0def64bbf6df448dda343aebd",
    "id": 1
}' http://172.25.69.1/zabbix/api_jsonrpc.php | python -m json.tool

zabbix ai zabbix aix监控项_mysql_21

(4)创建

curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server3.ins",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.0.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10110"
            }
        ]
    },
    "auth": "972c1ff0def64bbf6df448dda343aebd",
    "id": 1
}' http://172.25.69.1/zabbix/api_jsonrpc.php | python -m json.tool

9、观察主机上服务的情况(nginx)

server3安装nginx

(1)nginx相关设置

1、使用nginx源码包进行安装

./configure --prefix=/usr/local/nginx --with-http_stub_status_module
#设置编译环境
make && make install
#编译并安装

2、修改配置文件

路径:/usr/local/nginx/conf/nginx.conf

location /status{
                stub_status on;
                access_log off;
                allow 127.0.0.1;
                deny all;

        }

3、启动nginx

检查配置文件的正确性

命令:/usr/local/nginx/sbin/nginx -t

启动nginx

命令:/usr/local/nginx/sbin/nginx

4、本地主机测试,在server3查看状态

本地主机命令: ab -c 100 -n 10000 http://172.25.69.3/status

zabbix ai zabbix aix监控项_json_22

server3命令:Curl 127.0.0.1/status

zabbix ai zabbix aix监控项_mysql_23

5、设置用于在server端观察的数据

进入目录/etc/zabbix/zabbix_agentd.d

新建文件并编辑userparameter_nginxl.conf

UserParameter=nginx.Active,curl -s 127.0.0.1/status | grep Active  | awk '{print $3}'
UserParameter=nginx.Accepts,curl -s 127.0.0.1/status | awk NR==3  | awk '{print $1}'
UserParameter=nginx.Requests,curl -s 127.0.0.1/status | awk NR==3  | awk '{print $3}'




#获取并发数
#获取接收数
#获取响应数

(2)server端设置

1、安装zabbix-get

2、设置监控项

键值需于userparameter_nginxl.conf设置的值相同

 

zabbix ai zabbix aix监控项_json_24

zabbix ai zabbix aix监控项_nginx_25

zabbix ai zabbix aix监控项_zabbix ai_26

zabbix ai zabbix aix监控项_nginx_27

在图形选向中添加图形,将设置的3各监控项添加

zabbix ai zabbix aix监控项_json_28

可预览到图形

10、观察服务器上服务的情况(mysql)

(1)在server端建立目录

命令:mkdir /var/lib/zabbix

在此目录下建立文件.my.cnf

[mysql]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock

[mysqladmin]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock

重启zabbix-agent服务

(2)添加模板

在server服务器上添加模板

zabbix ai zabbix aix监控项_Linux_29

(3)查看图形

选择图形选项,进入mysql Operation可预览图形

zabbix ai zabbix aix监控项_nginx_30

zabbix ai zabbix aix监控项_mysql_31

(4)使用percona解决监控数据库参数过少问题

1、安装percona-zabbix-templates-1.1.8-1

模板目录:/var/lib/zabbix/percona/templates

脚本目录:/var/lib/zabbix/percona/scripts

2、复制模板至配置文件目录下

命令:cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

3、进入脚本目录编辑文件

ss_get_mysql_stats.php.cnf

<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';

4、进入图形化界面,为server端导入模板(该模板可从官网下载)

zabbix ai zabbix aix监控项_json_32

重新再导入mysql模板便可生效

zabbix ai zabbix aix监控项_zabbix ai_33

11、观察主机上服务的情况(java)

在server2上安装tomcat-8.5

(1)tomcat操作

1、将下载的tomcat解压至/usr/local

2、进入tomcat目录下的bin目录,编辑catalina.sh添加以下内容

CATALINA_OPTS='-Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=8888
 -Dcom.sun.management.jmxremote.ssl=false
 -Dcom.sun.management.jmxremote.authenticate=false'

(2)安装javajdk

jdk版本为jdk-8u121-linux

(3)启动tomcat

在tomcat目录下bin目录

命令:./startup.sh

zabbix ai zabbix aix监控项_Linux_34

(4)为server2添加模板并设置jmx接口ip

zabbix ai zabbix aix监控项_json_35

zabbix ai zabbix aix监控项_nginx_36

(5)修改server端配置文件

路径:/etc/zabbix/zabbix_server.conf

zabbix ai zabbix aix监控项_nginx_37

zabbix ai zabbix aix监控项_nginx_38

安装zabbix-java-gateway

(6)选择图形查看图样

zabbix ai zabbix aix监控项_zabbix ai_39

12、使用睿象云实现云报警

(1)安装zabbix_release

版本:zabbix_release-2.1.0

1、进入/usr/lib/zabbix/alertscripts目录将ca_zabbix_release-2.1.0.tar.gz进行解压

zabbix ai zabbix aix监控项_mysql_40

2、进入解压后的目录的bin目录进行安装

zabbix ai zabbix aix监控项_Linux_41

命令:./install 40d54b14-a945-1398-30f7-23c3bc8*****(此序列由创建的睿象云的ca监控)

 

zabbix ai zabbix aix监控项_nginx_42

zabbix ai zabbix aix监控项_mysql_43

3、安装完成之后可在图形化界面下看到以下内容

zabbix ai zabbix aix监控项_nginx_44

zabbix ai zabbix aix监控项_json_45

4、在睿象云设置报警

zabbix ai zabbix aix监控项_json_46

(2)测试

关闭server3

zabbix ai zabbix aix监控项_zabbix ai_47

zabbix ai zabbix aix监控项_Linux_48

在关联的wechat公众号上可接收到报警

 

 

13、设置proxy代理

设置server3为proxy代理服务器

(1)在server3的操作

1、安装zabbix-proxy

2、安装mariadb并进行以下设置

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)

3、导入数据库

路径:/usr/share/doc/zabbix-proxy-mysql-4.0.5/

命令:zcat schema.sql.gz | mysql -p zabbix_proxy

4、修改配置文件

路径:/etc/zabbix/zabbix_proxy.conf

DBName=zabbix_proxy
DBPassword=redhat
Server=172.25.69.1
Hostname=server3 
JavaGateway=172.25.69.1
StartJavaPollers=5

(2)在图形化界面下设定代理

管理->proxy

zabbix ai zabbix aix监控项_zabbix ai_49

(3)server3启动proxy代理

可在日志查看到server1发送数据至server3

zabbix ai zabbix aix监控项_Linux_50

(4)图形化界面设置server2

设置代理

zabbix ai zabbix aix监控项_mysql_51

 

(5)查看结果

zabbix ai zabbix aix监控项_nginx_52