文档结构
1 zabbix介绍
2 安装部署
(1) zabbix server安装
(2) zabbix agent安装
(3) 监控Ceph Jewel
3 参考资料
zabbix介绍
首先需要简单介绍下Zabbix,避免因认识上的错误造成安装部署过程中走很多弯路。
Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent,也可以支持SNMP, IPMI, JMX, Telnet, SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件时触发告警。
通过以上这段比较官方的描述,首先要确定一件事情:Zabbix不是针对Ceph而开发的监控工具,而是一个可以用来监控Ceph的工具。
安装部署
环境描述
本次部署,共涉及两个节点。
- 节点1:10.128.3.76,CentOS7操作系统,为单节点Ceph(Jewel)环境,同时用来部署Zabbix Agent;
- 节点2:10.133.45.31,CentOS7操作系统, 为Zabbix Server部署节点。
zabbix server安装
依赖环境安装
安装Apache
执行以下命令:
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
1.修改配置项
DirectoryIndex index.php index.html
2.添加配置项
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
启动服务:service httpd start && chkconfig httpd on
安装PHP
执行以下安装命令:
yum -y install php php-gd php-xml php-bcmath php-mbstring php-mysql
访问测试:
vi /var/www/html/index.php
访问http://localhost,会显示php相关信息,则表示php+apache整合成功
安装Mysql
执行以下命令:
yum install mysql mysql-server mysql-devel
或
yum -y install mariadb-server mariadb-client
service mysqld start
或
systemctl start mariadb.service
mysqladmin -u root password 'onest123'
其他依赖软件包
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc
zabbix server安装
下载zabbix
直接去官网下载即可,可以选择自己要安装的zabbix包。
www.zabbix.com
本文档中下载的是:zabbix-3.0.4.tar.gz
安装zabbix
useradd zabbix -s /sbin/nologin
tar zxvf zabbix-3.0.4.tar.gz
cd zabbix-3.0.4
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl
make install
创建数据库
mysql -uroot -ponest123
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit
导入数据
vi database/mysql/schema.sql
:%s/ENGINE=InnoDB/ENGINE=InnoDB CHARACTER SET utf8/g (解决中文乱码问题)
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql (可能等待时间较长)
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
确认服务存在
vi /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
配置文件
配置Zabbix
vi /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
配置PHP
vi /etc/php.ini
max_input_time = 600
max_execution_time = 300
date.timezone = Asia/Shanghai
post_max_size = 32M
memory_limit = 128M
service httpd restart
自动启动
修改参数
cp misc/init.d/fedora/core/* /etc/init.d/
sed -i 's/BASEDIR=\\/usr\\/local/BASEDIR=\\/usr\\/local\\/zabbix/g' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\\/usr\\/local/BASEDIR=\\/usr\\/local\\/zabbix/g' /etc/init.d/zabbix_agentd
启动进程
echo "/etc/init.d/zabbix_server start" >> /etc/rc.local
echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start(可以不执行,如果zabbix server也需要被监控,则执行)
开放端口
iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT
iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT
service iptables save
本文档是在测试环境,所以将防火墙关闭了,无需执行开放端口选项
zabbix server web页面初始化
复制zabbix页面文件
cd ~/zabbix-3.0.4/
cp -R frontends/php/ /var/www/html/zabbix
访问Web页面进行初始化
http://ip/zabbix
按照页面提示执行即可,需要所有选项为OK状态
初始化过程中遇到的问题:
PHP option "mbstring.func_overload"
注释掉/etc/php.ini中 mbstring.func_overload = 2问题解决
zabbix agent安装
依赖软件安装
yum install -y gcc curl
下载软件包
使用zabbix server的安装包即可
安装
useradd zabbix -s /sbin/nologin
tar zxvf zabbix-3.0.4.tar.gz
cd zabbix-3.0.4
./configure --prefix=/usr/local/zabbix_agent --enable-agent
make install
配置
vi /usr/local/zabbix_agent/etc/zabbix_agentd.conf
Server=10.188.1.103 #zabbix服务器IP
Hostname=10.188.1.88 #客户端本机IP
UnsafeUserParameters=1 #允许用户自定义参数
EnableRemoteCommands=1
UserParameter=tcpportlisten,/usr/local/zabbix_agent/sbin/discovertcpport.sh "$1"
开放端口
同zabbix server部分,也可以关闭防火墙
启动
cp /usr/local/zabbix_agent/sbin/zabbix_agentd /etc/init.d/
chmod a+x /etc/init.d/zabbix_agentd
service zabbix_agentd start
echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local
也有可能遇到zabbix agent无法启动的情况:
启动成功,进程不存在,则执行:
/usr/local/zabbix_agent/sbin/zabbix_agentd -c /usr/local/zabbix_agent/etc/zabbix_agentd.conf
测试
安装好后,在zabbix server上进行连接测试:
/usr/local/zabbix/bin/zabbix_get -s -p 10050 -k "system.uptime"
1060020
监控Ceph Jewel
获取ceph-zabbix
github地址:
https://github.com/thelan/ceph-zabbix
zabbix agent相关配置
1.复制ceph-zabbix目录下的ceph-status.sh到/opt/目录下;
2.将ceph-zabbix目录下,zabbix_agent_ceph_plugin.conf中的内容添加到zabbix agent的配置文件/usr/local/zabbix_agent/etc/zabbix_agentd.conf中
3.重启zabbix agent
service zabbix_agentd restart
zabbix server相关配置
- 访问zabbix server web页面:http://ip/zabbix/
- 用admin登录,默认密码zabbix
- 添加Templates:选择Configuration选项--> Templates-->import-->import file选择ceph-zabbix/zabbix_templates目录下的xml文件-->依次导入
- 添加Hosts:选择Configuration选项--> Hosts -- > Create Host-->在Host选项卡填写相关IP信息-->在Templates选项卡Link new templates,添加刚刚增加的templates.
遇到问题
zabbix agent无法获取ceph相关信息,需要放开zabbix用户对/etc/ceph/*keyring的访问权限
参考资料
- Zabbix安装: http://ywzhou.blog.51cto.com/2785388/1578555
- ceph-zabbix: https://github.com/thelan/ceph-zabbix