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
注:导入过程的速度根据硬盘的性能
进入数据库查看是否导入成功
(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
注:此处的密码为登陆数据库密码
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端设置
在配置中选择主机选项,添加主机
设置主机名,群组,IP
设置模板
完成设置,现在需要设置动作发现主机
启用动作
设置自动发现的发现网段,并启动
注:启动顺序:启动动作,自动发现。
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端设置
创建动作
设置操作
启动动作,关闭自动发现
最后结果
7、错误解决
方法一:在不使用自动发现时,将自动发现关闭
方法二:修改配置文件下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
此处的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
(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
server3命令:Curl 127.0.0.1/status
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设置的值相同
在图形选向中添加图形,将设置的3各监控项添加
可预览到图形
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服务器上添加模板
(3)查看图形
选择图形选项,进入mysql Operation可预览图形
(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端导入模板(该模板可从官网下载)
重新再导入mysql模板便可生效
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
(4)为server2添加模板并设置jmx接口ip
(5)修改server端配置文件
路径:/etc/zabbix/zabbix_server.conf
安装zabbix-java-gateway
(6)选择图形查看图样
12、使用睿象云实现云报警
(1)安装zabbix_release
版本:zabbix_release-2.1.0
1、进入/usr/lib/zabbix/alertscripts目录将ca_zabbix_release-2.1.0.tar.gz进行解压
2、进入解压后的目录的bin目录进行安装
命令:./install 40d54b14-a945-1398-30f7-23c3bc8*****(此序列由创建的睿象云的ca监控)
3、安装完成之后可在图形化界面下看到以下内容
4、在睿象云设置报警
(2)测试
关闭server3
在关联的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
(3)server3启动proxy代理
可在日志查看到server1发送数据至server3
(4)图形化界面设置server2
设置代理
(5)查看结果