『壹』 如何在CentOS 7上安裝Elasticsearch,Logstash和Kibana
您的ELK伺服器將需要的CPU,RAM和存儲量取決於您要收集的日誌的卷。在本教程中,我們將使用具有以下規格的VPS用於我們的ELK伺服器:
OS: CentOS 7
RAM: 4GB
CPU: 2
註:根據自己的伺服器資源分配各個節點的資源
安裝 java 8
Elasticsearch和Logstash需要Java,所以我們現在就安裝它。我們將安裝最新版本的Oracle Java 8,因為這是Elasticsearch推薦的版本。
註:建議本地下載完最新版的JDK,然後上傳到伺服器的/usr/local/src目錄
# JDK下載地址:
http://www.oracle.com/technetwork/java/javase/downloads
123123
然後使用此yum命令安裝RPM(如果您下載了不同的版本,請在此處替換文件名):
yum -y localinstall jdk-8u111-linux-x64.rpm
# or
rpm -ivh jdk-8u111-linux-x64.rpm123123
現在Java應該安裝在/usr/java/jdk1.8.0_111/jre/bin/java,並從/usr/bin/java 鏈接。
安裝 Elasticsearch
Elasticsearch可以通過添加Elastic的軟體包倉庫與軟體包管理器一起安裝。
運行以下命令將Elasticsearch公共GPG密鑰導入rpm:
# https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch123123
在基於RedHat的發行版的/etc/yum.repos.d/目錄中創建一個名為elasticsearch.repo的文件,其中包括:
echo '[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/elasticsearch.repo123456789123456789
Elasticsearch 源創建完成之後,通過makecache查看源是否可用,然後通過yum安裝Elasticsearch :
yum makecache
yum install elasticsearch -y1212
要將Elasticsearch配置為在系統引導時自動啟動,請運行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service1212
Elasticsearch可以按如下方式啟動和停止:
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service1212
這些命令不會提供有關Elasticsearch是否已成功啟動的反饋。相反,此信息將寫入位於/ var / log / elasticsearch /中的日誌文件中。
默認情況下,Elasticsearch服務不會記錄systemd日誌中的信息。要啟用journalctl日誌記錄,必須從elasticsearch中的ExecStart命令行中刪除–quiet選項。服務文件。
# 注釋24行的 --quiet \
vim /etc/systemd/system/multi-user.target.wants/elasticsearch.service1212
當啟用systemd日誌記錄時,使用journalctl命令可以獲得日誌記錄信息:
使用tail查看journal:
sudo journalctl -f11
要列出elasticsearch服務的日記帳分錄:
sudo journalctl --unit elasticsearch11
要從給定時間開始列出elasticsearch服務的日記帳分錄:
sudo journalctl --unit elasticsearch --since "2017-1-4 10:17:16"
# since 表示指定時間之前的記錄123123
使用man journalctl 查看journalctl 更多使用方法
檢查Elasticsearch是否正在運行
您可以通過向localhost上的埠9200發送HTTP請求來測試Elasticsearch節點是否正在運行:
curl -XGET 'localhost:9200/?pretty'
1212
我們能得到下面這樣的回顯:
{
"name" : "De-LRNO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "DeJzplWhQQK5uGitXr8jjA",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
配置 Elasticsearch
Elasticsearch 從默認的/etc/elasticsearch/elasticsearch.yml載入配置文件,
配置文件的格式考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.1.1.53 # 默認localhost,自定義為ip
http.port: 920012345671234567
RPM還具有系統配置文件(/etc/sysconfig/elasticsearch),允許您設置以下參數:
[root@linuxprobe elasticsearch]# egrep -v "^#|^$" /etc/sysconfig/elasticsearch
ES_HOME=/usr/share/elasticsearch
JAVA_HOME=/usr/java/jdk1.8.0_111
CONF_DIR=/etc/elasticsearch
DATA_DIR=/var/lib/elasticsearch
LOG_DIR=/var/log/elasticsearch
PID_DIR=/var/run/elasticsearch12345671234567
日誌配置
Elasticsearch使用Log4j 2進行日誌記錄。 Log4j 2可以使用log4j2配置。屬性文件。 Elasticsearch公開單個屬性$ {sys:es。日誌},可以在配置文件中引用以確定日誌文件的位置;這將在運行時解析為Elasticsearch日誌文件的前綴。
例如,如果您的日誌目錄是/var/log/elasticsearch並且您的集群名為proction,那麼$ {sys:es。 logs}將解析為/var/log/elasticsearch/proction。
默認日誌配置存在:/etc/elasticsearch/log4j2.properties
安裝 Kibana
Kibana的RPM可以從ELK官網或從RPM存儲庫下載。它可用於在任何基於RPM的系統(如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise)上安裝Kibana。
導入Elastic PGP Key
我們使用彈性簽名密鑰(PGP密鑰D88E42B4,可從https://pgp.mit.e)簽名所有的包,指紋:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch11
創建kibana源
echo '[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/kibana.repo123456789123456789
kibana源創建成功之後,makecache後使用yum安裝kibana:
yum makecache && yum install kibana -y11
使用systemd運行Kibana
要將Kibana配置為在系統引導時自動啟動,請運行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service1212
Kibana可以如下啟動和停止
sudo systemctl start kibana.service
sudo systemctl stop kibana.service1212
配置Kibana
Kibana默認從/etc/kibana/kibana.yml文件載入其配置。
參考:https://www.elastic.co/guide/en/kibana/current/settings.html
注意:本實驗教程把localhost都改成伺服器IP,如果不更改localhost,需要設置反向代理才能訪問到kibana。
在同一伺服器上安裝一個Nginx反向代理,以允許外部訪問。
安裝nginx
配置Kibana在localhost上監聽,必須設置一個反向代理,允許外部訪問它。本文使用Nginx來實現發向代理。
創建nginx官方源來安裝nginx
# https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
echo '[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
' | sudo tee /etc/yum.repos.d/nginx.repo1234567812345678
使用yum安裝nginx和httpd-tools
yum install nginx httpd-tools -y11
使用htpasswd創建一個名為「kibanaadmin」的管理員用戶(可以使用其他名稱),該用戶可以訪問Kibana Web界面:
[root@linuxprobe ~]# htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
New password: # 自定義
Re-type new password:
Adding password for user kibanaadmin12341234
使用vim配置nginx配置文件
[root@linuxprobe ~]# egrep -v "#|^$" /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name kibana.aniu.co;
access_log /var/log/nginx/kibana.aniu.co.access.log main;
error_log /var/log/nginx/kibana.aniu.co.access.log;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
『貳』 Linux grep、egrep使用命令詳解
grep egrep區別
grep 默認不支持擴展 但可以通過-E 選擇來支持擴展正則
egrep 支持擴展正則
關於正則與擴展正則的區別可以看我另一篇shell 正則的介紹
文件處理順序 以行為單位,逐行進行處理
默認只輸出與表達式相匹配的文本行
基本用法
- 格式1:egrep [選擇] '正則表達式' 文件
- 格式2:前置命令 | egrep [選擇] '正則表達式'
• egrep命令工具 (擴展正則命令)
• 常用命令選項
•grep 正則表達式,用來查找過濾文檔的工具符號
grep "root" user //在user文檔中查找有單詞root的行
grep "^root" user //在user文檔中查找以單詞root開頭的行
grep "bash " user //查找空行
grep "^ " user //查找以空格開頭的行
grep "[rot]" user //查找字母r或者o或者t
grep "roo[tn]" user //查找root或者roon
grep "[^rot]" user //查找字母r或者o或者t之外的內容
grep "[a-z]" user //查找小寫字母
grep "[A-Z]" user //查找大寫字母
grep "[a-Z]" user //查找所有字母
grep "[0-9]" user //查找數字
grep "r..t" user //查找以r開頭t結尾中間有2個任意字元的單詞
grep "r. " user //查找以r開頭後面任意字元 相當手通配符
grep "ro*" user //查找以r開頭後面有或沒有字母o的單詞,o可以出現任意次
grep "o{1,2}" user //查找o出現1次到2次的行
grep "o{2,3}" user //查找o出現2次到3次的行
grep "o{2}" user //查找o出現2次的行
grep "o{1,} " user //查找o出現1次以及1次以上
grep "(:0){2}" user //查找:0(數字零)連續出現2次的行
擴展正則
egrep "o+" user //查找o出現1次以及1次以上
egrep "o?" user //查找o出現0次或1次
egrep "o{1,2}" user //查找o出現1次到2次的行
egrep "o{2,3}" user //查找o出現2次到3次的行
egrep "o{2}" user //查找o出現2次的行
egrep "o{1,}" user //查找o出現1次以及1次以上
egrep "(:0){2}" user //查找:0(數字零)連續出現2次的行
egrep "bash|nologin" user //查找bash或者nologin
egrep "the" a //查找單詞the,前後是空格或者特殊符號
案例:
正則表達式匹配練習
1)典型的應用場合:grep、egrep檢索文本行
grep命令不帶-E選項時,支持基本正則匹配模式。比如「word」關鍵詞檢索、「^word」匹配以word開頭的行、「word$」匹配以word結尾的行……等等。
輸出以「r」開頭的用戶記錄:
輸出以「localhost」結尾的行:
若希望在grep檢索式同時組合多個條件,比如輸出以「root」或者以「daemon」開頭的行:
而若若使用grep -E或egrep命令,可支持擴展正則匹配模式,能夠自動識別 |、{} 等擴展正則表達式中的特殊字元,用起來更加方便,比如:
或者
使用grep -E 與 使用egrep命令完全等效,推薦使用後者,特別是涉及到復雜的正則表達式的時候。
2)grep、egrep命令的-q選項
選項 -q 表示 quiet(靜默)的意思,結合此選項可以只做檢索而並不輸出,通常在腳本內用來識別查找的目標是否存在,通過返回狀態 $? 來判斷,這樣可以忽略無關的文本信息,簡化腳本輸出。
比如,檢查/etc/hosts文件內是否存在192.168.4.4的映射記錄,如果存在則顯示「YES」,否則輸出「NO」,一般會執行:
這樣grep的輸出信息和腳本判斷後的提示混雜在一起,用戶不易辨別,所以可以改成以下操作:
是不是清爽多了,從上述結果也可以看到,使用 -q 選項的效果與使用 &> /dev/null的效果類似。
3)基本元字元 ^、$ —— 匹配行首、行尾
輸出注釋的配置行(以#開頭的行):
統計本地用戶中登錄Shell為「/sbin/nologin」的用戶個數:
提示: -m10僅在文件的前10行中過濾,後面的行不再過濾。
結合 -c 選項輸出匹配的行數
使用 -c 選項可輸出匹配行數,這與通過管道再 wc -l的效果是相同的,但是寫法更簡便。比如,統計使用「/bin/bash」作為登錄Shell的正常用戶個數,可執行:
或者
4)基本元字元 . —— 匹配任意單個字元
以/etc/rc.local文件為例,確認文本內容:
輸出/etc/rc.local文件內的空行(用 –v 選項將條件取反):
5)基本元字元 +、?、 —— 目標出現的次數*
還以/etc/rc.local文件為例:
輸出包括 f、ff、ff、……的行,即「f」至少出現一次:
輸出包括init、initial的行,即末尾的「ial」最多出現一次(可能沒有):
輸出包括stu、stuf、stuff、stufff、……的行,即末尾的「f」可出現任意多次,也可以沒有。重復目標只有一個字元時,可以不使用括弧:
輸出所有行,單獨的「.*」可匹配任意行(包括空行):
輸出/etc/passwd文件內「r」開頭且以「nologin」結尾的用戶記錄,即中間可以是任意字元:
6)元字元 {} —— 限定出現的次數范圍
創建一個練慣用的測試文件:
輸出包括ababab的行,即「ab」連續出現3次:
輸出包括abab、ababab、abababab的行,即「ab」連續出現2~4次:
輸出包括ababab、abababab、……的行,即「ab」最少連續出現3次:
7)元字元 [] —— 匹配范圍內的單個字元
還以前面的測試文件bracet.txt為例:
輸出包括abc、abd的行,即前兩個字元為「ab」,第三個字元只要是c、d中的一個就符合條件:
輸出包括大寫字母的行,使用[A-Z]匹配連續范圍:
8)單詞邊界匹配
以文件/etc/rc.local為例:
輸出包括單詞「init」的行,文件中「initialization」不合要求:
或者:
輸出包括以「ll」結尾的單詞的行,使用 > 匹配單詞右邊界:
或者:
9)多個條件的組合
通過dmesg啟動日誌查看藍牙設備、網卡設備相關的信息:
『叄』 linux系統下怎樣查看機器有幾塊網卡
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
『肆』 如何在LINUX中給一塊網卡綁定兩個IP地址
Linux的網路設備配置文件存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個網路設備,配版置文件名一般為 ifcfg-eth0 如果需權要為第一個網路設備綁定多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面創建一個名為ifcfg-eth0:0的文件,內容樣例為: DEVICE="eth0:0" IPADDR="211.100.10.11Array" NETMASK="255.255.255.0" ONBOOT="yes" 其中的DEVICE為設備的名稱,IPADDR為此設備的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。 如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。
『伍』 etc是什麽文件的擴展名啊
3. 網路配置文件
3.1 /etc/hosts
#/etc/hosts
#文件格式: IPaddress hostname aliases
#文件功能: 提供主機名到IP地址的對應關系,建議將自己經常使用的主機
# 加入此文件中,也可將沒有DNS記錄的機器加入到此文件中,
# 這樣會方便網路應用
127.0.0.1 localhost localhost.localdomain
202.118.66.81 helius.dlut.e.cn helius
3.2 /etc/resolv.conf
文件功能:DNS客戶機配置文件,設置DNS伺服器的IP地址及DNS域名
相關文件:/etc/host.conf
文件格式:
domainname 域名
search 域名
nameserver Primary_DNS_Server_IP_address
nameserver Second_DNS_Server_IP_address
其中domainname和search可同時存在,也可只有一個;nameserver可指定多個
示例文件內容:
search dlut.e.cn
nameserver 202.118.66.6
3.3 /etc/host.conf
功能:指定主機名查找方法,通常指先查找文件/etc/hosts,找不到時再向DNS伺服器請求。
對於大多數用戶不用改動此文件內容。
Linux: /etc/host.conf文件內容
order hosts, bind
multi on
Soalris: /etc/nsswitch.conf 中的hosts項
hosts files, dns
3.4 /etc/HOSTNAME ( Linux Redhat 5.x Distribution)
功能:設置主機名,不同LINUX之間可能有所差別,請使用
egrep hostname /etc/rc.d/init.d/*
或
egrep hostname /etc/init.d/*
查找相應版本上的主機名設置文件及方法。
Linux Redhat 5.x對應文件: /etc/sysconfig/network的HOSTNAME項。
3.5 /etc/inetd.conf
Internet 超級伺服器, 相關程序: /usr/sbin/inetd
相應服務:
telnet
ftp
pop3
r* rsh rcp rlogin (建議最好關閉r服務)
其他服務最好關掉