Zabbix安装部署及实践

Zabbix

zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

Zabbix安装部署

系统环境:
Server1:172.25.24.1 redhat 7.3
Server2:172.25.24.2 redhat 6.5
Server3:172.25.24.3 redhat 6.5
关闭selinux和iptables

安装zabbix rpm包仓库和zabbix-server-mysql和zabbix-web-mysql
安装时报错需要两个php依赖

yum list php       #查看本机php版本

在这里插入图片描述

yum install -y 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.x86_64 0:5.4.16-42.el7 php-mbstring.x86_64 0:5.4.16-42.el7

在这里插入图片描述
自行下载依赖包后继续安装
在这里插入图片描述
安装mariadb-server并启动,安全初始化登陆mysql创建zabbix数据库及授权

yum install -y mariadb-server
systemctl start mariadb.service
mysql_secure_installation 
mysql -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '123';

在这里插入图片描述
将数据导入数据库

cd /usr/share/doc/zabbix-server-mysql-3.4.6/
zcat create.sql.gz | mysql -u zabbix -p zabbix     #需要输入授权用户密码

在这里插入图片描述

登陆数据库查看

use zabiix
show tables

在这里插入图片描述

修改配置文件

vim /etc/zabbix/zabbix_server.conf

在这里插入图片描述
修改时区

vim /etc/httpd/conf.d/zabbix.conf

在这里插入图片描述
开启zabbix-server,httpd,zabbix-agent

systemctl start zabbix-server.service 
systemctl start httpd.service 
systemctl start zabbix-agent.service

在这里插入图片描述

浏览器访问172.25.24.1/zabbix
在这里插入图片描述

逐步安装
在这里插入图片描述

此处密码为数据库zabbix授权用户密码
在这里插入图片描述

名字随意
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登陆用户是Admin 密码是 zabbix
在这里插入图片描述
在这里插入图片描述

点击右上角Admin图标修改密码也可以设置语言为中文
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此zabbix安装完成
在配置 -> 主机中点击 Zabbix server的已停用启用主机
在这里插入图片描述
在这里插入图片描述
刷新页面看见可用性ZBX变绿即可
在这里插入图片描述

将zabbix-agent添加到zabbix web中监控

在server2上安装zabbix-agent

rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm

在这里插入图片描述

修改配置文件

vim /etc/zabbix/zabbix_agentd.conf

指定zabbix_server端
在这里插入图片描述

ServerActive主动提交监控数据时使用

在这里插入图片描述
zabbix-agent标识,这里填agent主机名,需要在server1添加本地解析
在这里插入图片描述
在这里插入图片描述

完成后启动zabbix-agent

/etc/init.d/zabbix-agent start

在这里插入图片描述

在服务器端(zabbix web )添加主机节点

通过创建主机方式添加
点击配置—>主机—>创建主机

主机名称:必须要和agent中的HostName中一样,否则会出错
agent代理程序的接口填写zabbix-agent的ip
在这里插入图片描述
模版–选择–“Template OS Linux” 添加; 添加agent添加到zabbix监控中,默认是被动模式
在这里插入图片描述
完成后点击配置—>主机查看,如图等待server2 ZBX变绿即添加成功
在这里插入图片描述
通过自动发现方式添加
删除刚才创建的主机server2
点击配置—>动作–>事件源选择自动发现—>启用Auto discovery. Linux servers.
在这里插入图片描述

点击Auto discovery. Linux servers. 的已停用 启用
在这里插入图片描述
在 配置–>自动发现中点击Local network 进行修改
修改ip范围
在这里插入图片描述

在监测中–>仪表板–>自动发现状态栏 查看
Local network 的上 状态为1 表示成功
在这里插入图片描述
通过自动注册方式添加
删除刚才添加的主机server2
在这里插入图片描述
禁用动作Auto discovery. Linux servers.
在这里插入图片描述
禁用自动发现规则
在这里插入图片描述
点击配置—>动作–>事件源选择自动注册–>创建动作
在动作中添加新的触发条件
在这里插入图片描述
在操作中选择 添加主机,添加到主机群组,与模板关联
在这里插入图片描述
完成后点击添加
然后在server2上重启zabbix-agent
在这里插入图片描述
完成后在配置—>主机中查看,如图server2自动注册并且刷新页面 ZBX变绿即添加成功
在这里插入图片描述

通过API方式添加
禁用主动注册动作
在这里插入图片描述

在server1上创建zabbix-api脚本

vim zabbix-api.sh       #用户登陆并获取身份验证令牌
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.24.1/zabbix/api_jsonrpc.php | python -m json.tool

chmod +x zabbix-api.sh
./zabbix-api.sh

在这里插入图片描述

vim zabbix-api.sh    #获取hostid
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["host"]
    },
    "id": 1,
    "auth": "b6c96d8cc0ee1e8de645489514bf50a1"  #从上一个脚本输出结果result得来
}
' http://172.25.24.1/zabbix/api_jsonrpc.php | python -m json.tool

./zabbix-api.sh

在这里插入图片描述

vim zabbix-api.sh         #删除server2主机,若是没有创建server2主机则不用删除
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10256"
    ],
    "id": 1,
    "auth": "b6c96d8cc0ee1e8de645489514bf50a1"
}
' http://172.25.24.1/zabbix/api_jsonrpc.php | python -m json.tool

./zabbix-api.sh

在这里插入图片描述
在这里插入图片描述

vim zabbix-api.sh     #创建server2主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server2",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.24.2",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "id": 1,
    "auth": "b6c96d8cc0ee1e8de645489514bf50a1"
}
' http://172.25.24.1/zabbix/api_jsonrpc.php | python -m json.tool

./zabbix-api.sh

在这里插入图片描述
上面配置文件中
groupid可在zabbix监控页面 配置–>主机群组–>点击Linux servers 查看
此时页面网址最后面就是groupid
在这里插入图片描述

templateid在zabbix监控页面 配置–>模板–>点击Template OS Linux 查看
此时页面网址最后面就是templateid
在这里插入图片描述

完成后在配置—>主机中查看,如图server2自动注册并且刷新页面 ZBX变绿即添加成功
在这里插入图片描述

添加监控项

监控nginx
Server1

vim zabbix-api.sh       #创建server3主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server3",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.24.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "id": 1,
    "auth": "b6c96d8cc0ee1e8de645489514bf50a1"
}
' http://172.25.24.1/zabbix/api_jsonrpc.php | python -m json.tool
./zabbix-api.sh

安装zabbix-get

rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm  

在这里插入图片描述

Server3
安装zabbix-agent

rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf  #同server2  指定server和serveractive以及hostname

在这里插入图片描述

/etc/init.d/zabbix-agent start

编译安装nginx

yum install -y gcc pcre-devel zlib-devel    #编译所需依赖包
tar zxf nginx-1.14.0.tar.gz 
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
vim /usr/local/nginx/conf/nginx.conf
在server中添加
        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      #启动nginx
cp /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
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}'

nginx -s reload
/etc/init.d/zabbix-agent restart

在这里插入图片描述

Server1

zabbix_get -s 172.25.24.3 -p 10050 -k "nginx.active"      #查看

在这里插入图片描述

在zabbix监控页面 配置–>主机中点击server3–>点击监控项
在这里插入图片描述
点击右上角添加监控项 nginx.active,nginx.accepts,nginx.handled,nginx.requests
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择监控项中的图形
在这里插入图片描述
在这里插入图片描述

点击右上角创建图形,添加刚才建的四个监控项
为方便观察结果图形类别可以选则爆发的
在这里插入图片描述
点击预览查看
在这里插入图片描述

使用自带模板添加mysql到监控

Server1

mkdir /var/lib/zabbix
vim /var/lib/zabbix/.my.cnf 
[mysql]
host = localhost
user = zabbix
password = 123
socket = /var/lib/mysql/mysql.sock

[mysqladmin]
host = localhost
user = zabbix
password = 123
socket = /var/lib/mysql/mysql.sock

systemctl restart zabbix-agent.service

在这里插入图片描述
在监控页面 配置–>主机中点击Zabbix server
在模板中添加数据库模板
在这里插入图片描述
然后图形中会多两个图形
MySQL bandwidth 数据库带宽
MySQL operations 数据库操作

在这里插入图片描述
点击MySQL operations 在预览中查看
在这里插入图片描述

percona模板监控mysql
由于系统自带mysql监控模板的监控项太少,所以我们采用percona模板监控mysql
在监控页面 配置–>主机–>Zabbix server–>模板–> 取消链接并清理 Template DB MySQL --> 点击更新
在这里插入图片描述

Server1

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/templates
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent.service
mysql_secure_installation

在这里插入图片描述

cd /var/lib/zabbix/percona/scripts
vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = '123';

在这里插入图片描述

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ig  #测试

在这里插入图片描述

cd /tmp/
cat localhost-mysql_cacti_stats.txt
chown zabbix.zabbix localhost-mysql_cacti_stats.txt    #需要修改权限,或者删除此文件

在这里插入图片描述

在监控页面 配置–>模板–>右上角–>导入
在这里插入图片描述

在 配置–>主机–>Zabbix server -->模板–>添加Template Percona MySQL Server模板–>更新
在这里插入图片描述
此时会发现监控项多了一百多个

添加onealert警告

物理机
iptables -t nat -nL
iptables -t nat POSTROUTING -s 172.25.24.0/24 -j MASQUERADE

tar zxf oneitsm_zabbix_release-1.2.0.tar.gz -C /usr/lib/zabbix/alertscripts/
yum install -y net-tools
route add default gw 172.25.24.250 #虚拟机要可以上网
vim /etc/resolv.conf
nameserver 114.114.114.114
ping www.baidu.com #测试
cd /usr/lib/zabbix/alertscripts/oneitsm/bin
./install.sh e4090e90-f256-4b4f-6a87-d2d4b97080e6
Zabbix管理地址: http://172.25.24.1/zabbix
Zabbix管理员账号: Admin
Zabbix管理员密码: zabbix
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时警报服务已安装完成
为了避免干扰
在 监控页面 管理–>报警媒介类型–>禁用掉Email,Jabber,SMS
在这里插入图片描述

测试:
停掉server2的zabbix-agent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值