文章目录
一、zabbix的简介
1.什么是zabbix
zabbix([`zæbiks])是一个基于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等平台上。
2.zabbix中常用的组件说明
二、zabbix的安装
1.安装包的获取
可以在官网https://www.zabbix.com/上根据需要下载对应的版本,本机使用的是4.05版本
2.环境准备
172.25.21.1server1:既是监控节点,也是一个普通节点,其他都是普通节点
3.环境安装
为了方便起见,直接在本地搭建一个yum源,将这些软件都放在一个专门的目录下
createrepo -v /存放软件包的目录 ##创建一个repodata然后可以直接通过yum安装
vim /etc/yum.repos.d/rhel.repo ##搭建第三方yum源
server1安装:
yum install zabbix-server-mysql.x86_64 -y ##安装监控服务
yum install zabbix-web-mysql -y ##安装网页前端服务
yum install zabbix-agent.x86_64 -y ##节点服务
yum install mariadb-server -y ##安装mysql数据库,本处使用的是mariadb
##普通节点只需要安装zabbix-agent即可
三、生成监控页面的配置
1.配置文件的修改
server1的配置:
systemctl start mariadb ##开启mysql,生成socket
mysql_secure_installation ##安全初始化,本机设定密码redhat,设定密码后全选yes即可,详细可参考我之前的mariadb文章
mysql -uroot -predhat ##进入数据库,建立一个zabbix表并赋予zabbix用户权限
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; ##utf8防止乱码
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix ##把zabbix的数据导入到zabbix表里
vim /etc/zabbix/zabbix_server.conf ##把数据库的密码加入文件
vim /etc/httpd/conf.d/zabbix.conf ##修改时区为亚洲/上海
启动服务:
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
systemctl start httpd ##安装zabbix-web-mysql服务时会安装apache,不用手动安装
systemctl enable httpd
2.网页配置
在浏览器输入 172.25.21.1/zabbix 进入图形配置
设置完后的效果:
四、添加被监控主机的四种方法
需要在被监控主机上安装zabbix-agent来成为一个节点,并修改配置文件
vim /etc/zabbix/zabbix_agentd.conf ##修改配置文件
systemctl restart zabbix-agent.service ##重启服务
netstat -antlp ##通过查看端口来看服务是否开启,agent端口10050
这个Server是被动获取:
这个ServerActive是主动获取,使用Hostname记得做好本地解析
1.手动创建主机
创建成功后效果如下图:
2.自动发现主机
考虑到主机的个数,先把手动创建的server2删除掉
(1)先创建一个动作
(2)自动发现配置
(3)稍微等待一会,有默认的更新间隔
3.自动注册主机
再创建一个节点server3,安装agent服务即可,再把agent的配置文件按照server2一样把两处server指向server1的ip,再把主机名改为自己的主机名
自动注册只需要设置自动注册动作即可
创建一个新的动作
查看主机是否添加:
4.api脚本的方法(适合批量操作主机)
在监控节点上操作:
vim zabbix-api ##编写一个api脚本
chmod +x zabbix-api ##给执行权限
这里返还的result相当于一个密钥,后面的操作都需要用到这个密钥才能执行
获取所有主机的hostname和hostid,创建和删除主机都是对hostid进行操作
通过api脚本直接删除主机,也可以直接添加多个hostid删除多个,如
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10264",
"10265"
],
"auth": "0fd8e9c29897c535e2c98f771251fa72",
"id": 1
}' http://172.25.21.1/zabbix/api_jsonrpc.php | python -m json.tool
没有报错即为操作成功,登陆网页查看主机是否被删除,操作成功
通过api脚本创建主机,在网页上把server3也删除掉
需要用到groupid和模板id,可以通过get获取,也可以直接在网页上点击响应的组和模板获取,如下图
修改脚本
登陆网页上测试,发现执行脚本只能创建一个主机,把创建的主机信息删掉后再次执行,创建第二个主机:
五、添加监控项监控nginx
1.在server3上安装nginx并修改配置文件
安装包可以在nginx官网上下载,本机使用的是nginx-1.8.1.tar.gz
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module ##检测环境生成makefile
make && make install ##编译并安装
vim /usr/local/nginx/conf/nginx.conf ##修改配置文件提供监控内容
/usr/local/nginx/sbin/nginx ##启动服务
使用curl访问测试查看状态:
accepts:允许的请求次数
handled:三次握手的次数
requests:处理请求的次数
将检测到的数据提取出来
复制生成nginx监控项模板,把提取数据的命令写入到文件中
记得配置完文件后重启nginx和agent
/usr/local/nginx/sbin/nginx -s reload
systemctl restart zabbix-agent
依次点击配置->主机->server3->监控项->创建监控项,创建时的书写内容如下图,其余都使用默认参数即可,配置完成后启用监控项
创建图形,把刚才的监控项以图形的方式显示出来
在真机上用ab命令来访问server3,产生大量数据,等待一段时间后再预览图形即可查看到形状
ab -c10 -n10000 http://172.25.21.3/index.html ##10个并发数,访问10000次
六、部分中文乱码显示解决
1.首先获取一个ttf格式的字体,可以再windows上下载,本机使用的是simkai.ttf
2.将字体移动到指定目录下并修改文件
3.在浏览器上刷新页面测试ok