zabbix 的部署原理
1. zabbix server需要把监控数据入sql数据库,所以得Mysql环境
2. zabbix的 web是基于php开发的,所以得LNMP环境
3. 部署zabbix server和zabbix web
第一步,安装nginx
安装nginx 请参考:https://www.cnblogs.com/faberbeta/p/nginx003.html
第二步,先安装mysql
mysql 安装脚本请参考:https://www.cnblogs.com/faberbeta/p/nginx-install002.html
第三步,安装PHP
php安装请参考:https://www.cnblogs.com/faberbeta/p/12918695.html
LNMP架构
1. 用户 > PHP文件
2. 请求到达nginx, nginx通过 127.0.0.1:9000 去调用 php-fpm
3. php-fpm > 运行php程序
4. php > 操作mysql
LNMP 的环境验收,/usr/local/nginx/html/text_mysql.php
<?php $link=mysql_connect("127.0.0.1:50000","root","zabbixpwd"); if(!$link){ echo "mysql_connect fail"; }else{ echo "mysql_connect success"; } ?>
#注意,以上测试数据库root的秘密是zabbixpwd,请根据自己的数据root秘密,做相应修改
#注意,以上测试的数据库端口是50000,请根据自己的数据root秘密,做相应修改
第四步,安装zabbix
zabbix 的官网
https://www.zabbix.com/
zabbix server编译安装
yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel
useradd -s /sbin/nologin zabbix
cd /usr/local/src/
wget 'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.0/zabbix-4.2.0.tar.gz'
或者wget 'http://download.zhufunin.com/zabbix/zabbix-4.2.0.tar.gz'
tar -zxvf zabbix-4.2.0.tar.gz
cd zabbix-4.2.0
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/app/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make && make install
选项说明
1. --prefix指定安装目录
2. --enable-server 安装zabbix server
3. --enable-agent 安装zabbix agent
4. --with-mysql 用mysql来存储
zabbix server的安装验证
环境变量设置
echo 'export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin' >> /etc/profile source /etc/profile
在/etc/ld.so.conf中添加mysql的lib (/usr/local/mysql/app/mysql/lib/)
之后ldconfig一下
查看版本: zabbix_server --version
zabbix server的启动
1. 需要到mysql里做数据库初始化
2. 配置zabbix server 主要是配置链接mysql的用户名和密码
3. 启动zabbix server
Mysql数据库初始化mysql -uroot -pzabbixpwd -A
# 请根据具体个人的数据 root密码登陆自己的数据,我用的密码是zabbixpwd
create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd'; flush privileges; set names utf8; use zabbix; source /usr/local/src/zabbix-4.2.0/database/mysql/schema.sql; source /usr/local/src/zabbix-4.2.0/database/mysql/data.sql; source /usr/local/src/zabbix-4.2.0/database/mysql/images.sql;
zabbix server的配置 /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/zabbix_server.log DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=zabbixpwd DBPort=50000 Timeout=30 AlertScriptsPath=/usr/local/zabbix/alertscripts ExternalScripts=/usr/local/zabbix/externalscripts LogSlowQueries=30000
#注意,数据库密码换成自己的,我用的密码是zabbixpwd
启动 zabbix server
chown zabbix:zabbix -R /usr/local/zabbix/ /usr/local/zabbix/sbin/zabbix_server
启动 zabbix server 的zabbix_agentd
/usr/local/zabbix/sbin/zabbix_agentd
验证
1. 进程 ps -ef |grep zabbix
2. 端口 netstat -lpntu |grep zabbix
3. 是指 tail -50 /usr/local/zabbix/zabbix_server.log
Zabbix Web的安装
mkdir /usr/local/nginx/html/zabbix cp -a /usr/local/src/zabbix-4.2.0/frontends/php/* /usr/local/nginx/html/zabbix/
访问zabbix web, 需要做一些初始化设置
http://192.168.1.112/zabbix/
zabbix web配置php做配置优化 /usr/local/php/etc/php.ini
1. post_max_size = 32M
2. max_execution_time = 350
3. max_input_time = 350
4. date.timezone = Asia/Shanghai
5. always_populate_raw_post_data = -1
6. systemctl restart php-fpm
登陆zabbix http://192.168.1.112/zabbix/ 根据页面提示,一步一步,进行下去,最后会让你下载zabbix.conf.php文件, 然后让你把这个文件放在某个目录下,放好后,下一步,就安装结束了
1. 默认用户名和密码,Admin zabbix
3. 禁用guest用户
4. 更改admin的密码,更改自己的密码
启动zabbix的时候找不到,libmysqlclient.so.18,这样做
[root@localhost lib]# /etc/init.d/zabbix_server start
Starting zabbix_server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
[FAILED]
解决方法
[root@localhost ~]# find / -name "libmysqlclient.so.18"
/usr/lib64/mysql/libmysqlclient.so.18
[root@localhost ~]# echo "/usr/lib64/mysql/" >> /etc/ld.so.conf
[root@localhost ~]# ldconfig
第五步,安装grafana
请参考:https://www.cnblogs.com/faberbeta/p/12923298.html
Grafana的数据源介绍
1. 支持influxdb等
2. 默认不支持去Zabbix读取数据,需要安装插件
在grafana服务器中
Grafana安装Zabbix插件
1. grafana-cli plugins list-remote
2. grafana-cli plugins list-remote|grep -i zabbix
3. grafana-cli plugins install alexanderzobnin-zabbix-app
4. 插件安装有时候比较慢,可以下载离线的zabbix插件,放到/var/lib/grafana/plugins
5. systemctl restart grafana-server
Grafana开启Zabbix插件
plugins -> apps -->> zabbix -> enable
之后在数据源那里可以看到zabbix
Grafana配置Zabbix数据源
1. http://192.168.1.112/zabbix/api_jsonrpc.php
2. 选择Zabbix的版本
3. 配置Zabbix用户名密码
4. 添加数据源成功会有提示
Grafana面板中添加图形
1. CPU负载,CPU时间
2. 服务器流量
3. 其他的监控
Grafana变量的使用
1. 主机组变量: group:*
2. 主机变量: host:$group.*
Grafana变量的使用
1. 流量图中使用模版,可以随意观察某台主机的流量
2. CPU利用率使用模版,可以随意观察某台主机的CPU利用率