confluence與jira賬號對接、檢視到期時間及問題總結

散盡浮華發表於2016-06-08

 

前面介紹了對於confluence和jira的破解版安裝記錄,下面簡單記錄下confluence和jira結合配置:
安裝順序:先安裝Jira,然後安裝Confluence,在Confluence安裝過程中去連線jira,既Confluence使用者目錄會主動同步jira的使用者目錄。這樣,在jira裡建立使用者就會自動同步到Confluence裡,雙方登陸的使用者是一樣的(最好是先在jira裡建立使用者,然後同步到Confluence裡)。在同一個session環境下,可以使用同樣的賬號登陸jira和Confluence。(但是在切換登陸時仍然需要輸入密碼,要想切換登陸時不需要登陸密碼,即實現單點登入,則需要基於Crowd實現,這樣就不做介紹了)。

下面貼上下Confluence安裝中連線jira的截圖:

===============================================================================
如果是先安裝的confluence,並且在"配置使用者管理"中選擇的是"在Confluence中管理使用者和組",那麼後續向跟jira對接的操作方法如下:
1)jira和confluence最好設定相同的管理員賬號和密碼
2)登入confluence管理員賬號下,依次點選右上角的"使用者管理"->點選左側最下面的"管理"中的"應用程式連結"->"建立新連結",然後新增jira的url地址,根據提示進行新增配置即可(提示中會跳到jira介面裡,相繼新增confluence的地址)
3)左上角jira和confluence對接的標題名稱可以自定義,jira在"系統"->"一般配置"->編輯"標題";confluence在"一般配置"->編輯"標題"
===============================================================================

1)在jira裡建立的使用者,會主動給使用者傳送一封郵件,點選郵件可以重置密碼。使用該使用者登入後,點選左上角圖示,切換到confluence後進行該使用者的介面
設定,這樣該使用者才能載入到confluence使用者目錄下。
2)在jira裡建立和刪除使用者,預設confluence同步是需要一段時間的。如果使用者同步不及時,可以手動同步,即點選"使用者目錄"->"同步",即手動同步使用者目錄即可!(刪除使用者最後先在jira裡刪除,然後Confluence同步使用者)

一般來說,使用者建立(建議使用"邀請使用者"的方式建立使用者)的規則:
1)如果jira和Confluence都需要建立使用者,就先在jira上建立使用者,然後Confluence同步。
2)如果只需要Confluence賬號,不需要jira賬號。那麼就在Confluence上"邀請使用者"註冊賬號,然後同步到jira上的賬號預設不能登入,需要將使用者新增到jira的相關使用者組內才能夠登入。

========================================================
confluence和jira的使用者目錄同步方式:
根據以上部署可知,confluence和jira的使用者同步是單方向的,及confluence同步jira的使用者,但是jira不能同步confluence使用者!
在配置使用者目錄同步時,點選"新增目錄",發現只有三種同步方式
1)新增Crowd伺服器,可以實現jira和confluence使用者目錄雙向同步;
2)新增LDAP伺服器,可以實現jira和confluence使用者目錄雙向同步;
3)新增Jira伺服器,只能實現confluence同步jira使用者目錄,即單向同步。

=================================================
如何檢視破解後的的jira和Confluence到期時間

1)檢視jira的到期時間。如下可知,jira到期時間是2033年2月8號

2)檢視Confluence的到期時間。如下可知,Confluence離到期時間還有957個月零7天20小時

=====confluence上開通使用者,使該使用者只具有某一個或幾個專案空間的操作許可權=====

方法:
1)正常開通使用者,比如A使用者。
2)建立一個使用者組,比如test使用者組(預設是空的)。
3)點選右上角設定圖示裡的"使用者管理"->"站點管理"->"使用者"->"全域性許可權",然後編輯test組許可權(設定"個人空間"、"建立空間"兩個許可權即可,
   "站點管理"和"系統管理員"許可權看情況是否設定)
4)編輯A使用者,將A使用者所屬的組設定為test。注意:千萬不要設定為confluence-users組,否則就對所有的專案空間都具有許可權。
5)假設使A使用者僅僅只具有kevin專案的操作許可權。則開啟kevin名稱的目錄空間,點選左下角的"空間管理"->"許可權",在右邊的"使用者"區域(或者"組"區域)點選
  "編輯許可權",將A使用者(或者test組)新增進去,並設定許可權(比如只設定"檢視"許可權)即可。
6)如果是一個使用者針對多個專案空間的許可權,就依次在這些專案空間的"空間管理"->"許可權"裡設定,如上第4步操作即可。
  
如上操作後,A使用者登入confluence就只有所設定的空間的許可權了。

jira跟confluence不一樣,它只有角色許可權,針對組進行設定的,不針對個人。jira許可權設定:"系統"->"安全"->"全域性許可權"
=====jira/confluence訪問介面出現"您可以臨時訪問管理功能。如果不再需要,請 取消訪問。更多資訊, 請檢視 相關文件"======

如何取消?
1)需要在JIRA的Home資料夾裡手工建立一個檔案:jira-config.properties,檔案裡面寫一句話jira.websudo.is.disabled=true
2)重啟JIRA服務即可

具體操作:
a)查詢jira服務的家目錄
[root@file-server ~]# cat /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/jira-application.properties
# Do not modify this file unless instructed. It is here to store the location of the JIRA home directory only and is typically written to by the installer.
jira.home = /var/atlassian/application-data/jira

如上可以得知,jira服務的家目錄是/var/atlassian/application-data/jira

b)在jira家目錄下新增檔案
[root@file-server ~]# cd /var/atlassian/application-data/jira
[root@file-server jira]# touch jira-config.properties
[root@file-server jira]# vim jira-config.properties
jira.websudo.is.disabled=true
[root@file-server jira]# chown jira.jira jira-config.properties

c)重啟jira
[root@file-server jira]# /etc/init.d/jira stop
[root@file-server jira]# /etc/init.d/jira start

==========jira和confluence調整為域名訪問的操作記錄============

如之前的安裝文件,jira和confluence安裝後都是通過ip+port進行訪問以及關聯,後面調整為域名訪問,修改記錄如下:
1)在前面架設一個LB層,通過域名訪問代替ip+port訪問,然後將域名解析到LB的ip上即可。例如:
   http://jira.kevin-inc.com 代替http://172.16.220.129:8080
   http://wiki.kevin-inc.com 代替http://172.16.220.129:8090
2)訪問http://wiki.kevin-inc.com,在右上角
   a)點選"一般配置",將"伺服器主頁URL"由http://172.16.220.129:8090修改為http://wiki.kevin-inc.com;
   b)點選"配置應用程式連結",將對應的ip的url修改為域名的url;
   c)點選"應用程式導航器",發現confluence對應的url已經變成wiki域名了,此時jira的連結還是ip+port方式,
      接著進行新增操作,將jira的域名方式新增進去,然後將之前的ip+port方式的連結拉到最下面。(這個配置
      涉及到從confluence介面的左上角切換到jira後顯示的地址資訊)
3)訪問http://jira.kevin-inc.com,在右上角
   a)點選點選"一般配置",將"伺服器主頁URL"由http://172.16.220.129:8080修改為http://jira.kevin-inc.com;
   b)點選"應用程式"->"應用程式連結",將對應的ip的url修改為域名的url;
   c)點選"應用程式導航器",將對應的ip的url修改為域名的url;

===========jira賬號建立專案的許可權==========

預設建立的jira賬號是沒有建立jira專案的許可權的,如果想讓一個jira賬號擁有建立專案的許可權,正確做法如下:
1)建立一個組,比如叫jira-project
2)點選右上角的"系統"->"安全"->"全域性配置",然後將所建立的組jira-project設定為"JIRA 管理員",注意是
  "JIRA 管理員",而不是"JIRA 系統管理員"
3)然後將使用者拉到jira-project組內即可!

===========confluence和jira的備份和恢復==========

confluence的自動備份:
資料備份目錄:/var/atlassian/application-data/confluence/backups           ("站點管理"->"每日備份管理")
附件備份目錄:/var/atlassian/application-data/confluence/attachments       ("站點管理"->"附件儲存")

confluence備份與還原 ("站點管理"->"管理"->"備份與還原")

可以根據介面裡提示進行資料恢復
如果從confluence主目錄中由備份和恢復
備份必須複製至/var/atlassian/application-data/confluence/restore目錄中。 如果備份檔案很大,推薦這種方式

----------------------------------------------------------------

jira的自動備份
資料備份目錄: /var/atlassian/application-data/jira/export     ("系統"->"匯入匯出"->"備份系統")
附件所在目錄:/var/atlassian/application-data/jira/data/attachments    這個需要手動備份

jira的資料恢復:   ("系統"->"匯入匯出"->"恢復系統")

========confluence管理員admin賬號密碼忘記的處理辦法========

1)登入mysql,檢視admin賬號情況,記下admin管理員的id號
[root@confluence-server ~]# mysql -p123456
......
MariaDB [(none)]> use confluence;
......
MariaDB [confluence]> select id,user_name,credential from cwd_user;
+--------+-----------+---------------------------------------------------------------------------+
| id     | user_name | credential                                                                |
+--------+-----------+---------------------------------------------------------------------------+
| 229377 | admin     | {PKCS5S2}1QX4TpvSnyJPEwfJ5Y5OQDIxaHPqkrYlsRAPSvd4quVt3wku9WPKugZxSlUCYV71 |
+--------+-----------+---------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [confluence]> 

2)根據admin的id號進行update更新密碼。如果你的密碼是{PKCS5S2}字首開頭的,則用下面這個sql:
如下密碼修改為"Ab123456"(下面的密碼就是Ab123456的密文)
MariaDB [confluence]> update cwd_user set credential =  '{PKCS5S2}ltrb9LlmZ0QDCJvktxd45WgYLOgPt2XTV8X7av2p0mhPvIwofs9bHYVz2OXQ6/kF'  where id=229377;  
Query OK, 0 rows affected (0.057 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [confluence]> select id,user_name,credential from cwd_user;
+--------+-----------+---------------------------------------------------------------------------+
| id     | user_name | credential                                                                |
+--------+-----------+---------------------------------------------------------------------------+
| 229377 | admin     | {PKCS5S2}ltrb9LlmZ0QDCJvktxd45WgYLOgPt2XTV8X7av2p0mhPvIwofs9bHYVz2OXQ6/kF |
+--------+-----------+---------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [confluence]> 

3)然後使用更新後的新密碼Ab123456登入admin賬號,在confluence介面裡進行密碼重置。

========confluence匯出PDF格式檔案不顯示中文解決========

由於confluence匯出PDF格式檔案需要應用字型檔案,下載字型檔案在confluence管理員介面安裝即可。
從本機c盤->Windows-Fonts資料夾裡複製simkai字型檔案到桌面,然後使用管理員賬號登陸confluence,找到"PDF匯出語言支援"選擇,
選擇本機桌面的simkai字型檔案進行安裝即可。安裝後,匯出的pdf檔案裡的中文就能正常顯示了。

=========================離職人員的jira/confluence賬號銷燬=========================
員工離職時是不能直接在jira/confluence裡刪除他們賬號的,因為這些賬號關聯了對應專案,除非修改為其他賬號的關聯關係, 否則不能直接刪除. 但是可以禁用這些賬號. 

可行的處理方法:
1) 管理員賬號登入jira, 點右上角的"設定"->"使用者管理"->"使用者",直接搜尋離職人員的對應賬號, 點選後面的"編輯", 將"活躍"前面方框裡的對勾去掉, 即改為了"不活躍"狀態, 這樣該使用者就登入不了jira了! 然後使用管理員賬號登入confluence, 點選右上角的"設定"->"使用者管理"->"使用者目錄"->"同步". 然後在"使用者"裡搜尋離職人員賬號,發現賬號上被標記了"無效",即登入不了confluence了!

2) 如果離職的人員是jira上某些專案關聯負責人, 則也是無法設定為"不活躍"的, 即無法註釋"編輯"->"活躍", 此時的做法是:
將此賬號從它之前所有所在的組內撤出來, 即確保它在jira/confluence下不屬於任何組, 這樣它登入後就沒有任何許可權了.

==============================Confluence問題============================

1)問題一:
JVM 堆記憶體溢位,導致confluence訪問慢或程式直接跑死問題
檢視/opt/atlassian/confluence/logs/catalina.out日誌,報錯資訊為:
java.lang.OutOfMemoryError: Direct buffer memory

解決辦法:增大JVM記憶體,做法如下:
在bin/catalina.sh指令碼檔案裡新增下面一行內容,具體記憶體增加到多少,要根據自己伺服器的實際記憶體來考慮(比如我的機器是128G,這裡我調整到24G)
[root@file-server ~]# vim /opt/atlassian/confluence/bin/catalina.sh      
......
JAVA_OPTS='-Xms20480m -Xmx20480m -XX:PermSize=10240M -XX:MaxNewSize=10240m -XX:MaxPermSize=5120m'

[root@file-server ~]# /etc/init.d/confluence restart
--------------------------------------------------------------------------------------------------------------

2)問題二:
confluence正常啟動,8090埠也順利起來了,但是confluence訪問報錯404!
[root@file-server ~]# tail -f /opt/atlassian/confluence/logs/catalina.out
........
11-Jan-2018 09:10:46.527 SEVERE [http-nio-8090-exec-6] org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake Initial SockJS "Info" request to server failed, 
url=ws://127.0.0.1:8091/synchrony/sockjs/v1org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://127.0.0.1:8091/synchrony/sockjs/v1/info": 
Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:607)
        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572)
        at org.springframework.web.socket.sockjs.client.RestTemplateXhrTransport.executeInfoRequestInternal(RestTemplateXhrTransport.java:138)
        at org.springframework.web.socket.sockjs.client.AbstractXhrTransport.executeInfoRequest(AbstractXhrTransport.java:153)
        at org.springframework.web.socket.sockjs.client.SockJsClient.getServerInfo(SockJsClient.java:286)
        at org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake(SockJsClient.java:254)
        at org.springframework.web.socket.sockjs.client.SockJsClient.doHandshake(SockJsClient.java:236)
        at com.atlassian.synchrony.proxy.websocket.WebSocketProxy.afterConnectionEstablished(WebSocketProxy.java:49)
        at org.springframework.web.socket.handler.PerConnectionWebSocketHandler.afterConnectionEstablished(PerConnectionWebSocketHandler.java:81)

特別注意:
confluence和jira的日誌不只是只在/opt/atlassian/confluence/logs和/opt/atlassian/jira/logs下面,有時只根據這裡面的日誌是看不到具體報錯的!
還需要去confluence和jira服務的家目錄/var/atlassian/application-data(預設就是這個路徑)下面檢視日誌,可以通過這裡面的日誌資訊進行排錯。
日誌分別為/var/atlassian/application-data/jira/log/atlassian-jira.log和/var/atlassian/application-data/confluence/logs/atlassian-confluence.log
以上報錯檢視confluence日誌如下
[root@file-server ~]# tail -f /var/atlassian/application-data/confluence/logs/atlassian-confluence.log
......
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hostComponentProvider': Injection of autowired dependencies failed; nested exception is 
org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean.setSpringHos
tComponentProviderConfig(com.atlassian.plugin.spring.SpringHostComponentProviderConfig); nested exception is org.springframework.beans.factory.BeanCreationException: Error cre
ating bean with name 'bundledPluginLoader' defined in class path resource [services/pluginServiceContext.xml]: Cannot resolve reference to bean 'osgiPluginFactory' while setting 
constructor argument with key [1]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'osgiPluginFactory' defined in class 
path resource [services/pluginServiceContext.xml]: Cannot resolve reference to bean 'osgiPersistentCache' while setting constructor argument; nested exception is org.springframework.
beans.factory.BeanCreationException: Error creating bean with name 'osgiPersistentCache': FactoryBean threw exception on object creation; nested exception is com.atlassian.plugin.osgi.
container.OsgiContainerException: Unable to clean the cache directory: /var/atlassian/application-data/confluence/plugins-osgi-cache/felix

通過上面的日誌錯誤資訊可知,是由於cache快取目錄的許可權不對造成的:
[root@file-server ~]# ll -d /var/atlassian/application-data/confluence/plugins-osgi-cache
drwxr-xr-x 5 root root 4096 Nov  9 10:54 /var/atlassian/application-data/confluence/plugins-osgi-cache

plugins-osgi-cache目前許可權是root,confluence程式許可權是confluence,所以不能建立快取資料。將其許可權修改為confluence即可!
建議可以將/var/atlassian/application-data/confluence下的目錄許可權全部修改為confluence.confluence。
[root@file-server ~]# chown -R confluence.confluence /var/atlassian/application-data/confluence/plugins-osgi-cache
[root@file-server ~]# ll -d /var/atlassian/application-data/confluence/plugins-osgi-cache
drwxr-xr-x 5 confluence confluence 4096 Nov  9 10:54 /var/atlassian/application-data/confluence/plugins-osgi-cache

如上修改後,訪問confluence就正常了(可以不用重啟confluence)
--------------------------------------------------------------------------------------------------------------

問題三:
confluence登陸後,上傳附件報錯:Could not upload the file to Confluence. The server may be unavailable

檢視日誌:
[root@file-server ~]# tail -f /var/atlassian/application-data/confluence/logs/atlassian-confluence.log
......
javax.servlet.jsp.jspException: java.lang.RuntimeException: Error creating temp file in folder: /var/atlassian/application-data/confluence/attachments/ver003/21/87/4587521/92/247/3997842/5144597
javax.servlet.error.exception: java.lang.RuntimeException: Error creating temp file in folder: /var/atlassian/application-data/confluence/attachments/ver003/21/87/4587521/92/247/3997842/5144597

由此可以看出,附件不能上傳的原因是由於許可權問題導致的,解決如下:
[root@file-server ~]# ll -d /var/atlassian/application-data/confluence/attachments/ver003/
drwxr-xr-x 11 root root 4096 Jan  9 09:14 /var/atlassian/application-data/confluence/attachments/ver003/
[root@file-server ~]# chown -R confluence.confluence /var/atlassian/application-data/confluence/attachments
[root@file-server ~]# ll -d /var/atlassian/application-data/confluence/attachments/ver003/
drwxr-xr-x 11 confluence confluence 4096 Jan  9 09:14 /var/atlassian/application-data/confluence/attachments/ver003/

相關文章