Ansibleの自動運用保守、ZABBIX監視

まずは管理マシンの準備(ボス)

1. 環境をインストールします。

yum install epel-release -y
yum install ansible libselinux-python -y

2. バージョンの表示

ansible --version

管理対象ノード(ノード)の準備

1. 環境ノードを準備します。

yum install epel-release libselinux-python -y

マスターノード構成ホスト:

vim /etc/ansible/hosts

 最後まで引っ張ってフォーマットする

[bobo] このような命名形式は管理が容易です

[bobo]
172.28.229.146
172.28.229.145

ansible で接続してみます。

ansible bobo -m command -a "hostname" -k -u root

パスワードを入力すると接続が成功し、実行が成功します。

 プロンプトが失敗した場合は、ssh root@ip を使用して再度接続します。

Ansible の実行テンプレート:

ansible bobo -m モジュール名 -a "シェルコマンド"

ansible chaoge -m command -a "uptime"

シークレットなしのログイン SSH キーを構成します。

1. マスターノードでキーペアを作成します。

ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1

2. 公開鍵ファイルと秘密鍵ファイルを確認する

cd ~/.ssh/
 ls
authorized_keys id_rsa id_rsa.pub known_hosts

3. マスター ノードは、公開キー配布スクリプトを作成します。

vim kry.sh
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
SSH_Pass=111111
Key_Path=~/.ssh/id_rsa.pub
for ip in 138 139
do
 sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o
StrictHostKeyChecking=no" 192.168.178.$ip
done

 4. key.sh を実行します。

5. ansible サブテストを使用します。

ansible bobo -m command -a "uname -a"

ansible-doc コマンド:

1. ansible でサポートされているすべてのモジュールをリストします。

ansible-doc -l |grep ^command
ັ このモジュールでサポートされているパラメータを表示する
ansible-doc -s command

 コマンド モジュールはデフォルトのモジュールです

シェルモジュール

シェルモジュールは頻繁に使用されるモジュールです: pear の例

 ansible bobo -m shell -a "ps -ef|grep vim|grep -v grep"

スクリプトをバッチで実行します。

ansible chaoge -m shell -a "mkdir -p /server/myscripts/;echo
'hostname' > /server/myscripts/hostname.sh;chmod +x
/server/myscripts/hostname.sh;bash
/server/myscripts/hostname.sh warn=False"

スクリプト モジュール --- フォーカス:

マスターは、すべてのノードで実行できるスクリプトを作成します。形式は類似しており、スクリプトはクライアントに存在する必要はありません。

ansible chaoge -m script -a "/myscripts/local_hostname.sh"

コピーモジュール: データをスレーブノードにプッシュします

ansible-doc -s copy  #查看参数的用法

例: ファイルのバッチ コピー:

ansible chaoge -m copy -a "src=/etc/hosts 
dest=/tmp/m01_hosts owner=learn_ansible group=learn_ansible
mode=0666"

コピーした情報を確認します。

 ansible chaoge -m command -a "ls -l /tmp/m01_hosts"

yum モジュールの練習:

nginx をバッチでインストールします。

ansible chaoge -m yum -a "name=nginx state=installed"

バッチチェック:

ansible chaoge -m shell -a "rpm -qa nginx warn=false"

nginx をバッチでアンインストールします。

ansible chaoge -m yum -a "name=nginx  state=absent"

バッチアップグレード:

ansible chaoge -m yum -a "name='nginx' state=latest"

プレイブック スクリプト:

最初のプレイブック: yaml 形式

 ホストホスト部分:

 スクリプト作成の仕様:

 スクリプトの実行:

ansible-playbook nginx.yaml

Playbook の詳細な出力を表示します。

ansible-playbook nginx.yaml --verbose

プレイブックのデプロイメント rsyns の実際の戦闘トピック:

 実際の書き方:

 プレイブックを実行します。

ansible-playbook install_rsync.yaml -C
ansible-playbook install_rsync.yaml

Zabbixj モニタリング:

メモリ要件は 2g 以上です。

getenforce  #查看防火墙状态
iptables -L  #查看iptablees
free -m  #服务端内存,尽量给大点

公式ダウンロード ソースを入手します。

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

ミラーソースを変更します。

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

Zabbix サーバーとエージェントをインストールします。

yum install zabbix-server-mysql zabbix-agent -y

ソフトウェア コレクションをインストールします。

yum install centos-release-scl -y

zabbix フロントセクションのソースを変更します。

vim /etc/yum.repos.d/zabbix.repo 
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$b
asearch/frontend
enabled=1 #修改这里
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

zabbix フロントエンド環境をインストールします。

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

zabbix データベースをインストールします。

yum install mariadb-server -y

データベースを起動し、ブートの自己破棄を構成します。

systemctl enable --now mariadb

データベースのパスワードを設定します。プロンプトに従います。

mysql_secure_installation

データベースに接続します。

[root@master ~]# mysql -u root -p

データベース接続の作成: 非常に重要

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'chaoge666';
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
quit;

 データベース情報をインポートします: ユーザー zabbix:

-p の後にデータベース名が続きます: パスワード chaoge666

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

ログインしてみます:

[root@master ~]# mysql -uzabbix -pchaoge666
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

データベースを表示:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
2 rows in set (0.01 sec)

MariaDB [(none)]> 

zabbix データベースを使用します。

MariaDB [(none)]> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> 
show tables;

構成ファイルのパスワードを変更します。

/etc/zabbix/zabbix_server.conf

検索:

 変更されているかどうかを確認します。

[root@zabbix-server01 data]# grep 'timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

タイムゾーンを変更します:

/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

 zabbix サービスを開始します。

 自動的に開始するように設定します。

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

 

おすすめ

転載: blog.csdn.net/weixin_42435798/article/details/126111663