Zabbix是完全开源的软件,是用C语言写的,只发社区版。
Zabbix由server和可选组件agent两部分构成。可以通过SNMP、zabbix agent、ping、端口监视等方法提供对远程服务器、网络状态的监视、数据收集等功能,它可以运行在Linux、Solaris、HP-UX、AIX、FreeBSD、OpenBSD、OS X等平台上。
Salestack 应用自动化部署
Anshable
Cacti+nagios(状态变化做报警) 200-300台
一、监控模块
1.数据采集
snmp简单网络管理协议 版本V1(明文传输)、V2(明文传输)、V3
ssh sshd远程连接到服务器,执行脚本 再发回来
2.数据存储 cacti早期用的rrdb 轮转数据 监控前声明保存时间,无法修改
3.数据展示及分析 web界面提供
4.数据报警及分析 报警无效之后报警升级
Zabbix 整个架构最大支持10万台 单机五万台理论数据 一般1万台左右。
二、3种采集方式
Agent : 专用代理 软件到软件的传输 加密传输。可以监控应用 甚至可以监控到多少用户登录 监控点细
Snmp : 监控网络设备
采集器 :主动模式 -不是只能用模版提供的标准检测器方式
三、监控数据存储媒介
RDBMS:Oracle(成本较高)、Mysql、SQLServer、PGSQL
数据展示及分析 安装Apache Nginx
四、相关rpm包
zabbix-release:会生成一个zabbix的yum源,可以直接下载相关软件包。
zabbix-web:zabbix要使用web界面,这个包是用来处理Apache和php,mysql等之间的依赖关系。
zabbix-web-mysql:这个是zabbix前段支持mysql的
zabbix-java-gateway:用于监控JMX应用的程序,它把收集到的信息发送个(这个看需求安装)
监控端
zabbix-server
Zabbix-server-mysql
apache
Zabbix-web
Zabbix-web-mysql
Zabbix(核心包)
Zabbix-get zabbix的一个工具,用来检查是否可以获取服务器信息(一般服务端要安装)
Sendmail(无法进行密码验证) mailx命令发邮件
依赖包
也可以安装 agent 监控监控服务器状态
被监控端
zabbix-agent zabbix客户端,用来收集客户端各种参数
Zabbix(核心包)
Zabbix-sender
服务器端Zabbix_get 手动测试抓取数据命令工具
被监控端 zabbix-sender 用于采集数据发送数据给server或者proxy。
Zabbix-proxy zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力。zabbix proxy可以非常简便的实现了集中式、分布式监控。
3.4以上版本 PHP版本至少是5.4
rpm –Uvh 软件升级
tar –xzf php5.6.31.tar.gz
systemctl stop firewalld
systemctl stop NetworkManager
五、部署Mysql数据库主从
1.配置yum源
vim /etc/yum.repos.d/yum.repo
编辑内容
[zabbix3.4]
name=zabbixserver
enabled=1
gpgcheck=0
baseurl=file:///mnt/cdrom
保存退出
挂载光盘 mount /dev/cdrom /mnt/cdrom
可以在/etc/fstab设置自动挂载
/dev/cdrom /mnt/cdrom auto exec 0 0
yum clean all
yum repolist 查看是否挂在成功
2.搭建Mysql5.7
安装相关依赖包
yum -y groupinstall "Development tools"
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
解压Mysql的tar包
tar -xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
复制相关目录
复制解压后的mysql到mysqlbase目录
cp -rf mysql-5.7.12-linux-glibc2.5-x86_64 /usr/local/mysql
创建用户
useradd mysql
创建数据目录
mkdir -p /home/mysql3306/mysql3306
创建日志目录
mkdir -p /home/mysql3306/logs
修改相关目录权限
chown mysql:mysql -R /home/mysql3306
chown mysql:mysql -R /usr/local/mysql
配置文件
cp my3306.cnf /etc/my3306.cnf
初始化mysql
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --initialize-insecure --explicit_defaults_for_timestamp --basedir=/usr/local/mysql --datadir=/home/mysql3306/mysql3306/ --user=mysql
启动MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --datadir=/home/mysql3306/mysql3306/ --user=mysql &
进入MYSQL
/usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock
SQL>
select user,host,authentication_string from mysql.user;
update mysql.user set authentication_string=password('root') where user='root';
delete from mysql.user where host='::1';
delete from mysql.user where user='';
flush privileges;
启动MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --datadir=/home/mysql3306/mysql3306/ --user=mysql &
创建主库同步用户
grant REPLICATION CLIENT,REPLICATION SLAVE on *.* to rep@'%' identified by 'monitor';
grant all on *.* to rep@’%’ identified by ‘monitor’
查看主库服务器状态
show master status
主库加锁 防止变化
Flush tables with read lock;
从库设置同步主库
change master to master_host='10.2.2.21',master_user='rep',master_password='aimer',master_log_file='mysql-bin.000002',master_log_pos=1207,MASTER_PORT=3306;
show slave status\G
看到最下面两个yes 主从配置成功
六、部署zabbix server
1.操作系统版本
[root@aws zabbix]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
Vi /etc/resolv.conf
Nameserver 8.8.8.8
cd /etc/yum.repos.d
wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@aws yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
2.在安装zabbix的时候报错(红色是执行的语句),如下:
yum install zabbix-server-mysql zabbix-web-mysql
--> Finished Dependency Resolution
Error: Package: zabbix-web-3.4.7-1.el7.noarch (zabbix)
Requires: php-bcmath
Error: Package: zabbix-web-3.4.7-1.el7.noarch (zabbix)
Requires: php-mbstring
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
3.这两个模块的yum源比较少,在网上发现163的yum源包含它们,那么就需要替换yum源,步骤如下:
vimCentOS7-Base-163.repo
# CentOS-Base.repo
#
# The mirror system uses the
connecting IP address of the
client and the
# update status of each
mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS
updates
# unless you are manually picking other
mirrors.
#
# If the
mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
10. #
11. #
12. [base]
13. name=CentOS-$releasever - Base - 163.com
14. #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
15. #baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
16. baseurl=http://mirrors.163.com/centos/7/os/x86_64/
17. gpgcheck=1
18. gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
19.
20. #released updates
21. [updates]
22. name=CentOS-$releasever - Updates - 163.com
23. #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
24. #baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
25. baseurl=http://mirrors.163.com/centos/7/updates/x86_64/
26. gpgcheck=1
27. gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
28.
29. #additional packages that may be
useful
30. [extras]
31. name=CentOS-$releasever - Extras - 163.com
32. #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
33. #baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
34. baseurl=http://mirrors.163.com/centos/7/extras/x86_64/
35. gpgcheck=1
36. gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
37.
38. #additional packages that extend
functionality of existing packages
39. [centosplus]
40. name=CentOS-$releasever - Plus - 163.com
41. #baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
42. gpgcheck=1
43. enabled=0
44. gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
yum clean all
yum makecache
yum install zabbix-get zabbix-sender zabbix-server-mysql zabbix-web-mysql zabbix-agent
生成快照updatedb
查找create.sql文件位置
[root@localhost ~]# locate create.sql
/usr/share/doc/zabbix-server-mysql-3.4.9/create.sql.gz
7、切换到zabbix-server目录
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.9/
8、查看目录下文件详细信息
[root@localhost
zabbix-server-mysql-3.4.9]# ll -h
total 2.1M
-rw-r--r-- 1 root
root 98 May 9 17:57 AUTHORS
-rw-r--r-- 1 root root
822K May 9 17:57 ChangeLog
-rw-r--r-- 1 root
root 18K May 9 17:57 COPYING
-rw-r--r-- 1 root root
1.3M May 9 18:01 create.sql.gz
-rw-r--r-- 1 root root 52 May
9 17:57 NEWS
-rw-r--r-- 1 root root
188 May 9 17:57 README
9、解压create.sql.gz这个文件:
[root@localhost zabbix-server-mysql-3.4.9]# gunzip create.sql.gz
10、把这个create.sql导入到数据库中,时间可能稍微有些长,多等一会。
[root@localhost zabbix-server-mysql-3.4.9]# mysql -uzabbix -p
zabbix < create.sql
11、查找这个mysql.sock文件路径,记下来,一会要用到:
[root@localhost zabbix-server-mysql-3.4.9]# locate
mysql3306.sock
/tmp/mysql3306.sock
安装php5.6.31
执行【 yum install -y gcc gcc-c++ openssl openssl-devel libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel gd bzip2 bzip2-devel curl curl-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel】
开始安装了,漫长的过程.....总下载量61M.
./configure --prefix=/usr/local/php5.6.31/
make
make install
rpm -ql查看是否安装成功
配置主配置文件
vi /etc/zabbix/zabbix_server.conf
监听端口10051
日志文件路径
LogFile=/var/log/zabbix/zabbix_server.log
pid文件路径
pidfile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost #mysql的ip地址
如果mysql和zabbix server是同一台机器,IP地址写本机IP或127.0.0.1
保存退出
Server配置完成
登录数据库配置
mysql –S /tmp/mysql3306.sock #登陆数据库
create database zabbix character set utf8 collate utf8_bin; #创建zabbix数据库
grant all on zabbix.* to monitor@'%' identified by 'monitor'; #授权
flush privileges;
show processlist; 查看当前用户信息
数据库中操作完成
七、配置web页面
查看apche是否安装
rpm –ql httpd
启动apche服务
systemctl start httpd
出现此报错:ip反解析主机名错误
vim /etc/httpd/conf/httpd.conf
ServerName 注释打开 改成本机地址
浏览器中打开http://10.2.2.22
看到测试页说明Apache正常工作 但页面是apche的欢迎页面
rpm –ql zabbix-web
查看子配置文件zabbix.conf
vim /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix 定义别名路径
访问web输入 ip地址/zabbix
http://10.2.2.22/zabbix
此红色报错为时区不一致
vim /etc/php.ini 修改时区
946行 date.timezone=Asia/Shanghai
重启apache服务生效
systemctl restart httpd
设置支持中文字体
一般会发现web页面下的中文会出现小方框乱码
1.进入web根目录下的fonts目录,将windows的宋体字体 导入simsun.ttf
2.编辑zabbix字体定义文件
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php
或者执行以下替换命令: sed -i 's/graphfont/simkai/g' /usr/share/zabbix/include/defines.inc.php
都是ok 点下一步
先点 test connection 显示ok
点击 finish完成
vim /etc/zabbix/web/zabbix.conf.php
内容保存到此文件中,后期有配置的修改,改此文件即可
初始密码用户名Admin 密码zabbix
访问之前先启动 zabbix server
systemctl start zabbix-server
如果出现zabbix web菜单无法点击
chmod 777 /var/lib/php/session/
zabbix主页面
guest用户禁用
节点2安装 zabbix-proxy
vi/etc/zabbix/zabbix-proxy.conf
Server=10.2.2.22 #同步指向的server端的IP,非本地IP。可以是server端的主机域名,但要确保proxy端解析server的域名,并且网络可达
Hostname=monitor2 #proxy本地的名称,此名称需要与将来在server端的WEB页面上的代理程序名称一致,名称自定义
DBHost=10.2.2.22 #与上面配置对应
DBName=zabbix #与上面配置对应
DBUser=monitor #与上面配置对应
DBPassword=monitor #与上面配置对应
DBPort=3306 #与上面配置对应 -
Systemctl start zabbix-proxy
致此,系统级proxy安装设置完成。回到server 端WEB页面添加代理机。如下。
管理-àagent代理程序à创建代理
*代理名称要与上面HOSTNAME名称一致
之后添加的主机可以选择monitor2 代理服务器