zabbix安装
1.下载zabbix
官方地址:https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=mysql&ws=apache
安装自己的环境选择。
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭selinux
# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
重启生效
# reboot
2.安装zabbix server
2.1安装zabbix repository
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
2.2安装Zabbix server,Web前端,agent
yum 安装并保持包的设置
1.keepcache=0改为1
# vi /etc/yum.conf
#将其中的keepcache=0改为1,保存退出
2.yum安装各种软件包
3.查看缓存目录
cd /var/cache/yum/$basearch/$releasever
# yum install zabbix-server-mysql zabbix-agent
2.3安装zabbix frontend
启用Red Hat Software Collections
# yum install centos-release-scl
编辑配置文件/etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
[zabbix-frontend]
...
enabled=1
...
安装Zabbix frontend包
# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
2.4安装mariadb数据库
安装mariadb数据库
# yum install mariadb mariadb-server -y
启动数据库
# systemctl start mariadb
设置开机启动mariadb数据库
# systemctl enable mariadb
看端口、看进程
# ps aux|grep mysql
# netstat -anplut
2.5创建数据库和用户
创建数据库和用户
# mysql -uroot -p
直接回车,默认密码为空。
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
输入zabbix密码
2.6zabbix server配置数据库
编辑配置文件/etc/zabbix/zabbix_server.conf
# vi /etc/zabbix/zabbix_server.conf
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=123456
2.7为Zabbix前端配置PHP
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
; php_value[date.timezone] = Europe/Riga
改为
php_value[date.timezone] = Asia/Shanghai
或者直接命令修改
echo "php_value[date.timezone] = Asia/Shanghai" >> /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
2.8.启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
# 看进程、端口
ps aux|grep zabbix
netstat -anplut|grep zabbix
检查是否启动zabbix:
2.9.配置Zabbix前端
网页直接打开虚拟机的IP, http://192.168.5.101/zabbix
最后出现下面的界面,表示设置成功。
2.10.登录zabbix
用户名: Admin
密码: zabbix
把页面显示设置为中文
2.11.解决zabbix前端的图形界面出现中文的乱码问题
打开windows机器C盘C:\Windows\Fonts,找到以下路径中的楷体,将此文件复制到桌面
并将这个简体文件simkai.ttf复制到/usr/share/zabbix/assets/fonts/
修改配置文件/usr/share/zabbix/include/defines.inc.php
# vi /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
再回到主页, 主机–图形
这就表示乱码问题解决。
3.安装zabbix agent
关闭防火墙和selinux
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭selinux
# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
重启生效
# reboot
3.1安装zabbix repository
# yum install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
3.2安装zabbix agent
# yum install zabbix-agent
3.3修改zabbix agent配置文件
[root@zabbix-2 ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.5.101
ServerActive=192.168.5.101
Hostname=zabbix-2
需要改变的参数:
Server: 被动模式,允许哪台服务器连接Agent。
ServerActive: 主动模式,向哪台服务器传送数据。
Hostname: 填入主机名即可
3.3启动zabbix agent
# systemctl restart zabbix-agent
# systemctl enable zabbix-agent
检查端口
[root@zabbix-2 ~]# netstat -anltp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 960/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1052/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1203/zabbix_agentd
tcp 0 48 192.168.5.102:22 192.168.5.1:6569 ESTABLISHED 1135/sshd: root@pts
tcp 0 0 192.168.5.102:22 192.168.5.1:6570 ESTABLISHED 1137/sshd: root@not
tcp6 0 0 :::22 :::* LISTEN 960/sshd
tcp6 0 0 :::10050 :::* LISTEN 1203/zabbix_agentd
3.4手动添加主机
打开zabbix页面,配置->主机->创建主机
群组: 选择合适的主机监控目的,linux监控还是DB监控
客户端: 填入agent IP即可
输入完成之后,点击"模板"
可以看到主机添加成功,状态状态是已启用的。
稍等5分钟,然后查看数据
有数据显示,说明配置成功了。
3.5自动注册
由于只有一台agent,删除前面手工添加的主机
启用自动发现
设置成功的状态
设置自动发现的网段配置
修改成功的截图
查看是否添加成功。根据上面的更新间隔是1h,如果不想等,可以改成5m【5分钟】,下图表示已经自动添加成功。
3.6自动发现
先删除主机,并禁用自动发现的2个策略。
点击"创建动作"
再次点击添加,与模板关联
最后点击"添加"
重新启动zabbix agent服务
# systemctl restart zabbix-agent
刷新之后可以检测到zabbix-2已经添加
4.安装docker
#卸载已经安装的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#部署依赖与源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#部署docker
sudo yum install docker-ce docker-ce-cli containerd.io
#启动docker
systemctl start docker
systemctl enable docker
systemctl status docker
5.启用oracle镜像
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
os root密码为: helowin
数据库名: helowin
启动容器
docker start oracle11g
进入镜像配置
docker exec -it oracle11g bash
oracle用户的配置
切换到oracle 用户
su - oracle
oracle数据库的操作
source /home/oracle/.bash_profile
sqlplus / as sysdba
修改sys和system用户密码
alter user system identified by system;
alter user sys identified by sys;
创建用户 create user test identified by test;
给用户赋予权限 grant connect,resource,dba to test;
解锁demo用户(安装时若使用默认情况没有解锁和设置密码进行下列操作,要超级管理员操作)
alter user demo account unlock;
解锁demo用户的密码【也可用来重置密码】
alter user demo identified by demo;
建表及测试数据示例:
--创建表空间
create tablespace testdata
datafile '/home/oracle/app/oracle/oradata/helowin/table_test.dbf'
size 100m
autoextend on
next 10m;
--创建用户
create user demo
identified by demo
default tablespace testdata;
--给demo赋予DBA权限
grant dba to demo;
conn demo/demo;
--创建业主表
CREATE TABLE T_OWNERS(
ID NUMBER PRIMARY KEY,
NAME VARCHAR2(30),
ADDRESSID NUMBER,
HOUSENUMBER VARCHAR2(30),
WATERMETER VARCHAR2(30),
ADDDATE DATE,
OWNERTYPEID NUMBER
);
--插入语句
insert into T_OWNERS VALUES (1,'Jason Long',1,'1-1','123456',sysdate,1 );
commit;
--修改语句
update T_OWNERS set adddate=adddate-3 where id=1;
commit;
--删除语句
delete from T_OWNERS where id=1;
commit;
--删除语句
truncate table T_OWNERS;
创建用于监控的zabbix用户
CREATE USER ZABBIX IDENTIFIED BY zabbix DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
6.配置Oracle监控
通过odbc来获取oracle监控数据,所以下面的部分在zabbix server上面配置
安装Oracle-instantclient
#以下所有操作使用root账号执行
#创建目录
mkdir -p /opt/oracle
cd /opt/oracle
#下载odbc安装包
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-basic-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-sqlplus-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-devel-21.3.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/213000/oracle-instantclient-odbc-21.3.0.0.0-1.x86_64.rpm
#安装unixODBC和unixODBC-devel
yum -y install unixODBC unixODBC-devel
#安装oracle-instantclient
yum -y localinstall oracle-instantclient-*
#oracle-instantclient的安装位置如下
/usr/lib/oracle/21/client64
/usr/share/oracle/21/client64
/usr/include/oracle/21/client64
环境变量配置
vi /etc/profile
#在文本中添加以下代码
----------------
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
----------------
#保存后适用新的环境变量
source /etc/profile
#配置类库
chmod +x /usr/lib/oracle/21/client64/lib/libsqora.so.21.1
cd /usr/lib64
ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
添加Oracle驱动
vi /etc/odbcinst.ini
#在文本中添加以下代码
----------------
[Oracle]
Description = ODBC for Oracle
Driver = /usr/lib/oracle/21/client64/lib/libsqora.so.21.1
----------------
添加ODBC DSN
vi /etc/odbc.ini
# 配置示例
[helowin]
Driver = Oracle #刚才添加的驱动名称
ServerName = 192.168.5.102:1521/helowin #ip:port/sid
UserID = zabbix
Password = zabbix
[MESDB02]
Driver = Oracle
ServerName = 10.255.32.99:1521/orcl
#ServerName = TNS中的TNSNAME 适用这种情况时虽然isql可以连接,但是zabbix agent将无法处理
#TNS 需在$ORACLE_HOME/network/admin目录中创建tnsnames.ora文件
# mkdir -p $ORACLE_HOME/network/admin/
# vi $ORACLE_HOME/network/admin/tnsnames.ora
test=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.102)(PORT = PORT))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
检查数据库连接
必须确保此处连接成功才可进行下一步操作
# isql -v helowin
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from dual;
+------+
| DUMMY|
+------+
| X |
+------+
SQLRowCount returns -1
1 rows fetched
SQL> quit
#显示Connected!说明连接成功
ZabbixServer主机配置
创建oracle主机
我的版本找不到 模板Oracle by ODBC ,所以手工导入模板。
模板下载地址: https://share.zabbix.com/templates/databases-oracle-template-oracle-db/#body
选择"配置"->“模板”->“导入模板”
导入完成
主机选择模板
设置主机所用模板的变量,{$DSN}设置为 odbc.ini中[helowin]
查看最新数据
监测->最新数据,选择创建的主机
刚配置完,要等5分钟,看有没有最新数据。如果没有数据,我们就需要回到配置,查看监控项的状态,在信息里面会有提示,错误原因。
Item 如果有问题,会默认禁用,如果我们要监控,就启用,并查看错误是什么。
配置聚合图形
监测-> 聚合图形->创建聚合图形
7.Grafana展示zabbix监控数据
安装grafana
# officer site: https://grafana.com/docs/grafana/latest/installation/rpm/#install-manually-with-yum
# localhost:3000
# install grafana repository
echo '[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt' > /etc/yum.repos.d/grafana_oss.repo
rpm --import https://packages.grafana.com/gpg.key
#install grafana
# yum -y install grafana
只下载安装包
# yum -y install grafana --downloadonly --downloaddir=/tmp
# systemctl daemon-reload
# systemctl enable grafana-server
# systemctl start grafana-server
查看进程
# ps -ef |grep grafana
查看端口
# netstat -plnt |grep 3000
直接访问IP:3000即可访问
http://192.168.5.101:3000/login
默认账号密码都是admin直接登陆
admin密码改为 grafana
安装zabbix插件
# grafana-cli plugins install alexanderzobnin-zabbix-app #安装zabbix插件
# systemctl restart grafana-server #重启Grafana
插件下载地址
https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app/?tab=installation
you can manually download the .zip file and unpack it into your grafana plugins directory.
https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.2.10/download
登录web激活插件
激活之后,界面
grafana添加数据源
配置zabbix数据源
配置数据源选项,要注意Url部分,如果你的Zabbix访问路径为http://192.168.5.101,那么Url就填写http://192.168.5.101/zabbix/api_jsonrpc.php;Zabbbix API details部分就填写Zabbix的账号密码。
最后"Save & Test"
dashboard模板导入
官网模板: https://grafana.com/grafana/dashboards
zabbix的模板ID为 5363
dashboard效果
5456模板效果