####首先封装一个7.3的虚拟机
然后得到相应的包
zabbix-get-3.4.6-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm zabbix-proxy-mysql-3.4.6-1.el7.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm zabbix-web-3.4.6-1.el7.noarch.rpm
zabbix-agent-3.4.6-1.el7.x86_64.rpm zabbix-web-mysql-3.4.6-1.el7.noarch.rpm
yum install zabbix-agent-3.4.6-1.el7.x86_64.rpm zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm zabbix-web-3.4.6-1.el7.noarch.rpm zabbix-web-mysql-3.4.6-1.el7.noarch.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm -y ###后面两个是解决web的依赖性的,他对php的要求特别高,在下载php之前,首先看本机php的版本 yum list php
36 yum install mariadb-server -y ###下载数据库
37 systemctl start mariadb
38 mysql -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';
40 cd /usr/share
41 ls
42 cd doc/zabbix-server-mysql-3.4.6/
43 ls
44 zcat create.sql.gz | mysql zabbix ##解压查看并导入数据库zabbix里面
45 mysql
use zabbix;
show tables;
46 cd /etc/zabbix
47 ls
48 vim zabbix_server.conf ###改正这两行
132 DBSocket=/var/lib/mysql/mysql.sock
125 DBPassword=westos
49 systemctl start zabbix-server
50 cd /etc/httpd/conf.d
51 ls
52 vim zabbix.conf
php_value date.timezone Asia/Shanghai ###打开时区的注释
53 systemctl start httpd
54 systemctl start zabbix-agent
systemctl stop firewalld
####进入网页进行操作 http://172.25.17.111/zabix
如果都是ok字样,则进行下一步
该端口号为3306,密码为westos
服务的名字为zabbix server
正式登陆界面 Admin zabbix ###用户名为Admin,密码为zabbix
####进去之后,点击人头像,改应用语言为中文
点配置,点主机,将状态停用的改为启用,点应用,则状态改为启用,可用性zbx变亮
####在6.5的主机里面做
368 rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm ##下载与他版本匹配的包
369 vim /etc/zabbix/zabbix_agentd.conf
97 Server=172.25.17.12###提供服务端
149 Hostname=server1 ###本机端
138 ServerActive=172.25.17.12
370 vim /etc/hosts ###一定要改域名解析
371 /etc/init.d/zabbix-agent start
372 netstat -antlupe ##有10050 ##显示出来
#####进入浏览器界面
手动添加server2
配置---》主机---》创建主机---》主机---》server1.server1 ,linux server导入左边的匡中,---改ip地址
配置---》主机---》创建主机---》模版 ###添加template os linux 添加
最后添加整体,在主机里面就有所显示添加的服务,点应用,开启服务就可以变亮
删除添加的主机,为下面做环境准备
####自动发现
配置---》动作----》事件来源为自动发现--》点击停用的,还要点击名称下面的代码,进去设置条件,服务类型为zabbix的客户端,接受到的值为linux,自动发现状态为上,
配置---》自动发现---》点击停用的---》创建发现规则 名称 local network ip范围 172.25.17.1-254 检查新的,添加zabbix客户端,键值为system.uname
使用ip准则 然后就会在自动发现看见为1
#####自动注册###
首先删除自动发现的
配置---》自动发现 --->将状态变为停用
配置---》动作---》 将状态变为停用----》事件来源为自动注册---》创建动作--》动作--》名称为auto_reg,新的触发条件为主机名称server2----》操作--》 默认接受人为 Auto registration:{HOST.HOST}默认信息Host name:{HOST.HOST}
HostIP:{HOST.IP} Agent port:{HOST.PORT} 操作细节--》新的--》添加主机,添加到主机群组(linux server),与模版相连(template OS linux)
最后添加整体,在主机里面就有所显示添加的服务,点应用,开启服务就可以变亮在6.5的主机里面执行/etc/init.d/zabbix-agent restart
做完后删除主机,为下面的实验做准备
#####使用api的方式创建主机
什么是API:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源 码,或理解内部工作机制的细节。简单的说,API就是对外的接口,利用API可以直接到达软件硬件内部来进行操作….
zabbix中API的作用:
Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
API的大致工作流如下:
(1)API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式
(2)准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)。
(3)获取JSON格式响应。
###在7.3的主机里面做
cd
vim zabbix-api.sh ###建立一个文件
1.查看zabbix监控系统的api接口:
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.17.111/zabbix/api_jsonrpc.php | python -m json.tool
59 chmod +x zabbix-api.sh
./zabbix-api.sh ##会出现result的结果,将result的结果复制
61 vim zabbix-api.sh查看zabbix主机和被监控主机信息
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output":["host"]
},
"id": 1,
"auth":"d6eb907522e8033423a5c81f6af5c43b"
}' http://172.25.17.111/zabbix/api_jsonrpc.php | python -m json.tool
62 ./zabbix-api.sh 会得到server2的hostid的值,复制
89 vim zabbix-api.sh3.删除zabbix监控中的主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10255"
],
"id": 1,
"auth":"d6eb907522e8033423a5c81f6af5c43b"
}' http://172.25.17.111/zabbix/api_jsonrpc.php | python -m json.tool
90 ./zabbix-api.sh
89 vim zabbix-api.sh ###创建主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server1", ##更改出
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.17.1", ##更改出受监控的ip
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "10" ##获取方法,群组找linux server
}
],
"templates": [
{
"templateid": "10001" ##模版找template OS linux
}
]
},
"id": 1,
"auth":"d6eb907522e8033423a5c81f6af5c43b"
}' http://172.25.17.111/zabbix/api_jsonrpc.php | python -m json.tool
90 ./zabbix-api.sh
###在浏览器出可以发现新添了一个主机,开启服务,就变亮了
###在6.5的主机里面做
yum install -y httpd
/etc/init.d/httpd start ###如果服务岂不来,就把端口改为8080
###在浏览器里面
点击server2 ,点击模版加入http service,可以看见监控项多了一项
###另外开一台虚拟机server3
在server2里面
scp zabbix-agent-3.4.6-1.el6.x86_64.rpm [email protected]:/root
在7.3的主机做
创建一个监控项
vim zabbix-api.sh
将域名和ip改为server3的域名和ip,进入浏览器看有没有增加成功,记得一定要做域名解析
./zabbish-api.sh
###在server3里面做
rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm
cd /etc/zabbix/
ls
vim zabbix_agentd.conf
server=172.25.254.12
serverActive=172.25.254.12
Hostname=server2
/etc/init.d/zabbix-agent start
####得到一个nginx的源代码,进行编译
tar zxf nginx-1.14.0.tar.gz
yum install -y gcc pcre-devel zlib-devel ##解决依赖性
cd nginx-1.14.0
ls
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
cd /usr/local/nginx/
cd conf
vim nginx.conf
###在##error_page 404上面加
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
ln -s /usr/local/nginx/sbin/nginx /sbin/
nginx -t
nginx
curl http://127.0.0.1/status
curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
cd /etc/zabbix
ls
cd zabbix_agentd.d
cp userparameter_mysql.conf userparameter_nginx.conf
vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
/etc/init.d/zabbix-agent restart
###在7.3的主机里面
rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
zabbix_get -s 172.25.254.12 -p 10050 -k "nginx.active"
###进入浏览器界面
点进server3里面--》监控项--》创建监控---》名称:nginx_active,类型zabbix
的客户端,键值nginx.active,必须和server3里面写的保持一致,主机接口172.25.254.2:10050 -->图形 --》创建图形--》 名称nginx_status-->图形类别为层积--》添加监控--》nginx_active--->预览--》便可以看见图形了
###监控nginx的其他项
#####在server3里面做
curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx.accepts,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'
/etc/init.d/zabbix-agent restart
###在7.3的主机里面
zabbix_get -s 172.25.17.3 -p 10050 -k "nginx.accepts"
zabbix_get -s 172.25.17.3 -p 10050 -k "nginx.handled"
zabbix_get -s 172.25.17.3 -p 10050 -k "nginx.requests"
###进入浏览器界面
点进server3里面--》监控项--》创建监控---》名称:nginx_accepts,类型zabbix的客户端,键值nginx.accepts,必须和server3里面写的保持一致,主机接口172.25.17.3:10050-->名称:nginx_handled,类型zabbix的客户端,键值nginx.handled-->名称:nginx_requests,类型zabbix的客户端,键值nginx.requests(将三个值都添加进去)-->图形 --》创建图形--》 名称nginx_status-->图形类别为层积--》添加监控--》nginx_accepts,nginx.handled,nginx.requests--->预览--》便可以看见图形了
####给zabbix server添加mysql的监控
##在7.3的主机中做##此时应该有数据库
mkdir /var/lib/zabbix
cd /avr/lib/zabbix/
vim .my.cnf ##隐藏文件
[mysql]
host = localhost
user = zabbix
password = westos
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = zabbix
password = westos
socket = /var/lib/mysql/mysql.sock
systemctl restart zabbix-agent
cd /etc/zabbix/zabbix_agentd.d/
ls
cat userparameter_mysql.conf | wc -l ##查看监控多少行,只有19行,所以我们要下载别的
###得到一个percona-zabbix-templates-1.1.8-1.noarch.rpm包
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/templates
ls
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
cat userparameter_percona_mysql.conf | wc -l ##监控项有190行
systemctl restart zabbix-agent
cd /var/lib/zabbix/percona/scripts/
mysql_secure_installation
vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'westos';
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
cd /tmp
cat localhost-mysql_cacti_stats.txt##有所显示
ll localhost-mysql_cacti_stats.txt
chown zabbix.zabbix localhost-mysql_cacti_stats.txt
###进入浏览器
配置--》模版--》群组为templates/Databases ----》倒入文件(zab_percona_mysql_template.xml)-->添加聚合图形--》导入--》 群组percona templates --->配置--主机--zabbixserver--》模版--》链接指示器选择mysql server--.>添加----》主机里面看,就多了190 个监控项 ##给zabbixserver配置
###报警设置,先注册110云
免费注册
配置应用,添加zabbix的应用,获得到一个应用key
###在7.3的主机里面做
cd /usr/lib/zabbix/alertscriptds/
##得到一个包 oneitsm_zabbix_release-1.2.0.tar.gz
tar zxf oneitsm_zabbix_release-1.2.0.tar.gz -C /usr/lib/zabbix/
alertscriptds/
cd /usr/lib/zabbix/alertscriptds/
cd oneitsm/bin
yum install -y net-tools ##下载网关工具
route -n
route add default gw 172.25.254.56
vim /etc/resolv.conf
nameserver 114.114.114.114
ping baidu.com
cd /usr/lib/zabbix/alertscripts/oneitsm/bin
./install.sh 应用key
管理地址:http://172.25.17.111/zabbix
管理员帐号:Admin
管理员密码:zabbix
##浏览器
管理--》报警媒介类型--》 创建媒介类型(oneitsm media)
管理--》用户--》创建用户--》用户(填写--》报警媒介(添加全写)
配置--》动作--》事件源(触发器)--》选择oneitsm action 启用 -->创建动作--》名称 oneitsm action 触发器名称--》
###在真机里面做
iptables -t nat -nL
iptables -t nat -I POSTROUTING -s 172.25.0.0/24 -j MASQUERADE
iptables -t nat -nL
###测试
让server2里面的/etc/init.d/zabbix-agent stop
##观看会不会发送报警